|
cgma
|
Public Member Functions | |
| EllipsoidSurface (const Vector3d ¢er_p, const Vector3d &axes_p) | |
| virtual | ~EllipsoidSurface () |
| virtual double | getFarthestExtentFromOrigin () const |
Protected Member Functions | |
| virtual iBase_EntityHandle | getHandle (bool positive, iGeom_Instance &igm, double world_size) |
Protected Attributes | |
| Vector3d | center |
| Vector3d | axes |
Definition at line 420 of file volumes.cpp.
| EllipsoidSurface::EllipsoidSurface | ( | const Vector3d & | center_p, |
| const Vector3d & | axes_p | ||
| ) | [inline] |
Definition at line 427 of file volumes.cpp.
:
SurfaceVolume(), center(center_p), axes(axes_p)
{}
| virtual EllipsoidSurface::~EllipsoidSurface | ( | ) | [inline, virtual] |
Definition at line 431 of file volumes.cpp.
{}
| virtual double EllipsoidSurface::getFarthestExtentFromOrigin | ( | ) | const [inline, virtual] |
Implements SurfaceVolume.
Definition at line 433 of file volumes.cpp.
| virtual iBase_EntityHandle EllipsoidSurface::getHandle | ( | bool | positive, |
| iGeom_Instance & | igm, | ||
| double | world_size | ||
| ) | [inline, protected, virtual] |
Implements SurfaceVolume.
Definition at line 438 of file volumes.cpp.
{
int igm_result;
iBase_EntityHandle sphere;
double radius = 1;
iGeom_createSphere( igm, radius, &sphere, &igm_result);
CHECK_IGEOM( igm_result, "making sphere" );
iGeom_scaleEnt( igm, sphere, 0, 0, 0, sqrt(1/axes.v[0]), sqrt(1/axes.v[1]), sqrt(1/axes.v[2]), &igm_result);
CHECK_IGEOM( igm_result, "scaling sphere to ellipsoid" );
iGeom_moveEnt( igm, sphere, center.v[0], center.v[1], center.v[2], &igm_result );
CHECK_IGEOM( igm_result, "moving sphere" );
iBase_EntityHandle final_sphere = embedWithinWorld( positive, igm, world_size, sphere, false );
return final_sphere;
}
Vector3d EllipsoidSurface::axes [protected] |
Definition at line 424 of file volumes.cpp.
Vector3d EllipsoidSurface::center [protected] |
Definition at line 423 of file volumes.cpp.