r3807 - in MOAB/trunk/src: . moab
Author: hongjun Date: 2010-04-23 11:18:45 -0500 (Fri, 23 Apr 2010) New Revision: 3807 Modified: MOAB/trunk/src/GeomTopoTool.cpp MOAB/trunk/src/moab/GeomTopoTool.hpp Log: o Obb tree construction function for geometry is added o Tree roots for surfaces and volumes are constructed Modified: MOAB/trunk/src/GeomTopoTool.cpp =================================================================== --- MOAB/trunk/src/GeomTopoTool.cpp 2010-04-23 16:16:18 UTC (rev 3806) +++ MOAB/trunk/src/GeomTopoTool.cpp 2010-04-23 16:18:45 UTC (rev 3807) @@ -33,6 +33,18 @@ // be listed for both the forward and reverse slots. const char GEOM_SENSE_TAG_NAME[] = "GEOM_SENSE_2"; +GeomTopoTool::GeomTopoTool(Interface *impl, bool find_geoments) + : mdbImpl(impl), obbTree(impl), sense2Tag(0), oneVolRootSet(NULL) +{ + ErrorCode result = mdbImpl->tag_create(GEOM_DIMENSION_TAG_NAME, 4, + MB_TAG_SPARSE, geomTag, NULL); + if (MB_SUCCESS != result && MB_ALREADY_ALLOCATED != result) { + std::cerr << "Error: Failed to create geometry dimension tag." << std::endl; + } + + if (find_geoments) find_geomsets(); +} + ErrorCode GeomTopoTool::set_sense( EntityHandle surface, EntityHandle volume, bool forward ) @@ -90,16 +102,10 @@ ErrorCode GeomTopoTool::find_geomsets(Range *ranges) { - //Tag geom_tag; - ErrorCode result = mdbImpl->tag_create(GEOM_DIMENSION_TAG_NAME, 4, - MB_TAG_SPARSE, geomTag, NULL); - if (MB_SUCCESS != result && MB_ALREADY_ALLOCATED != result) - return result; - // get all sets with this tag Range geom_sets; - result = mdbImpl->get_entities_by_type_and_tag(0, MBENTITYSET, &geomTag, NULL, 1, - geom_sets); + ErrorCode result = mdbImpl->get_entities_by_type_and_tag(0, MBENTITYSET, &geomTag, NULL, 1, + geom_sets); if (MB_SUCCESS != result || geom_sets.empty()) return result; @@ -114,14 +120,16 @@ return MB_SUCCESS; } -ErrorCode GeomTopoTool::construct_obb_trees() +ErrorCode GeomTopoTool::construct_obb_trees(bool make_one_vol) { + ErrorCode rval; +
participants (1)
-
hongjun@mcs.anl.gov