Commit 61358918 authored by Max Lyon's avatar Max Lyon

add tetrahedral mesh support in move plugin

parent 5b1ba9f4
......@@ -24,7 +24,14 @@ endif()
if (EXISTS ${CMAKE_SOURCE_DIR}/ObjectTypes/HexahedralMesh)
add_definitions (-DENABLE_OPENVOLUMEMESH_SUPPORT)
add_definitions (-DENABLE_OPENVOLUMEMESH_HEXAHEDRAL_SUPPORT)
list( APPEND CURRENT_PLUGIN_DEPS OpenVolumeMesh )
endif()
if (EXISTS ${CMAKE_SOURCE_DIR}/ObjectTypes/TetrahedralMesh)
add_definitions (-DENABLE_OPENVOLUMEMESH_SUPPORT)
add_definitions (-DENABLE_OPENVOLUMEMESH_TETRAHEDRAL_SUPPORT)
list( APPEND CURRENT_PLUGIN_DEPS OpenVolumeMesh )
endif()
......
......@@ -76,6 +76,10 @@
#include <ObjectTypes/HexahedralMesh/HexahedralMesh.hh>
#endif
#ifdef ENABLE_OPENVOLUMEMESH_TETRAHEDRAL_SUPPORT
#include <ObjectTypes/TetrahedralMesh/TetrahedralMesh.hh>
#endif
#ifdef ENABLE_OPENVOLUMEMESH_POLYHEDRAL_SUPPORT
#include <ObjectTypes/PolyhedralMesh/PolyhedralMesh.hh>
#endif
......@@ -599,6 +603,11 @@ void MovePlugin::moveObject(ACG::Matrix4x4d mat, int _id) {
HexahedralMeshObject* obj = PluginFunctions::hexahedralMeshObject(object);
transformVolumeMesh(mat , *obj->mesh() , obj->normals() );
#endif
#ifdef ENABLE_OPENVOLUMEMESH_TETRAHEDRAL_SUPPORT
} else if ( object->dataType() == DATA_TETRAHEDRAL_MESH ) {
TetrahedralMeshObject* obj = PluginFunctions::tetrahedralMeshObject(object);
transformVolumeMesh(mat , *obj->mesh() , obj->normals() );
#endif
#ifdef ENABLE_OPENVOLUMEMESH_POLYHEDRAL_SUPPORT
} else if ( object->dataType() == DATA_POLYHEDRAL_MESH ) {
PolyhedralMeshObject* obj = PluginFunctions::polyhedralMeshObject(object);
......@@ -1394,6 +1403,10 @@ void MovePlugin::slotMoveManipToCOG() {
else if ( object->dataType( DATA_HEXAHEDRAL_MESH ) )
object->manipulatorNode()->set_center( cogVolumeMesh(*PluginFunctions::hexahedralMesh(object)) );
#endif
#ifdef ENABLE_OPENVOLUMEMESH_TETRAHEDRAL_SUPPORT
else if ( object->dataType( DATA_TETRAHEDRAL_MESH ) )
object->manipulatorNode()->set_center( cogVolumeMesh(*PluginFunctions::tetrahedralMesh(object)) );
#endif
#ifdef ENABLE_OPENVOLUMEMESH_POLYHEDRAL_SUPPORT
else if ( object->dataType( DATA_POLYHEDRAL_MESH ) )
object->manipulatorNode()->set_center( cogVolumeMesh(*PluginFunctions::polyhedralMesh(object)) );
......@@ -1458,6 +1471,10 @@ void MovePlugin::slotRotate() {
if (object->dataType(DATA_HEXAHEDRAL_MESH))
transformVolumeMesh(m, (*PluginFunctions::hexahedralMesh(object)), (PluginFunctions::hexahedralMeshObject(object)->normals()));
#endif
#ifdef ENABLE_OPENVOLUMEMESH_TETRAHEDRAL_SUPPORT
if (object->dataType(DATA_TETRAHEDRAL_MESH))
transformVolumeMesh(m, (*PluginFunctions::tetrahedralMesh(object)), (PluginFunctions::tetrahedralMeshObject(object)->normals()));
#endif
#ifdef ENABLE_OPENVOLUMEMESH_POLYHEDRAL_SUPPORT
if (object->dataType(DATA_POLYHEDRAL_MESH))
transformVolumeMesh(m, (*PluginFunctions::polyhedralMesh(object)), (PluginFunctions::polyhedralMeshObject(object)->normals()));
......@@ -1510,6 +1527,10 @@ void MovePlugin::slotRotate() {
if (object->dataType(DATA_HEXAHEDRAL_MESH))
transformVolumeMesh(m, (*PluginFunctions::hexahedralMesh(object)), (PluginFunctions::hexahedralMeshObject(object)->normals()));
#endif
#ifdef ENABLE_OPENVOLUMEMESH_TETRAHEDRAL_SUPPORT
if (object->dataType(DATA_TETRAHEDRAL_MESH))
transformVolumeMesh(m, (*PluginFunctions::tetrahedralMesh(object)), (PluginFunctions::tetrahedralMeshObject(object)->normals()));
#endif
#ifdef ENABLE_OPENVOLUMEMESH_POLYHEDRAL_SUPPORT
if (object->dataType(DATA_POLYHEDRAL_MESH))
transformVolumeMesh(m, (*PluginFunctions::polyhedralMesh(object)), (PluginFunctions::polyhedralMeshObject(object)->normals()));
......@@ -1602,6 +1623,10 @@ void MovePlugin::slotScale() {
if (object->dataType(DATA_HEXAHEDRAL_MESH))
transformVolumeMesh(m, (*PluginFunctions::hexahedralMesh(object)), (PluginFunctions::hexahedralMeshObject(object)->normals()));
#endif
#ifdef ENABLE_OPENVOLUMEMESH_TETRAHEDRAL_SUPPORT
if (object->dataType(DATA_TETRAHEDRAL_MESH))
transformVolumeMesh(m, (*PluginFunctions::tetrahedralMesh(object)), (PluginFunctions::tetrahedralMeshObject(object)->normals()));
#endif
#ifdef ENABLE_OPENVOLUMEMESH_POLYHEDRAL_SUPPORT
if (object->dataType(DATA_POLYHEDRAL_MESH))
transformVolumeMesh(m, (*PluginFunctions::polyhedralMesh(object)), (PluginFunctions::polyhedralMeshObject(object)->normals()));
......@@ -1652,6 +1677,10 @@ void MovePlugin::slotScale() {
if (object->dataType(DATA_HEXAHEDRAL_MESH))
transformVolumeMesh(m, (*PluginFunctions::hexahedralMesh(object)), (PluginFunctions::hexahedralMeshObject(object)->normals()));
#endif
#ifdef ENABLE_OPENVOLUMEMESH_TETRAHEDRAL_SUPPORT
if (object->dataType(DATA_TETRAHEDRAL_MESH))
transformVolumeMesh(m, (*PluginFunctions::tetrahedralMesh(object)), (PluginFunctions::tetrahedralMeshObject(object)->normals()));
#endif
#ifdef ENABLE_OPENVOLUMEMESH_POLYHEDRAL_SUPPORT
if (object->dataType(DATA_POLYHEDRAL_MESH))
transformVolumeMesh(m, (*PluginFunctions::polyhedralMesh(object)), (PluginFunctions::polyhedralMeshObject(object)->normals()));
......@@ -1751,6 +1780,14 @@ void MovePlugin::slotMoveToOrigin() {
}
#endif
#ifdef ENABLE_OPENVOLUMEMESH_TETRAHEDRAL_SUPPORT
if ( o_it->dataType( DATA_TETRAHEDRAL_MESH )) {
TetrahedralMesh& mesh = *PluginFunctions::tetrahedralMesh(*o_it);
cog += cogVolumeMesh(mesh) * double(mesh.n_vertices());
vertexCount += double(mesh.n_vertices());
}
#endif
#ifdef ENABLE_OPENVOLUMEMESH_POLYHEDRAL_SUPPORT
if ( o_it->dataType( DATA_POLYHEDRAL_MESH )) {
PolyhedralMesh& mesh = *PluginFunctions::polyhedralMesh(*o_it);
......@@ -1821,6 +1858,21 @@ void MovePlugin::slotMoveToOrigin() {
}
#endif
#ifdef ENABLE_OPENVOLUMEMESH_TETRAHEDRAL_SUPPORT
if ( o_it->dataType( DATA_TETRAHEDRAL_MESH )) {
TetrahedralMesh& mesh = *PluginFunctions::tetrahedralMesh(*o_it);
if ( !useCommonCOG )
cog = cogVolumeMesh(mesh);
for ( OpenVolumeMesh::VertexIter v_it = mesh.vertices_begin(); v_it != mesh.vertices_end() ; ++v_it)
mesh.set_vertex(*v_it , mesh.vertex(*v_it) - cog );
o_it->manipulatorNode()->set_center( o_it->manipulatorNode()->center() - cog );
}
#endif
#ifdef ENABLE_OPENVOLUMEMESH_POLYHEDRAL_SUPPORT
if ( o_it->dataType( DATA_POLYHEDRAL_MESH )) {
PolyhedralMesh& mesh = *PluginFunctions::polyhedralMesh(*o_it);
......@@ -1923,6 +1975,15 @@ void MovePlugin::unifyBoundingBox(Unificationtype u)
}
#endif
#ifdef ENABLE_OPENVOLUMEMESH_TETRAHEDRAL_SUPPORT
if ( o_it->dataType( DATA_TETRAHEDRAL_MESH )) {
TetrahedralMesh& mesh = *PluginFunctions::tetrahedralMesh(*o_it);
getBBVolumeMesh(mesh,bb_min_tmp,bb_max_tmp);
bb_min.minimize(bb_min_tmp);
bb_max.maximize(bb_max_tmp);
}
#endif
#ifdef ENABLE_OPENVOLUMEMESH_POLYHEDRAL_SUPPORT
if ( o_it->dataType( DATA_POLYHEDRAL_MESH )) {
PolyhedralMesh& mesh = *PluginFunctions::polyhedralMesh(*o_it);
......@@ -1950,6 +2011,10 @@ void MovePlugin::unifyBoundingBox(Unificationtype u)
else if ( o_it->dataType( DATA_HEXAHEDRAL_MESH ) )
unifyBBVolumeMesh(*PluginFunctions::hexahedralMesh(*o_it),(PluginFunctions::hexahedralMeshObject(*o_it)->normals()),bb_min,bb_max, u);
#endif
#ifdef ENABLE_OPENVOLUMEMESH_TETRAHEDRAL_SUPPORT
else if ( o_it->dataType( DATA_TETRAHEDRAL_MESH ) )
unifyBBVolumeMesh(*PluginFunctions::tetrahedralMesh(*o_it),(PluginFunctions::tetrahedralMeshObject(*o_it)->normals()),bb_min,bb_max, u);
#endif
#ifdef ENABLE_OPENVOLUMEMESH_POLYHEDRAL_SUPPORT
else if ( o_it->dataType( DATA_POLYHEDRAL_MESH ) )
unifyBBVolumeMesh(*PluginFunctions::polyhedralMesh(*o_it),(PluginFunctions::polyhedralMeshObject(*o_it)->normals()),bb_min,bb_max, u);
......@@ -1967,6 +2032,10 @@ void MovePlugin::unifyBoundingBox(Unificationtype u)
else if ( o_it->dataType( DATA_HEXAHEDRAL_MESH ) )
unifyBBVolumeMesh(*PluginFunctions::hexahedralMesh(*o_it),(PluginFunctions::hexahedralMeshObject(*o_it)->normals()), u);
#endif
#ifdef ENABLE_OPENVOLUMEMESH_TETRAHEDRAL_SUPPORT
else if ( o_it->dataType( DATA_TETRAHEDRAL_MESH ) )
unifyBBVolumeMesh(*PluginFunctions::tetrahedralMesh(*o_it),(PluginFunctions::tetrahedralMeshObject(*o_it)->normals()), u);
#endif
#ifdef ENABLE_OPENVOLUMEMESH_POLYHEDRAL_SUPPORT
else if ( o_it->dataType( DATA_POLYHEDRAL_MESH ) )
unifyBBVolumeMesh(*PluginFunctions::polyhedralMesh(*o_it),(PluginFunctions::polyhedralMeshObject(*o_it)->normals()), u);
......
......@@ -60,6 +60,9 @@
#ifdef ENABLE_OPENVOLUMEMESH_HEXAHEDRAL_SUPPORT
#include <ObjectTypes/HexahedralMesh/HexahedralMesh.hh>
#endif
#ifdef ENABLE_OPENVOLUMEMESH_TETRAHEDRAL_SUPPORT
#include <ObjectTypes/TetrahedralMesh/TetrahedralMesh.hh>
#endif
#ifdef ENABLE_OPENVOLUMEMESH_POLYHEDRAL_SUPPORT
#include <ObjectTypes/PolyhedralMesh/PolyhedralMesh.hh>
#endif
......@@ -215,6 +218,16 @@ void MovePlugin::translate( int _objectId , Vector _vector) {
mesh.set_vertex(*v_it, mesh.vertex(*v_it) + _vector );
}
#endif
#ifdef ENABLE_OPENVOLUMEMESH_TETRAHEDRAL_SUPPORT
else if ( object->dataType(DATA_TETRAHEDRAL_MESH) ) {
TetrahedralMesh& mesh = (*PluginFunctions::tetrahedralMesh(object));
OpenVolumeMesh::VertexIter v_it = mesh.vertices_begin();
OpenVolumeMesh::VertexIter v_end = mesh.vertices_end();
for (; v_it != v_end; ++v_it)
mesh.set_vertex(*v_it, mesh.vertex(*v_it) + _vector );
}
#endif
#ifdef ENABLE_OPENVOLUMEMESH_POLYHEDRAL_SUPPORT
else if ( object->dataType(DATA_POLYHEDRAL_MESH) ) {
......@@ -306,6 +319,16 @@ void MovePlugin::translate( int _objectId , IdList _vHandles, Vector _vector ){
}
}
#endif
#ifdef ENABLE_OPENVOLUMEMESH_TETRAHEDRAL_SUPPORT
else if ( object->dataType(DATA_TETRAHEDRAL_MESH) ) {
TetrahedralMesh& mesh = (*PluginFunctions::tetrahedralMesh(object));
for (unsigned int i = 0; i < _vHandles.size(); ++i) {
OpenVolumeMesh::VertexHandle v(_vHandles[i]);
mesh.set_vertex(v, mesh.vertex(v) + _vector );
}
}
#endif
#ifdef ENABLE_OPENVOLUMEMESH_POLYHEDRAL_SUPPORT
else if ( object->dataType(DATA_POLYHEDRAL_MESH) ) {
......@@ -410,6 +433,20 @@ void MovePlugin::translateVertexSelection( int _objectId , Vector _vector) {
}
}
#endif
#ifdef ENABLE_OPENVOLUMEMESH_TETRAHEDRAL_SUPPORT
else if ( object->dataType(DATA_TETRAHEDRAL_MESH) ) {
TetrahedralMesh& mesh = (*PluginFunctions::tetrahedralMesh(object));
OpenVolumeMesh::StatusAttrib& statusAttrib = ((TetrahedralMeshObject*)object)->status();
OpenVolumeMesh::VertexIter v_it = mesh.vertices_begin();
OpenVolumeMesh::VertexIter v_end = mesh.vertices_end();
for (; v_it != v_end; ++v_it)
if (statusAttrib[*v_it].selected()) {
noneSelected = false;
mesh.set_vertex(*v_it, mesh.vertex(*v_it) + _vector );
}
}
#endif
#ifdef ENABLE_OPENVOLUMEMESH_POLYHEDRAL_SUPPORT
else if ( object->dataType(DATA_POLYHEDRAL_MESH) ) {
......@@ -809,6 +846,19 @@ void MovePlugin::transform( int _objectId , Matrix4x4 _matrix ){
}
}
#endif
#ifdef ENABLE_OPENVOLUMEMESH_TETRAHEDRAL_SUPPORT
else if ( object->dataType(DATA_TETRAHEDRAL_MESH) ) {
TetrahedralMesh& mesh = (*PluginFunctions::tetrahedralMesh(object));
OpenVolumeMesh::NormalAttrib<TetrahedralMesh>& normalAttrib = ((TetrahedralMeshObject*)object)->normals();
OpenVolumeMesh::VertexIter v_it = mesh.vertices_begin();
OpenVolumeMesh::VertexIter v_end = mesh.vertices_end();
for (; v_it != v_end; ++v_it) {
mesh.set_vertex(*v_it, _matrix.transform_point ( mesh.vertex(*v_it) ) );
normalAttrib[*v_it] = normalMatrix.transform_vector( normalAttrib[*v_it] );
}
}
#endif
#ifdef ENABLE_OPENVOLUMEMESH_POLYHEDRAL_SUPPORT
else if ( object->dataType(DATA_POLYHEDRAL_MESH) ) {
......@@ -918,6 +968,18 @@ void MovePlugin::transform( int _objectId , IdList _vHandles, Matrix4x4 _matrix
}
}
#endif
#ifdef ENABLE_OPENVOLUMEMESH_TETRAHEDRAL_SUPPORT
else if ( object->dataType(DATA_TETRAHEDRAL_MESH) ) {
TetrahedralMesh& mesh = (*PluginFunctions::tetrahedralMesh(object));
OpenVolumeMesh::NormalAttrib<TetrahedralMesh>& normalAttrib = ((TetrahedralMeshObject*)object)->normals();
for (unsigned int i = 0; i < _vHandles.size(); ++i) {
OpenVolumeMesh::VertexHandle v(_vHandles[i]);
mesh.set_vertex(v, _matrix.transform_point ( mesh.vertex(v) ) );
normalAttrib[v] = normalMatrix.transform_vector( normalAttrib[v] );
}
}
#endif
#ifdef ENABLE_OPENVOLUMEMESH_POLYHEDRAL_SUPPORT
else if ( object->dataType(DATA_POLYHEDRAL_MESH) ) {
......@@ -1045,6 +1107,22 @@ bool MovePlugin::transformVertexSelection( int _objectId , Matrix4x4 _matrix ){
}
}
#endif
#ifdef ENABLE_OPENVOLUMEMESH_TETRAHEDRAL_SUPPORT
else if ( object->dataType(DATA_TETRAHEDRAL_MESH) ) {
TetrahedralMesh& mesh = (*PluginFunctions::tetrahedralMesh(object));
OpenVolumeMesh::NormalAttrib<TetrahedralMesh>& normalAttrib = ((TetrahedralMeshObject*)object)->normals();
OpenVolumeMesh::StatusAttrib& statusAttrib = ((TetrahedralMeshObject*)object)->status();
OpenVolumeMesh::VertexIter v_it = mesh.vertices_begin();
OpenVolumeMesh::VertexIter v_end = mesh.vertices_end();
for (; v_it!=v_end; ++v_it)
if ( statusAttrib[*v_it].selected() )
{
noneSelected = false;
mesh.set_vertex(*v_it, _matrix.transform_point ( mesh.vertex(*v_it) ) );
normalAttrib[*v_it] = normalMatrix.transform_vector( normalAttrib[*v_it] );
}
}
#endif
#ifdef ENABLE_OPENVOLUMEMESH_POLYHEDRAL_SUPPORT
else if ( object->dataType(DATA_POLYHEDRAL_MESH) ) {
PolyhedralMesh& mesh = (*PluginFunctions::polyhedralMesh(object));
......@@ -1210,6 +1288,38 @@ bool MovePlugin::transformFaceSelection( int _objectId , Matrix4x4 _matrix ){
}
#endif
#ifdef ENABLE_OPENVOLUMEMESH_TETRAHEDRAL_SUPPORT
if ( object->dataType( DATA_TETRAHEDRAL_MESH ) ) {
TetrahedralMesh& mesh = (*PluginFunctions::tetrahedralMesh(object));
OpenVolumeMesh::NormalAttrib<TetrahedralMesh>& normalAttrib = ((TetrahedralMeshObject*)object)->normals();
OpenVolumeMesh::StatusAttrib& statusAttrib = ((TetrahedralMeshObject*)object)->status();
OpenVolumeMesh::VertexIter v_begin = mesh.vertices_begin();
OpenVolumeMesh::VertexIter v_end = mesh.vertices_end();
//init tags
for (OpenVolumeMesh::VertexIter v_it = v_begin; v_it!=v_end; ++v_it)
statusAttrib[*v_it].set_tagged(false);
OpenVolumeMesh::FaceIter f_it = mesh.faces_begin();
OpenVolumeMesh::FaceIter f_end = mesh.faces_end();
for (; f_it!=f_end; ++f_it)
if ( statusAttrib[*f_it].selected() )
{
noneSelected = false;
for (OpenVolumeMesh::HalfFaceVertexIter hfv_it = mesh.hfv_iter(mesh.halfface_handle(*f_it,0)); hfv_it.valid(); ++hfv_it)
statusAttrib[*hfv_it].set_tagged(true);
}
for (OpenVolumeMesh::VertexIter v_it = v_begin; v_it!=v_end; ++v_it)
if ( statusAttrib[*v_it].tagged() )
{
mesh.set_vertex(*v_it, _matrix.transform_point ( mesh.vertex(*v_it) ) );
normalAttrib[*v_it] = normalMatrix.transform_vector( normalAttrib[*v_it] );
}
}
#endif
#ifdef ENABLE_OPENVOLUMEMESH_POLYHEDRAL_SUPPORT
else if ( object->dataType( DATA_POLYHEDRAL_MESH ) ) {
......@@ -1397,6 +1507,39 @@ bool MovePlugin::transformEdgeSelection( int _objectId , Matrix4x4 _matrix ){
}
#endif
#ifdef ENABLE_OPENVOLUMEMESH_TETRAHEDRAL_SUPPORT
if ( object->dataType( DATA_TETRAHEDRAL_MESH ) ) {
TetrahedralMesh& mesh = (*PluginFunctions::tetrahedralMesh(object));
OpenVolumeMesh::NormalAttrib<TetrahedralMesh>& normalAttrib = ((TetrahedralMeshObject*)object)->normals();
OpenVolumeMesh::StatusAttrib& statusAttrib = ((TetrahedralMeshObject*)object)->status();
OpenVolumeMesh::VertexIter v_begin = mesh.vertices_begin();
OpenVolumeMesh::VertexIter v_end = mesh.vertices_end();
//init tags
for (OpenVolumeMesh::VertexIter v_it = v_begin; v_it!=v_end; ++v_it)
statusAttrib[*v_it].set_tagged(false);
OpenVolumeMesh::EdgeIter e_it = mesh.edges_begin();
OpenVolumeMesh::EdgeIter e_end = mesh.edges_end();
for (; e_it!=e_end; ++e_it)
if ( statusAttrib[*e_it].selected() )
{
noneSelected = false;
OpenVolumeMesh::OpenVolumeMeshEdge e(mesh.edge(*e_it));
statusAttrib[e.from_vertex()].set_tagged(true);
statusAttrib[e.to_vertex()].set_tagged(true);
}
for (OpenVolumeMesh::VertexIter v_it = v_begin; v_it!=v_end; ++v_it)
if ( statusAttrib[*v_it].tagged() )
{
mesh.set_vertex(*v_it, _matrix.transform_point ( mesh.vertex(*v_it) ) );
normalAttrib[*v_it] = normalMatrix.transform_vector( normalAttrib[*v_it] );
}
}
#endif
#ifdef ENABLE_OPENVOLUMEMESH_POLYHEDRAL_SUPPORT
if ( object->dataType( DATA_POLYHEDRAL_MESH ) ) {
......@@ -1513,6 +1656,38 @@ bool MovePlugin::transformCellSelection( int _objectId , Matrix4x4 _matrix ){
}
#endif
#ifdef ENABLE_OPENVOLUMEMESH_TETRAHEDRAL_SUPPORT
if ( object->dataType( DATA_TETRAHEDRAL_MESH ) ) {
TetrahedralMesh& mesh = (*PluginFunctions::tetrahedralMesh(object));
OpenVolumeMesh::NormalAttrib<TetrahedralMesh>& normalAttrib = ((TetrahedralMeshObject*)object)->normals();
OpenVolumeMesh::StatusAttrib& statusAttrib = ((TetrahedralMeshObject*)object)->status();
OpenVolumeMesh::VertexIter v_begin = mesh.vertices_begin();
OpenVolumeMesh::VertexIter v_end = mesh.vertices_end();
//init tags
for (OpenVolumeMesh::VertexIter v_it = v_begin; v_it!=v_end; ++v_it)
statusAttrib[*v_it].set_tagged(false);
OpenVolumeMesh::CellIter c_it = mesh.cells_begin();
OpenVolumeMesh::CellIter c_end = mesh.cells_end();
for (; c_it!=c_end; ++c_it)
if ( statusAttrib[*c_it].selected() )
{
noneSelected = false;
for (OpenVolumeMesh::CellVertexIter cv_it = mesh.cv_iter(*c_it); cv_it.valid(); ++cv_it)
statusAttrib[*cv_it].set_tagged(true);
}
for (OpenVolumeMesh::VertexIter v_it = v_begin; v_it!=v_end; ++v_it)
if ( statusAttrib[*v_it].tagged() )
{
mesh.set_vertex(*v_it, _matrix.transform_point ( mesh.vertex(*v_it) ) );
normalAttrib[*v_it] = normalMatrix.transform_vector( normalAttrib[*v_it] );
}
}
#endif
#ifdef ENABLE_OPENVOLUMEMESH_POLYHEDRAL_SUPPORT
else if ( object->dataType( DATA_POLYHEDRAL_MESH ) ) {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment