cgma
|
Public Member Functions | |
PlaneSurface (const Vector3d &normal_p, double offset_p) | |
virtual double | getFarthestExtentFromOrigin () const |
Protected Member Functions | |
virtual iBase_EntityHandle | getHandle (bool positive, iGeom_Instance &igm, double world_size) |
Protected Attributes | |
Vector3d | normal |
double | offset |
Definition at line 128 of file volumes.cpp.
PlaneSurface::PlaneSurface | ( | const Vector3d & | normal_p, |
double | offset_p | ||
) | [inline] |
Definition at line 135 of file volumes.cpp.
: SurfaceVolume(), normal(normal_p), offset(offset_p) {}
virtual double PlaneSurface::getFarthestExtentFromOrigin | ( | ) | const [inline, virtual] |
Implements SurfaceVolume.
Definition at line 139 of file volumes.cpp.
{ // this is a funny situation, since planes are technically infinte... // in order to have a sane answer, we just return the offset from the origin. // (multiplied by root 3, which was done in the old converter, why?) return sqrt(3.0) * std::fabs(offset); }
virtual iBase_EntityHandle PlaneSurface::getHandle | ( | bool | positive, |
iGeom_Instance & | igm, | ||
double | world_size | ||
) | [inline, protected, virtual] |
Implements SurfaceVolume.
Definition at line 147 of file volumes.cpp.
{ int igm_result; iBase_EntityHandle world_sphere = makeWorldSphere(igm, world_size); iBase_EntityHandle hemisphere; // note the reversal of sense in this call; mcnp and igeom define it differently. iGeom_sectionEnt( igm, world_sphere, normal.v[0], normal.v[1], normal.v[2], offset, !positive, &hemisphere, &igm_result); CHECK_IGEOM( igm_result, "Sectioning world for a plane" ); return hemisphere; }
Vector3d PlaneSurface::normal [protected] |
Definition at line 131 of file volumes.cpp.
double PlaneSurface::offset [protected] |
Definition at line 132 of file volumes.cpp.