MOAB: Mesh Oriented datABase
(version 5.4.1)
|
Public Member Functions | |
PatchRotate (Matrix3D s) | |
virtual | ~PatchRotate () |
virtual void | xform (PatchData &pd, PlanarDomain *dom) |
virtual void | xform_grad (std::vector< Vector3D > &grad) |
Private Attributes | |
Matrix3D | rotation |
Definition at line 1512 of file QualityMetricTester.cpp.
PatchRotate::PatchRotate | ( | Matrix3D | s | ) | [inline] |
Definition at line 1517 of file QualityMetricTester.cpp.
: rotation( s ) {}
PatchRotate::~PatchRotate | ( | ) | [virtual] |
Definition at line 1523 of file QualityMetricTester.cpp.
{}
void PatchRotate::xform | ( | PatchData & | pd, |
PlanarDomain * | dom | ||
) | [virtual] |
Implements QualityMetricTester::PatchXform.
Definition at line 1524 of file QualityMetricTester.cpp.
References CPPUNIT_ASSERT, geom, MBMesquite::PatchData::get_domain(), MBMesquite::PlanarDomain::get_normal(), MBMesquite::PlanarDomain::get_origin(), MBMesquite::PatchData::num_nodes(), rotation, MBMesquite::PatchData::set_domain(), MBMesquite::PlanarDomain::set_plane(), MBMesquite::PatchData::set_vertex_coordinates(), and MBMesquite::PatchData::vertex_by_index().
{ // If patch has associated planar geometry, rotate that also MeshDomain* geom = pd.get_domain(); if( geom ) { PlanarDomain* plane = dynamic_cast< PlanarDomain* >( geom ); CPPUNIT_ASSERT( plane ); CPPUNIT_ASSERT( dom ); Vector3D norm = rotation * plane->get_normal(); Vector3D point = rotation * plane->get_origin(); dom->set_plane( norm, point ); pd.set_domain( dom ); } // Scale about origin MsqError err; for( size_t i = 0; i < pd.num_nodes(); ++i ) pd.set_vertex_coordinates( rotation * pd.vertex_by_index( i ), i, err ); }
void PatchRotate::xform_grad | ( | std::vector< Vector3D > & | grad | ) | [virtual] |
Implements QualityMetricTester::PatchXform.
Definition at line 1545 of file QualityMetricTester.cpp.
References rotation.
Matrix3D PatchRotate::rotation [private] |
Definition at line 1514 of file QualityMetricTester.cpp.
Referenced by xform(), and xform_grad().