MOAB: Mesh Oriented datABase
(version 5.4.1)
|
Common code for specific implementations of MeshDomain on ITAPS interfaces. More...
#include <MsqIGeom.hpp>
Public Member Functions | |
MsqCommonIGeom (iGeom_Instance geom) | |
virtual | ~MsqCommonIGeom () |
int | move_to (iBase_EntityHandle geom_handle, Vector3D &coord) const |
int | normal (iBase_EntityHandle geom_handle, Vector3D &coord) const |
int | normal (iBase_EntityHandle geom_handle, Vector3D coords[], unsigned count) const |
int | normal (const iBase_EntityHandle geom_handles[], Vector3D coords[], unsigned count) const |
int | closest_and_normal (iBase_EntityHandle geom_handle, const Vector3D &position, Vector3D &closest, Vector3D &normal) const |
int | get_dimension (iBase_EntityHandle const *geom_handle, unsigned short *dof_out, size_t count) const |
Public Attributes | |
iGeom_Instance | geomIFace |
Private Attributes | |
std::vector< iBase_EntityHandle > | geomHandles |
std::vector< double > | coordArray |
std::vector< int > | typeArray |
Common code for specific implementations of MeshDomain on ITAPS interfaces.
This class contains the common functionality used by concrete implementations of MeshDomain on the ITAPS geometry interface.
Definition at line 49 of file MsqIGeom.hpp.
MBMesquite::MsqCommonIGeom::MsqCommonIGeom | ( | iGeom_Instance | geom | ) |
geom | The ITAPS geometry interface implementation to query |
Definition at line 104 of file MsqIGeom.cpp.
MBMesquite::MsqCommonIGeom::~MsqCommonIGeom | ( | ) | [virtual] |
Definition at line 106 of file MsqIGeom.cpp.
{}
int MBMesquite::MsqCommonIGeom::closest_and_normal | ( | iBase_EntityHandle | geom_handle, |
const Vector3D & | position, | ||
Vector3D & | closest, | ||
Vector3D & | normal | ||
) | const |
Given a geometric entity and a position, get point on the geometric entity closest to the input position, and the surface normal at that position.
Definition at line 154 of file MsqIGeom.cpp.
References geomIFace, and ierr.
Referenced by MBMesquite::MsqIRel::closest_point(), and MBMesquite::MsqIGeom::closest_point().
int MBMesquite::MsqCommonIGeom::get_dimension | ( | iBase_EntityHandle const * | geom_handle, |
unsigned short * | dof_out, | ||
size_t | count | ||
) | const |
Definition at line 165 of file MsqIGeom.cpp.
References MBMesquite::arrptr(), geomIFace, ierr, and typeArray.
Referenced by MBMesquite::MsqIGeom::domain_DoF().
{ int ierr; typeArray.resize( count ); // define junk variables required for ITAPS "consistancy" int junk_1 = count, junk_2 = count; int* type_ptr = arrptr( typeArray ); // get the types iGeom_getArrType( geomIFace, geom_handle, count, &type_ptr, &junk_1, &junk_2, &ierr ); // convert from int to unsigned short std::copy( typeArray.begin(), typeArray.end(), dof_out ); return ierr; }
int MBMesquite::MsqCommonIGeom::move_to | ( | iBase_EntityHandle | geom_handle, |
Vector3D & | coord | ||
) | const |
Evaluate the closest point to the input position on the specified geometric entity and return the result in the passed position argument (move the passed position onto the geometry.)
Definition at line 108 of file MsqIGeom.cpp.
References geomIFace, ierr, MBMesquite::Vector3D::set(), and z.
Referenced by MBMesquite::MsqIRel::snap_to(), and MBMesquite::MsqIGeom::snap_to().
int MBMesquite::MsqCommonIGeom::normal | ( | iBase_EntityHandle | geom_handle, |
Vector3D & | coord | ||
) | const |
Given a geometric entity and a position, evaluate the normal on the geometric entity at the closest point on that entity to the input position, and pass back the result in the input coord vector.
Definition at line 117 of file MsqIGeom.cpp.
References geomIFace, ierr, and MBMesquite::Vector3D::set().
Referenced by MBMesquite::MsqIGeom::element_normal_at(), normal(), MBMesquite::MsqIRel::vertex_normal_at(), and MBMesquite::MsqIGeom::vertex_normal_at().
int MBMesquite::MsqCommonIGeom::normal | ( | iBase_EntityHandle | geom_handle, |
Vector3D | coords[], | ||
unsigned | count | ||
) | const |
Given a geometric entity and a position, evaluate the normal on the geometric entity at the closest point on that entity to the input position, and pass back the result in the input coord vector.
Definition at line 126 of file MsqIGeom.cpp.
References MBMesquite::arrptr(), geomHandles, and normal().
{ geomHandles.resize( count, geom ); return normal( arrptr( geomHandles ), coords, count ); }
int MBMesquite::MsqCommonIGeom::normal | ( | const iBase_EntityHandle | geom_handles[], |
Vector3D | coords[], | ||
unsigned | count | ||
) | const |
Given a geometric entity and a position, evaluate the normal on the geometric entity at the closest point on that entity to the input position, and pass back the result in the input coord vector.
std::vector< double > MBMesquite::MsqCommonIGeom::coordArray [mutable, private] |
Definition at line 99 of file MsqIGeom.hpp.
std::vector< iBase_EntityHandle > MBMesquite::MsqCommonIGeom::geomHandles [mutable, private] |
Reimplemented in MBMesquite::MsqIRel.
Definition at line 98 of file MsqIGeom.hpp.
Referenced by normal().
iGeom_Instance MBMesquite::MsqCommonIGeom::geomIFace |
Definition at line 95 of file MsqIGeom.hpp.
Referenced by closest_and_normal(), MBMesquite::MsqIRel::geom_from_mesh(), get_dimension(), move_to(), and normal().
std::vector< int > MBMesquite::MsqCommonIGeom::typeArray [mutable, private] |
Definition at line 100 of file MsqIGeom.hpp.
Referenced by get_dimension().