#include <FBEngine.hpp>
Public Member Functions | |
FBEngine (Interface *impl, GeomTopoTool *geomTopoTool=NULL, const bool smooth=false) | |
~FBEngine () | |
ErrorCode | Init () |
ErrorCode | getRootSet (EntityHandle *root_set) |
ErrorCode | getNumEntSets (EntityHandle set, int num_hops, int *all_sets) |
ErrorCode | createEntSet (int isList, EntityHandle *pSet) |
ErrorCode | addEntSet (EntityHandle entity_set_to_add, EntityHandle entity_set_handle) |
ErrorCode | getEntities (EntityHandle root_set, int ent_type, Range &gentities) |
ErrorCode | addEntArrToSet (const Range &entities, EntityHandle set) |
ErrorCode | getNumOfType (EntityHandle set, int ent_type, int *pNum) |
ErrorCode | getEntType (EntityHandle gent, int *type) |
ErrorCode | getEntBoundBox (EntityHandle this_gent, double *x0, double *y0, double *z0, double *x1, double *y1, double *z1) |
ErrorCode | getEntClosestPt (EntityHandle this_gent, double x, double y, double z, double *x1, double *y1, double *y3) |
ErrorCode | getVtxCoord (EntityHandle this_gent, double *x0, double *y0, double *z0) |
ErrorCode | gsubtract (EntityHandle entity_set_1, EntityHandle entity_set_2, EntityHandle result_entity_set) |
ErrorCode | getEntNrmlXYZ (EntityHandle entity_handle, double x, double y, double z, double *nrml_i, double *nrml_j, double *nrml_k) |
ErrorCode | getPntRayIntsct (double x, double y, double z, double dir_x, double dir_y, double dir_z, std::vector< EntityHandle > &intersect_entity_handles, std::vector< double > &intersect_coords, std::vector< double > ¶m_coords) |
ErrorCode | createTag (const char *tag_name, int tag_num_type_values, int tag_type, Tag &tag_handle_out) |
Interface * | moab_instance () |
ErrorCode | getArrData (const moab::EntityHandle *entity_handles, int entity_handles_size, Tag tag_handle, void *tag_values_out) |
ErrorCode | setArrData (const EntityHandle *entity_handles, int entity_handles_size, Tag tag_handle, const void *tag_values) |
ErrorCode | getEntAdj (EntityHandle handle, int type_requested, Range &adjEnts) |
ErrorCode | getEgFcSense (EntityHandle mbedge, EntityHandle mbface, int &sense) |
ErrorCode | measure (const EntityHandle *moab_entities, int entities_size, double *measures) |
ErrorCode | getEntNrmlSense (EntityHandle face, EntityHandle region, int &sense) |
ErrorCode | getEgEvalXYZ (EntityHandle edge, double x, double y, double z, double &on_x, double &on_y, double &on_z, double &tngt_i, double &tngt_j, double &tngt_k, double &cvtr_i, double &cvtr_j, double &cvtr_k) |
ErrorCode | getFcEvalXYZ (EntityHandle face, double x, double y, double z, double &on_x, double &on_y, double &on_z, double &nrml_i, double &nrml_j, double &nrml_k, double &cvtr1_i, double &cvtr1_j, double &cvtr1_k, double &cvtr2_i, double &cvtr2_j, double &cvtr2_k) |
ErrorCode | getEgVtxSense (EntityHandle edge, EntityHandle vtx1, EntityHandle vtx2, int &sense) |
ErrorCode | getEntURange (EntityHandle edge, double &u_min, double &u_max) |
ErrorCode | getEntUtoXYZ (EntityHandle edge, double u, double &x, double &y, double &z) |
ErrorCode | getEntTgntU (EntityHandle edge, double u, double &i, double &j, double &k) |
ErrorCode | isEntAdj (EntityHandle entity1, EntityHandle entity2, bool &adjacent_out) |
ErrorCode | split_surface_with_direction (EntityHandle face, std::vector< double > &xyz, double *direction, int closed, double min_dot, EntityHandle &oNewFace) |
ErrorCode | split_surface (EntityHandle face, std::vector< EntityHandle > &chainedEdges, std::vector< EntityHandle > &splittingNodes, EntityHandle &newFace) |
ErrorCode | split_edge_at_point (EntityHandle edge, CartVect &point, EntityHandle &new_edge) |
ErrorCode | split_edge_at_mesh_node (EntityHandle edge, EntityHandle node, EntityHandle &new_edge) |
ErrorCode | split_bedge_at_new_mesh_node (EntityHandle b_edge, EntityHandle atNode, EntityHandle brokenEdge, EntityHandle &new_edge) |
void | clean () |
void | delete_smooth_tags () |
GeomTopoTool * | get_gtt () |
ErrorCode | create_volume_with_direction (EntityHandle newFace1, EntityHandle newFace2, double *direction, EntityHandle &volume) |
ErrorCode | get_nodes_from_edge (EntityHandle gedge, std::vector< EntityHandle > &nodes) |
ErrorCode | weave_lateral_face_from_edges (EntityHandle bEdge, EntityHandle tEdge, double *direction, EntityHandle &newLatFace) |
ErrorCode | chain_edges (double min_dot) |
ErrorCode | chain_two_edges (EntityHandle edge, EntityHandle next_edge) |
ErrorCode | get_vert_edges (EntityHandle edge, EntityHandle &v1, EntityHandle &v2) |
void | set_smooth () |
Private Attributes | |
Interface * | _mbImpl |
GeomTopoTool * | _my_geomTopoTool |
bool | _t_created |
bool | _smooth |
bool | _initialized |
Range | _my_gsets [5] |
std::map< EntityHandle, SmoothFace * > | _faces |
std::map< EntityHandle, SmoothCurve * > | _edges |
SmoothFace ** | _smthFace |
SmoothCurve ** | _smthCurve |
Range | _piercedTriangles |
Range | _newTriangles |
Range | _piercedEdges |
std::map< EntityHandle, EntityHandle > | _brokenEdges |
Definition at line 24 of file FBEngine.hpp.
moab::FBEngine::FBEngine | ( | Interface * | impl, |
GeomTopoTool * | geomTopoTool = NULL , |
||
const bool | smooth = false |
||
) |
Definition at line 192 of file FBEngine.cpp.
References _mbImpl, _my_geomTopoTool, and _t_created.
moab::FBEngine::~FBEngine | ( | ) |
ErrorCode moab::FBEngine::addEntArrToSet | ( | const Range & | entities, |
EntityHandle | set | ||
) |
ErrorCode moab::FBEngine::addEntSet | ( | EntityHandle | entity_set_to_add, |
EntityHandle | entity_set_handle | ||
) |
Definition at line 493 of file FBEngine.cpp.
References MBI.
|
private |
Definition at line 3047 of file FBEngine.cpp.
References _mbImpl, moab::Range::begin(), moab::Range::end(), ErrorCode, moab::Interface::get_entities_by_dimension(), getAdjacentEntities(), MB_SUCCESS, and MBERRORR.
Referenced by split_surface_with_direction().
|
private |
Definition at line 3064 of file FBEngine.cpp.
References _mbImpl, moab::Range::begin(), moab::Range::end(), ErrorCode, moab::Interface::get_connectivity(), moab::Interface::get_entities_by_dimension(), getAdjacentEntities(), MB_SUCCESS, MBERRORR, and moab::Range::size().
Referenced by split_surface_with_direction().
|
private |
Definition at line 1989 of file FBEngine.cpp.
|
private |
Definition at line 1995 of file FBEngine.cpp.
References _mbImpl, _newTriangles, moab::Interface::create_element(), moab::debug_splits, ErrorCode, moab::Interface::get_connectivity(), moab::Range::insert(), MB_SUCCESS, MBERRORR, MBTRI, MBVERTEX, print_debug_triangle(), moab::Interface::side_number(), and moab::Interface::type_from_handle().
Referenced by split_surface_with_direction().
|
private |
Definition at line 3665 of file FBEngine.cpp.
References _mbImpl, moab::Range::begin(), moab::Range::end(), ErrorCode, moab::Interface::get_connectivity(), moab::Interface::get_coords(), moab::Interface::get_entities_by_type(), moab::Interface::get_parent_meshsets(), get_vert_edges(), MB_SUCCESS, MBEDGE, MBERRORR, and moab::CartVect::normalize().
Referenced by chain_edges().
ErrorCode moab::FBEngine::chain_edges | ( | double | min_dot | ) |
Definition at line 3627 of file FBEngine.cpp.
References _my_geomTopoTool, chain_able_edge(), chain_two_edges(), ErrorCode, moab::GeomTopoTool::find_geomsets(), MB_SUCCESS, MBERRORR, and size.
Referenced by split_surface_with_direction().
ErrorCode moab::FBEngine::chain_two_edges | ( | EntityHandle | edge, |
EntityHandle | next_edge | ||
) |
Definition at line 3735 of file FBEngine.cpp.
References _mbImpl, moab::Interface::add_entities(), moab::Interface::add_parent_child(), moab::Range::begin(), moab::Interface::delete_entities(), moab::Range::end(), ErrorCode, moab::Interface::get_parent_meshsets(), get_vert_edges(), MB_SUCCESS, MBEDGE, MBERRORR, MBI, and moab::Interface::remove_parent_child().
Referenced by chain_edges().
void moab::FBEngine::clean | ( | ) |
Definition at line 210 of file FBEngine.cpp.
References _edges, _faces, _my_geomTopoTool, _my_gsets, _smooth, _smthCurve, _smthFace, _t_created, and moab::Range::size().
Referenced by ~FBEngine().
|
private |
Definition at line 2124 of file FBEngine.cpp.
References _mbImpl, _piercedTriangles, moab::debug_splits, moab::Range::end(), entities, ErrorCode, moab::Range::find(), moab::Interface::get_adjacencies(), moab::Interface::get_connectivity(), moab::Interface::get_coords(), moab::Interface::id_from_handle(), moab::Interface::INTERSECT, moab::intersect_segment_and_plane_slice(), moab::CartVect::length(), moab::Interface::list_entity(), MB_SUCCESS, MBERRORR, MBVERTEX, moab::CartVect::normalize(), moab::tolerance_segment, and moab::Interface::type_from_handle().
Referenced by split_surface_with_direction().
|
private |
Definition at line 1872 of file FBEngine.cpp.
References _mbImpl, _my_geomTopoTool, _piercedEdges, moab::Interface::add_entities(), moab::GeomTopoTool::add_geo_set(), moab::Interface::add_parent_child(), moab::Interface::create_element(), moab::Interface::create_meshset(), moab::debug_splits, ErrorCode, find_vertex_set_for_node(), moab::Interface::get_adjacencies(), moab::Interface::get_connectivity(), moab::GeomTopoTool::global_id(), moab::Interface::id_from_handle(), moab::Range::insert(), moab::Interface::INTERSECT, MB_CHK_ERR, MBEDGE, MBERRORR, MESHSET_SET, and moab::Range::size().
Referenced by split_surface_with_direction().
ErrorCode moab::FBEngine::create_volume_with_direction | ( | EntityHandle | newFace1, |
EntityHandle | newFace2, | ||
double * | direction, | ||
EntityHandle & | volume | ||
) |
Definition at line 3191 of file FBEngine.cpp.
References _mbImpl, _my_geomTopoTool, moab::GeomTopoTool::add_geo_set(), moab::Interface::add_parent_child(), moab::Interface::create_meshset(), ErrorCode, moab::Interface::get_child_meshsets(), MATERIAL_SET_TAG_NAME, MB_SUCCESS, MB_TYPE_INTEGER, MBERRORR, MESHSET_SET, set_default_neumann_tags(), moab::GeomTopoTool::set_sense(), moab::Interface::tag_get_handle(), moab::Interface::tag_set_data(), and weave_lateral_face_from_edges().
ErrorCode moab::FBEngine::createEntSet | ( | int | isList, |
EntityHandle * | pSet | ||
) |
ErrorCode moab::FBEngine::createTag | ( | const char * | tag_name, |
int | tag_num_type_values, | ||
int | tag_type, | ||
Tag & | tag_handle_out | ||
) |
Definition at line 917 of file FBEngine.cpp.
References ErrorCode, MB_ALREADY_ALLOCATED, MB_SUCCESS, MB_TAG_EXCL, MB_TAG_SPARSE, MB_TYPE_DOUBLE, MB_TYPE_HANDLE, MB_TYPE_INTEGER, MB_TYPE_OPAQUE, MBI, and TagType.
void moab::FBEngine::delete_smooth_tags | ( | ) |
Definition at line 389 of file FBEngine.cpp.
References _mbImpl, _my_gsets, _smthFace, moab::SmoothFace::append_smooth_tags(), ErrorCode, MB_TAG_NOT_FOUND, MB_TYPE_BIT, MB_TYPE_DOUBLE, size, moab::Interface::tag_delete(), and moab::Interface::tag_get_handle().
|
private |
Definition at line 3145 of file FBEngine.cpp.
References _mbImpl, _newTriangles, _piercedTriangles, moab::Interface::create_element(), moab::debug_splits, ErrorCode, moab::Interface::get_adjacencies(), moab::Interface::get_connectivity(), moab::Range::insert(), moab::Interface::list_entity(), MB_SUCCESS, MBERRORR, MBTRI, and print_debug_triangle().
Referenced by split_surface_with_direction().
|
private |
Definition at line 2847 of file FBEngine.cpp.
References _mbImpl, moab::Range::begin(), moab::Interface::contains_entities(), moab::Range::end(), ErrorCode, GEOM_DIMENSION_TAG_NAME, moab::Interface::get_entities_by_type_and_tag(), MB_SUCCESS, MB_TYPE_INTEGER, MBENTITYSET, and MBI.
Referenced by create_new_gedge(), split_bedge_at_new_mesh_node(), and split_edge_at_mesh_node().
|
inline |
Definition at line 183 of file FBEngine.hpp.
References _my_geomTopoTool.
ErrorCode moab::FBEngine::get_nodes_from_edge | ( | EntityHandle | gedge, |
std::vector< EntityHandle > & | nodes | ||
) |
Definition at line 3263 of file FBEngine.cpp.
References _mbImpl, ErrorCode, moab::Interface::get_connectivity(), moab::Interface::get_entities_by_type(), MB_SUCCESS, MBEDGE, and MBERRORR.
Referenced by weave_lateral_face_from_edges().
ErrorCode moab::FBEngine::get_vert_edges | ( | EntityHandle | edge, |
EntityHandle & | v1, | ||
EntityHandle & | v2 | ||
) |
Definition at line 3788 of file FBEngine.cpp.
References _mbImpl, children, entities, ErrorCode, moab::Interface::get_child_meshsets(), MB_SUCCESS, MBEDGE, MBERRORR, MBI, and MBVERTEX.
Referenced by chain_able_edge(), and chain_two_edges().
|
private |
Definition at line 850 of file FBEngine.cpp.
References _my_geomTopoTool, moab::Range::clear(), moab::Range::end(), ErrorCode, moab::Range::find(), moab::GeomTopoTool::geoRanges(), MB_SUCCESS, MBI, and moab::subtract().
Referenced by boundary_mesh_edges_on_face(), boundary_nodes_on_face(), getEntAdj(), separate(), split_bedge_at_new_mesh_node(), split_boundary(), and split_edge_at_mesh_node().
ErrorCode moab::FBEngine::getArrData | ( | const moab::EntityHandle * | entity_handles, |
int | entity_handles_size, | ||
Tag | tag_handle, | ||
void * | tag_values_out | ||
) |
ErrorCode moab::FBEngine::getEgEvalXYZ | ( | EntityHandle | edge, |
double | x, | ||
double | y, | ||
double | z, | ||
double & | on_x, | ||
double & | on_y, | ||
double & | on_z, | ||
double & | tngt_i, | ||
double & | tngt_j, | ||
double & | tngt_k, | ||
double & | cvtr_i, | ||
double & | cvtr_j, | ||
double & | cvtr_k | ||
) |
Definition at line 1063 of file FBEngine.cpp.
References MB_NOT_IMPLEMENTED.
ErrorCode moab::FBEngine::getEgFcSense | ( | EntityHandle | mbedge, |
EntityHandle | mbface, | ||
int & | sense | ||
) |
Definition at line 977 of file FBEngine.cpp.
References _my_geomTopoTool, ErrorCode, moab::GeomTopoTool::get_senses(), and MB_SUCCESS.
ErrorCode moab::FBEngine::getEgVtxSense | ( | EntityHandle | edge, |
EntityHandle | vtx1, | ||
EntityHandle | vtx2, | ||
int & | sense | ||
) |
Definition at line 1099 of file FBEngine.cpp.
References entities, ErrorCode, getEntType(), MB_SUCCESS, MBEDGE, MBI, and MBVERTEX.
Referenced by weave_lateral_face_from_edges().
ErrorCode moab::FBEngine::getEntAdj | ( | EntityHandle | handle, |
int | type_requested, | ||
Range & | adjEnts | ||
) |
Definition at line 972 of file FBEngine.cpp.
References getAdjacentEntities().
ErrorCode moab::FBEngine::getEntBoundBox | ( | EntityHandle | this_gent, |
double * | x0, | ||
double * | y0, | ||
double * | z0, | ||
double * | x1, | ||
double * | y1, | ||
double * | z1 | ||
) |
Definition at line 549 of file FBEngine.cpp.
References _my_geomTopoTool, moab::CartVect::array(), moab::OrientedBoxTreeTool::box(), center(), ErrorCode, moab::GeomTopoTool::get_root(), getEntType(), getVtxCoord(), MB_SUCCESS, MBERRORR, and moab::GeomTopoTool::obb_tree().
ErrorCode moab::FBEngine::getEntClosestPt | ( | EntityHandle | this_gent, |
double | x, | ||
double | y, | ||
double | z, | ||
double * | x1, | ||
double * | y1, | ||
double * | y3 | ||
) |
Definition at line 605 of file FBEngine.cpp.
References _edges, _faces, _my_geomTopoTool, _smooth, moab::OrientedBoxTreeTool::closest_to_location(), ErrorCode, moab::GeomTopoTool::get_root(), getEntType(), getVtxCoord(), MB_SUCCESS, MB_TYPE_OUT_OF_RANGE, MBERRORR, moab::SmoothCurve::move_to_curve(), moab::SmoothFace::move_to_surface(), and moab::GeomTopoTool::obb_tree().
ErrorCode moab::FBEngine::getEntities | ( | EntityHandle | root_set, |
int | ent_type, | ||
Range & | gentities | ||
) |
Definition at line 460 of file FBEngine.cpp.
References _my_geomTopoTool, moab::Range::clear(), ErrorCode, moab::GeomTopoTool::geoRanges(), moab::intersect(), MB_SUCCESS, MBENTITYSET, MBERRORR, MBI, and moab::Range::merge().
ErrorCode moab::FBEngine::getEntNrmlSense | ( | EntityHandle | face, |
EntityHandle | region, | ||
int & | sense | ||
) |
Definition at line 1058 of file FBEngine.cpp.
References MB_NOT_IMPLEMENTED.
ErrorCode moab::FBEngine::getEntNrmlXYZ | ( | EntityHandle | entity_handle, |
double | x, | ||
double | y, | ||
double | z, | ||
double * | nrml_i, | ||
double * | nrml_j, | ||
double * | nrml_k | ||
) |
Definition at line 713 of file FBEngine.cpp.
References _faces, _my_geomTopoTool, _smooth, moab::OrientedBoxTreeTool::closest_to_location(), ErrorCode, moab::GeomTopoTool::get_root(), getEntType(), MB_SUCCESS, MBERRORR, MBI, moab::SmoothFace::normal_at(), moab::CartVect::normalize(), and moab::GeomTopoTool::obb_tree().
ErrorCode moab::FBEngine::getEntTgntU | ( | EntityHandle | edge, |
double | u, | ||
double & | i, | ||
double & | j, | ||
double & | k | ||
) |
Definition at line 1172 of file FBEngine.cpp.
References _edges, MB_SUCCESS, and moab::SmoothCurve::position_from_u().
ErrorCode moab::FBEngine::getEntType | ( | EntityHandle | gent, |
int * | type | ||
) |
Definition at line 536 of file FBEngine.cpp.
References _my_geomTopoTool, moab::Range::end(), moab::Range::find(), moab::GeomTopoTool::geoRanges(), and MB_SUCCESS.
Referenced by getEgVtxSense(), getEntBoundBox(), getEntClosestPt(), getEntNrmlXYZ(), getVtxCoord(), isEntAdj(), and measure().
ErrorCode moab::FBEngine::getEntURange | ( | EntityHandle | edge, |
double & | u_min, | ||
double & | u_max | ||
) |
Definition at line 1156 of file FBEngine.cpp.
References _edges, moab::SmoothCurve::get_param_range(), and MB_SUCCESS.
ErrorCode moab::FBEngine::getEntUtoXYZ | ( | EntityHandle | edge, |
double | u, | ||
double & | x, | ||
double & | y, | ||
double & | z | ||
) |
Definition at line 1164 of file FBEngine.cpp.
References _edges, MB_SUCCESS, and moab::SmoothCurve::position_from_u().
ErrorCode moab::FBEngine::getFcEvalXYZ | ( | EntityHandle | face, |
double | x, | ||
double | y, | ||
double | z, | ||
double & | on_x, | ||
double & | on_y, | ||
double & | on_z, | ||
double & | nrml_i, | ||
double & | nrml_j, | ||
double & | nrml_k, | ||
double & | cvtr1_i, | ||
double & | cvtr1_j, | ||
double & | cvtr1_k, | ||
double & | cvtr2_i, | ||
double & | cvtr2_j, | ||
double & | cvtr2_k | ||
) |
Definition at line 1079 of file FBEngine.cpp.
References MB_NOT_IMPLEMENTED.
ErrorCode moab::FBEngine::getNumEntSets | ( | EntityHandle | set, |
int | num_hops, | ||
int * | all_sets | ||
) |
ErrorCode moab::FBEngine::getNumOfType | ( | EntityHandle | set, |
int | ent_type, | ||
int * | pNum | ||
) |
Definition at line 498 of file FBEngine.cpp.
References _mbImpl, _my_geomTopoTool, ErrorCode, GEOM_DIMENSION_TAG_NAME, moab::GeomTopoTool::geoRanges(), moab::Interface::get_entities_by_type_and_tag(), moab::intersect(), MB_SUCCESS, MB_TAG_CREAT, MB_TAG_SPARSE, MB_TYPE_INTEGER, MBENTITYSET, MBERRORR, moab::Range::size(), moab::Interface::tag_get_handle(), and moab::Interface::UNION.
ErrorCode moab::FBEngine::getPntRayIntsct | ( | double | x, |
double | y, | ||
double | z, | ||
double | dir_x, | ||
double | dir_y, | ||
double | dir_z, | ||
std::vector< EntityHandle > & | intersect_entity_handles, | ||
std::vector< double > & | intersect_coords, | ||
std::vector< double > & | param_coords | ||
) |
Definition at line 769 of file FBEngine.cpp.
References _faces, _my_geomTopoTool, _my_gsets, _smooth, ErrorCode, moab::GeomTopoTool::get_root(), MB_SUCCESS, MBERRORR, moab::GeomTopoTool::obb_tree(), moab::OrientedBoxTreeTool::ray_intersect_sets(), moab::SmoothFace::ray_intersection_correct(), moab::Range::size(), and moab::tolerance.
ErrorCode moab::FBEngine::getRootSet | ( | EntityHandle * | root_set | ) |
Definition at line 436 of file FBEngine.cpp.
References _my_geomTopoTool, moab::GeomTopoTool::get_root_model_set(), and MB_SUCCESS.
ErrorCode moab::FBEngine::getVtxCoord | ( | EntityHandle | this_gent, |
double * | x0, | ||
double * | y0, | ||
double * | z0 | ||
) |
Definition at line 663 of file FBEngine.cpp.
References entities, ErrorCode, getEntType(), MB_SUCCESS, MBERRORR, MBI, and MBVERTEX.
Referenced by getEntBoundBox(), and getEntClosestPt().
ErrorCode moab::FBEngine::gsubtract | ( | EntityHandle | entity_set_1, |
EntityHandle | entity_set_2, | ||
EntityHandle | result_entity_set | ||
) |
Definition at line 693 of file FBEngine.cpp.
References ErrorCode, MBENTITYSET, MBERRORR, MBI, and moab::subtract().
ErrorCode moab::FBEngine::Init | ( | ) |
Definition at line 237 of file FBEngine.cpp.
References _initialized, _my_geomTopoTool, _my_gsets, _smooth, moab::GeomTopoTool::construct_obb_trees(), ErrorCode, moab::GeomTopoTool::find_geomsets(), initializeSmoothing(), MB_SUCCESS, and split_quads().
|
private |
Definition at line 263 of file FBEngine.cpp.
References _edges, _faces, _my_geomTopoTool, _my_gsets, _smthCurve, _smthFace, moab::SmoothCurve::compute_control_points_on_boundary_edges(), moab::SmoothFace::compute_control_points_on_edges(), moab::SmoothFace::compute_internal_control_points_on_facets(), moab::SmoothCurve::compute_tangents_for_each_edge(), moab::SmoothFace::compute_tangents_for_each_edge(), moab::Debug_surf_eval, moab::Range::end(), ErrorCode, GEOM_DIMENSION_TAG_NAME, moab::SmoothFace::init_gradient(), MB_SUCCESS, MB_TAG_BIT, MB_TAG_CREAT, MB_TAG_DENSE, MB_TAG_EXCL, MB_TYPE_BIT, MB_TYPE_DOUBLE, MB_TYPE_INTEGER, MBERRORR, MBI, and moab::Range::size().
Referenced by Init().
ErrorCode moab::FBEngine::isEntAdj | ( | EntityHandle | entity1, |
EntityHandle | entity2, | ||
bool & | adjacent_out | ||
) |
Definition at line 1184 of file FBEngine.cpp.
References moab::Range::end(), ErrorCode, moab::Range::find(), getEntType(), MB_SUCCESS, and MBI.
ErrorCode moab::FBEngine::measure | ( | const EntityHandle * | moab_entities, |
int | entities_size, | ||
double * | measures | ||
) |
Definition at line 998 of file FBEngine.cpp.
References entities, ErrorCode, getEntType(), moab::CartVect::length(), MB_SUCCESS, MBEDGE, MBI, and MBTRI.
|
inline |
|
private |
Definition at line 1967 of file FBEngine.cpp.
References _mbImpl, moab::Interface::get_connectivity(), moab::Interface::get_coords(), and moab::Interface::id_from_handle().
Referenced by BreakTriangle2(), divide_triangle(), and split_internal_edge().
|
private |
Definition at line 2876 of file FBEngine.cpp.
References _mbImpl, _my_geomTopoTool, moab::Interface::add_parent_child(), children, moab::GeomTopoTool::dimension(), moab::Range::empty(), ErrorCode, moab::Interface::get_adjacencies(), moab::Interface::get_child_meshsets(), moab::Interface::get_entities_by_dimension(), moab::Interface::get_entities_by_handle(), moab::intersect(), MB_SUCCESS, MBERRORR, moab::Interface::remove_parent_child(), moab::GeomTopoTool::set_sense(), and moab::Interface::side_number().
Referenced by split_surface().
|
private |
Definition at line 1680 of file FBEngine.cpp.
References _mbImpl, _newTriangles, _piercedTriangles, moab::Interface::add_entities(), moab::Range::begin(), moab::Range::clear(), moab::Interface::create_meshset(), moab::debug_splits, moab::Range::end(), ErrorCode, moab::Range::find(), moab::GeomUtil::first(), moab::Interface::get_adjacencies(), moab::Interface::get_entities_by_dimension(), moab::Interface::get_entities_by_type(), getAdjacentEntities(), moab::Interface::id_from_handle(), MB_SUCCESS, MB_TAG_CREAT, MB_TAG_DENSE, MB_TYPE_INTEGER, MBEDGE, MBERRORR, MBI, MBTRI, MESHSET_SET, moab::Interface::side_number(), moab::Range::size(), moab::subtract(), moab::Interface::tag_delete(), moab::Interface::tag_get_data(), moab::Interface::tag_set_data(), moab::Interface::UNION, moab::unite(), and moab::Interface::write_file().
Referenced by split_surface().
|
private |
Definition at line 3602 of file FBEngine.cpp.
References _mbImpl, _my_geomTopoTool, ErrorCode, moab::GeomTopoTool::find_geomsets(), MB_SUCCESS, MB_TYPE_INTEGER, MBERRORR, NEUMANN_SET_TAG_NAME, size, moab::Interface::tag_get_handle(), and moab::Interface::tag_set_data().
Referenced by create_volume_with_direction().
|
private |
Definition at line 2944 of file FBEngine.cpp.
References _mbImpl, ErrorCode, MB_SUCCESS, MB_TYPE_INTEGER, MBERRORR, NEUMANN_SET_TAG_NAME, moab::Interface::tag_get_data(), moab::Interface::tag_get_handle(), and moab::Interface::tag_set_data().
Referenced by split_surface().
|
inline |
ErrorCode moab::FBEngine::setArrData | ( | const EntityHandle * | entity_handles, |
int | entity_handles_size, | ||
Tag | tag_handle, | ||
const void * | tag_values | ||
) |
|
private |
Definition at line 1626 of file FBEngine.cpp.
References _faces, _mbImpl, moab::Range::begin(), moab::Range::end(), ErrorCode, moab::Interface::get_connectivity(), moab::Interface::get_coords(), moab::Interface::get_entities_by_dimension(), moab::Interface::get_entities_by_type(), MB_SUCCESS, MBERRORR, MBTRI, moab::SmoothFace::move_to_surface(), moab::Interface::set_coords(), moab::Range::size(), and moab::subtract().
Referenced by split_surface().
ErrorCode moab::FBEngine::split_bedge_at_new_mesh_node | ( | EntityHandle | b_edge, |
EntityHandle | atNode, | ||
EntityHandle | brokenEdge, | ||
EntityHandle & | new_edge | ||
) |
Definition at line 2565 of file FBEngine.cpp.
References _mbImpl, _my_geomTopoTool, moab::Interface::add_entities(), moab::GeomTopoTool::add_geo_set(), moab::Interface::add_parent_child(), moab::Range::begin(), moab::Interface::create_meshset(), moab::debug_splits, dim, moab::GeomTopoTool::dimension(), moab::Range::end(), ErrorCode, find_vertex_set_for_node(), moab::Interface::get_adjacencies(), moab::Interface::get_connectivity(), moab::Interface::get_entities_by_type(), moab::GeomTopoTool::get_sense(), getAdjacentEntities(), moab::GeomTopoTool::global_id(), moab::Interface::id_from_handle(), MB_SUCCESS, MBEDGE, MBERRORR, MBI, MBVERTEX, MESHSET_SET, moab::Interface::remove_entities(), moab::Interface::remove_parent_child(), moab::Interface::set_connectivity(), moab::GeomTopoTool::set_sense(), and moab::Range::size().
Referenced by split_boundary().
|
private |
Definition at line 2796 of file FBEngine.cpp.
References _brokenEdges, _mbImpl, moab::Range::begin(), moab::debug_splits, moab::Range::end(), ErrorCode, moab::Range::find(), moab::Interface::get_connectivity(), moab::Interface::get_entities_by_dimension(), getAdjacentEntities(), moab::Interface::id_from_handle(), MBERRORR, split_bedge_at_new_mesh_node(), and split_edge_at_mesh_node().
Referenced by split_surface().
ErrorCode moab::FBEngine::split_edge_at_mesh_node | ( | EntityHandle | edge, |
EntityHandle | node, | ||
EntityHandle & | new_edge | ||
) |
Definition at line 2373 of file FBEngine.cpp.
References _mbImpl, _my_geomTopoTool, moab::Interface::add_entities(), moab::GeomTopoTool::add_geo_set(), moab::Interface::add_parent_child(), moab::Range::begin(), moab::Interface::create_meshset(), moab::debug_splits, dim, moab::GeomTopoTool::dimension(), moab::Range::end(), ErrorCode, find_vertex_set_for_node(), moab::Interface::get_entities_by_type(), moab::GeomTopoTool::get_sense(), getAdjacentEntities(), moab::GeomTopoTool::global_id(), moab::Interface::id_from_handle(), MB_SUCCESS, MBEDGE, MBERRORR, MBI, MBVERTEX, MESHSET_SET, moab::Interface::remove_entities(), moab::Interface::remove_parent_child(), moab::GeomTopoTool::set_sense(), and moab::Range::size().
Referenced by split_boundary(), and split_edge_at_point().
ErrorCode moab::FBEngine::split_edge_at_point | ( | EntityHandle | edge, |
CartVect & | point, | ||
EntityHandle & | new_edge | ||
) |
Definition at line 2332 of file FBEngine.cpp.
References _edges, _mbImpl, _my_geomTopoTool, _smooth, moab::debug_splits, dim, moab::GeomTopoTool::dimension(), moab::Interface::id_from_handle(), split_edge_at_mesh_node(), and moab::SmoothCurve::u_from_position().
|
private |
Definition at line 3089 of file FBEngine.cpp.
References _mbImpl, _newTriangles, _piercedTriangles, moab::Range::begin(), moab::Interface::create_element(), moab::debug_splits, moab::Range::end(), ErrorCode, moab::Interface::get_adjacencies(), moab::Interface::get_connectivity(), moab::Range::insert(), moab::Interface::list_entity(), MB_SUCCESS, MBERRORR, MBTRI, print_debug_triangle(), moab::Interface::side_number(), moab::Range::size(), and moab::subtract().
Referenced by split_surface_with_direction().
|
private |
Definition at line 2973 of file FBEngine.cpp.
References _mbImpl, _my_geomTopoTool, _my_gsets, _t_created, moab::Interface::add_entities(), moab::Range::begin(), moab::Interface::create_element(), moab::GeomTopoTool::duplicate_model(), moab::Range::end(), ErrorCode, moab::GeomTopoTool::find_geomsets(), moab::Interface::get_connectivity(), moab::Interface::get_coords(), moab::Interface::get_entities_by_type(), moab::Interface::get_number_entities_by_type(), length_squared(), MB_SUCCESS, MBERRORR, MBQUAD, MBTRI, and moab::Interface::remove_entities().
Referenced by Init().
ErrorCode moab::FBEngine::split_surface | ( | EntityHandle | face, |
std::vector< EntityHandle > & | chainedEdges, | ||
std::vector< EntityHandle > & | splittingNodes, | ||
EntityHandle & | newFace | ||
) |
this method splits along the polyline defined by points and entities the polyline will be defined with // the entities are now only nodes and edges, no triangles!!! the first and last ones are also nodes for sure
Definition at line 1513 of file FBEngine.cpp.
References _mbImpl, _my_geomTopoTool, _piercedEdges, _piercedTriangles, _smooth, moab::Interface::add_entities(), moab::GeomTopoTool::add_geo_set(), moab::Interface::add_parent_child(), moab::Range::clear(), moab::Interface::create_meshset(), moab::debug_splits, moab::Interface::delete_entities(), ErrorCode, moab::GeomUtil::first(), moab::Interface::get_entities_by_type(), MB_SUCCESS, MBERRORR, MBTRI, MESHSET_SET, redistribute_boundary_edges_to_faces(), moab::Interface::remove_entities(), separate(), set_neumann_tags(), moab::GeomTopoTool::set_sense(), smooth_new_intx_points(), split_boundary(), and moab::Interface::write_file().
Referenced by split_surface_with_direction().
ErrorCode moab::FBEngine::split_surface_with_direction | ( | EntityHandle | face, |
std::vector< double > & | xyz, | ||
double * | direction, | ||
int | closed, | ||
double | min_dot, | ||
EntityHandle & | oNewFace | ||
) |
the segment is the first or last segment in the polyline
Definition at line 1212 of file FBEngine.cpp.
References _brokenEdges, _mbImpl, _my_geomTopoTool, _piercedEdges, _piercedTriangles, moab::area_coordinates(), moab::Range::begin(), boundary_mesh_edges_on_face(), boundary_nodes_on_face(), BreakTriangle2(), chain_edges(), compute_intersection_points(), create_new_gedge(), moab::Interface::create_vertex(), moab::debug_splits, divide_triangle(), moab::Range::end(), entities, ErrorCode, moab::Interface::get_connectivity(), moab::Interface::get_coords(), moab::GeomTopoTool::get_root(), moab::Interface::id_from_handle(), moab::Range::insert(), moab::intersect(), moab::intersect_segment_and_plane_slice(), MB_SUCCESS, MBEDGE, MBERRORR, MBVERTEX, moab::CartVect::normalize(), moab::GeomTopoTool::obb_tree(), moab::OrientedBoxTreeTool::ray_intersect_sets(), moab::Range::size(), split_internal_edge(), split_surface(), moab::tolerance, and moab::Interface::type_from_handle().
ErrorCode moab::FBEngine::weave_lateral_face_from_edges | ( | EntityHandle | bEdge, |
EntityHandle | tEdge, | ||
double * | direction, | ||
EntityHandle & | newLatFace | ||
) |
Definition at line 3283 of file FBEngine.cpp.
References _mbImpl, _my_geomTopoTool, moab::Interface::add_entities(), moab::GeomTopoTool::add_geo_set(), moab::Interface::add_parent_child(), moab::Interface::contains_entities(), moab::Interface::create_element(), moab::Interface::create_meshset(), moab::Range::end(), ErrorCode, moab::Range::find(), moab::Interface::get_child_meshsets(), moab::Interface::get_coords(), get_nodes_from_edge(), moab::Interface::get_parent_meshsets(), getEgVtxSense(), moab::CartVect::length_squared(), MB_SUCCESS, MBEDGE, MBERRORR, MBTRI, MESHSET_SET, moab::CartVect::normalize(), and moab::GeomTopoTool::set_sense().
Referenced by create_volume_with_direction().
|
private |
Definition at line 315 of file FBEngine.hpp.
Referenced by split_boundary(), and split_surface_with_direction().
|
private |
Definition at line 308 of file FBEngine.hpp.
Referenced by clean(), getEntClosestPt(), getEntTgntU(), getEntURange(), getEntUtoXYZ(), initializeSmoothing(), and split_edge_at_point().
|
private |
Definition at line 307 of file FBEngine.hpp.
Referenced by clean(), getEntClosestPt(), getEntNrmlXYZ(), getPntRayIntsct(), initializeSmoothing(), and smooth_new_intx_points().
|
private |
Definition at line 298 of file FBEngine.hpp.
Referenced by Init().
|
private |
Definition at line 288 of file FBEngine.hpp.
Referenced by boundary_mesh_edges_on_face(), boundary_nodes_on_face(), BreakTriangle2(), chain_able_edge(), chain_two_edges(), compute_intersection_points(), create_new_gedge(), create_volume_with_direction(), delete_smooth_tags(), divide_triangle(), FBEngine(), find_vertex_set_for_node(), get_nodes_from_edge(), get_vert_edges(), getNumOfType(), moab_instance(), print_debug_triangle(), redistribute_boundary_edges_to_faces(), separate(), set_default_neumann_tags(), set_neumann_tags(), smooth_new_intx_points(), split_bedge_at_new_mesh_node(), split_boundary(), split_edge_at_mesh_node(), split_edge_at_point(), split_internal_edge(), split_quads(), split_surface(), split_surface_with_direction(), and weave_lateral_face_from_edges().
|
private |
Definition at line 295 of file FBEngine.hpp.
Referenced by chain_edges(), clean(), create_new_gedge(), create_volume_with_direction(), FBEngine(), get_gtt(), getAdjacentEntities(), getEgFcSense(), getEntBoundBox(), getEntClosestPt(), getEntities(), getEntNrmlXYZ(), getEntType(), getNumOfType(), getPntRayIntsct(), getRootSet(), Init(), initializeSmoothing(), redistribute_boundary_edges_to_faces(), set_default_neumann_tags(), split_bedge_at_new_mesh_node(), split_edge_at_mesh_node(), split_edge_at_point(), split_quads(), split_surface(), split_surface_with_direction(), and weave_lateral_face_from_edges().
|
private |
Definition at line 302 of file FBEngine.hpp.
Referenced by clean(), delete_smooth_tags(), getPntRayIntsct(), Init(), initializeSmoothing(), and split_quads().
|
private |
Definition at line 313 of file FBEngine.hpp.
Referenced by BreakTriangle2(), divide_triangle(), separate(), and split_internal_edge().
|
private |
Definition at line 314 of file FBEngine.hpp.
Referenced by create_new_gedge(), split_surface(), and split_surface_with_direction().
|
private |
Definition at line 312 of file FBEngine.hpp.
Referenced by compute_intersection_points(), divide_triangle(), separate(), split_internal_edge(), split_surface(), and split_surface_with_direction().
|
private |
Definition at line 297 of file FBEngine.hpp.
Referenced by clean(), getEntClosestPt(), getEntNrmlXYZ(), getPntRayIntsct(), Init(), set_smooth(), split_edge_at_point(), split_surface(), and ~FBEngine().
|
private |
Definition at line 310 of file FBEngine.hpp.
Referenced by clean(), and initializeSmoothing().
|
private |
Definition at line 309 of file FBEngine.hpp.
Referenced by clean(), delete_smooth_tags(), and initializeSmoothing().
|
private |
Definition at line 296 of file FBEngine.hpp.
Referenced by clean(), FBEngine(), and split_quads().