MOAB: Mesh Oriented datABase
(version 5.4.1)
|
Public Member Functions | |
sphere (double x=0, double y=0, double z=0, double r=1) | |
virtual | ~sphere () |
void | project_points2geom (int dim, double *oldcoords, double *newcoords, double *derivs) const |
Private Attributes | |
double | centerx |
double | centery |
double | centerz |
double | radius |
Definition at line 58 of file geomObject.cpp.
sphere::sphere | ( | double | x = 0 , |
double | y = 0 , |
||
double | z = 0 , |
||
double | r = 1 |
||
) | [inline] |
virtual sphere::~sphere | ( | ) | [inline, virtual] |
Definition at line 66 of file geomObject.cpp.
{}
void sphere::project_points2geom | ( | int | dim, |
double * | oldcoords, | ||
double * | newcoords, | ||
double * | derivs | ||
) | const [inline, virtual] |
Implements geomObject.
Definition at line 67 of file geomObject.cpp.
References centerx, centery, centerz, dim, radius, and geomObject::Twonorm().
{ if( oldcoords == NULL || newcoords == NULL ) { throw std::invalid_argument( "NULL pointer" ); } std::vector< double > direction; direction.push_back( oldcoords[0] - centerx ); direction.push_back( oldcoords[1] - centery ); if( dim == 3 ) { direction.push_back( oldcoords[2] - centerz ); } double len = geomObject::Twonorm( dim, &( direction[0] ) ); assert( len > 0 ); for( int i = 0; i < dim; ++i ) { direction[i] /= len; } newcoords[0] = centerx + direction[0] * radius; newcoords[1] = centery + direction[1] * radius; if( dim == 2 ) { if( derivs ) { derivs[0] = -direction[1]; derivs[1] = direction[0]; } return; } else if( dim == 3 ) { newcoords[2] = centerz + direction[2] * radius; if( derivs ) { derivs[0] = direction[0]; derivs[1] = direction[1]; derivs[2] = direction[2]; } } else { throw std::invalid_argument( "dim must be 2 or 3" ); } }
double sphere::centerx [private] |
Definition at line 122 of file geomObject.cpp.
Referenced by project_points2geom().
double sphere::centery [private] |
Definition at line 122 of file geomObject.cpp.
Referenced by project_points2geom().
double sphere::centerz [private] |
Definition at line 122 of file geomObject.cpp.
Referenced by project_points2geom().
double sphere::radius [private] |
Definition at line 122 of file geomObject.cpp.
Referenced by project_points2geom().