#include <LinkedMeshManager.hxx>


Public Member Functions | |
| virtual void | AddNumSingleTris (int _NumSingleTris) |
| Called by the faceter, informing the manager about the number of strips with single triangles added for each mesh encountered. | |
| virtual void | AddNumStrips (int _NumStrips) |
| Called by the faceter, informing the manager about the number of strips added for each mesh encountered. | |
| virtual void | announce_coordinate_polygon_node (int ipoly, int i, const SPApar_pos &uv, const SPAposition &iX, const SPAunit_vector &N) |
| Announces one node on a polygon. | |
| virtual void | announce_counts (int npoly, int nnode, int npolynode) |
| Announces the number of polygons, nodes, and node references by polygons. | |
| virtual void | announce_edge_indices (ENTITY *coedge, void *idV0, void *idE0, void *idEN, void *idV1) |
| Announces an edge with its coedge and node indices. | |
| virtual void * | announce_global_node (int inode, FACE *face, const SPAposition &iX, const SPApar_pos &uv) |
Announces a node on the interior of a model FACE with its surface parameters. | |
| virtual void * | announce_global_node (int inode, EDGE *ed, const SPAposition &iX, double tpar) |
Announces a node on the interior of a model EDGE with its curve parameter. | |
| virtual void * | announce_global_node (int inode, VERTEX *ver, const SPAposition &iX) |
Announces a node on a model VERTEX. | |
| virtual void * | announce_indexed_node (int inode, const SPApar_pos &uv, const SPAposition &iX, const SPAunit_vector &N) |
| Announces an indexed node with its surface parameters, position, and normal. | |
| virtual void * | announce_indexed_polyedge (int ipoly, int i, void *mate) |
| Announces an indexed polyedge whose "mate" has been previously announced. | |
| virtual void * | announce_indexed_polyedge (int ipoly, int i) |
| Announces an indexed polyedge whose "mate" has not previously been announced. | |
| virtual void * | announce_indexed_polyedge (int ipoly, int i, ENTITY *ce) |
| Announces an indexed polyedge that lies on a model edge. | |
| virtual void | announce_indexed_polynode (ENTITY *E, int ipoly, int i, void *id, const double &tpar, const SPApar_pos &uv, const SPAposition &iX, const SPAunit_vector &N) |
| Announces an indexed polynode and stores the data into the polygon. | |
| virtual void | announce_indexed_polynode (int ipoly, int i, void *id) |
| Announces an indexed polynode and stores the data into the polygon. | |
| virtual void | announce_indexed_polynode (ENTITY *E, int ipoly, int i, void *id) |
| Announces an indexed polynode and stores the data into the polygon. | |
| virtual void | announce_polygon_model_face (ENTITY *ent) |
Announces the FACE pointer for oncoming polygons. | |
| virtual void | begin_global_mesh_output (ENTITY *ent) |
| Announces the beginning of the output of a global mesh. | |
| virtual void | begin_mesh_output (ENTITY *entity, ENTITY *app_ref, ENTITY *format) |
| Announces the beginning of the output of a mesh. | |
| virtual void | check_applicable_format_entity (ENTITY *entity, ENTITY *&format) |
| Before starting facet construction with refinements, the faceter offers the mesh manager the opportunity to revise the vertex template. | |
| virtual void | check_applicable_refinement (ENTITY *entity, AF_SURF_MODE mode, REFINEMENT *&R) |
| Before starting facet construction with refinements, the faceter offers the mesh manager the opportunity to revise the refinement. | |
| virtual AF_EDGE_DIRECTIVE | check_edge_refinement (EDGE *E, double &dmax, double &hmax, double &dNmax, int nuse, int nf) |
| Determine if the faceter should recompute the facets for an edge. | |
| virtual void | end_coordinate_polygon (int ipoly) |
| Announces the completion of the output of a polygon. | |
| virtual void | end_global_mesh_output (ENTITY *ent) |
| Announces the completion of the output of a global mesh. | |
| virtual void | end_indexed_polygon (int ipoly) |
| Announces the completion of the output of a polygon. | |
| virtual void | end_mesh_output (ENTITY *entity, ENTITY *app_ref, ENTITY *format) |
| The mesh is complete and updates polygon counts and fixes up parameters. | |
| virtual MESH_APP_ID | get_app_id () |
| Returns the application identification number of the mesh. | |
| virtual MESH_USER_ID | get_user_id () |
| Returns the user identification number of the mesh. | |
| virtual int | GetNumSingleTris () const |
| Returns the number of strips containing only one triangle in all meshes. | |
| virtual int | GetNumStrips () const |
| Returns the total number of strips in all meshes (includes single triangle strips). | |
| LINKED_MESH_MANAGER () | |
| C++ constructor, creates an LINKED_MESH_MANAGER. | |
| LINKED_MESH * | mesh () const |
| Returns the current mesh be constructed. | |
| virtual logical | need_approx_counts () |
| Provides an approximate count of polygons and nodes and number of references to nodes. | |
| virtual logical | need_coedge_pointers_on_polyedges () |
| Used with the indexed protocol to flag coedge pointers are needed for nodes lying on edges. | |
| virtual logical | need_coordinate_polygons () |
If this function returns TRUE, the data will be announced in the coordinate protocol. | |
| logical | need_counts () |
| A callback that tells the faceter we need a count of polygons, polynodes, and nodes. | |
| virtual logical | need_degenerate_triangles () const |
| Some applications need degenerate triangles to be topologically correct. | |
| virtual logical | need_duplicate_indexed_nodes_at_singularities () |
| This method is called if the user wants duplicate nodes where singularities have different normals for different facets, such as at the apex of a cone. | |
| virtual logical | need_duplicate_indexed_nodes_on_surface_seams () |
| This method is called if the user wants duplicate nodes where the surface uv's differ at the same position on the surface. | |
| virtual logical | need_edge_grading (double &mu) |
If this function returns TRUE, there is a second pass through the model to further subdivide edges so that consecutive faceted edge lengths have controlled size relationships. | |
| virtual logical | need_edge_grading_on_face (FACE *F, REFINEMENT *R, double &mu) |
If this function returns TRUE, edge grading is applied one face at a time during the edge grading pass. | |
| virtual logical | need_edge_indices () |
If this function returns TRUE, then the model edges will be announced with the node indices. | |
| virtual logical | need_global_indexed_polygons () |
If this function returns TRUE, the facets will be output with the global-indexed protocol. | |
| virtual logical | need_indexed_polyedges () |
If this function returns TRUE, then polyedges will be announced after polynodes. | |
| virtual logical | need_indexed_polygons () |
If this function returns TRUE, the indexed protocol is turned on. | |
| virtual logical | need_indexed_polynode_with_data () |
| Used with the indexed protocol to flag requested data. | |
| virtual logical | need_precount_of_global_indexed_polygons () |
If this function returns TRUE, the number of polygons, nodes, and node references by polygons are announced before other output. | |
| virtual void * | null_node_id () |
| Returns the node id value that is guaranteed to be invalid. | |
| int | NumPolygon () const |
| Returns the total number of polygons in all meshes. | |
| int | NumPolyNode () const |
| Returns the total number of polynodes in all meshes. | |
| int | NumVertex () const |
| Returns the total number of polygons in all meshes. | |
| virtual MESH_MANAGER_SEARCH_ORDER | query_search_order () |
| Returns the order of how the internal mesh of the faceter should be searched to provide output. | |
| virtual void | reannounce_counts (int npoly, int nnode, int npolynode) |
| This is called to reannounce the exact number of nodes and polygons that were already announced. | |
| virtual void | save_global_mesh_output (ENTITY *ent) |
| Signals the save of a global-indexed mesh. | |
| virtual void | save_mesh_output (ENTITY *entity, ENTITY *app_ref, ENTITY *format) |
| This function is called to announce the end of mesh output for a face. | |
| virtual void | set_app_id (MESH_APP_ID appid) |
| Specifies the application identification number of the mesh. | |
| virtual void | set_search_order (MESH_MANAGER_SEARCH_ORDER mmso) |
| Sets the order of how the internal mesh of the faceter should be searched to provide output. | |
| virtual void | set_user_id (MESH_USER_ID userid) |
| Specifies the user identification number of the mesh. | |
| void | SetTransform (const SPAtransf *trans) |
| Sets the transformation to be applied to nodes. | |
| virtual void | start_coordinate_polygon (int ipoly, int nnode) |
| Announces the beginning of the output of a new polygon. | |
| virtual void | start_indexed_polygon (int ipoly, int npolynode, int ishare=-2) |
| Announces the start of a polygon and adds it to the mesh. | |
| virtual void | start_shareable_coordinate_polygon (int ipoly, int nnode, int i) |
| Announces the beginning of the output of a new shareable polygon. | |
| virtual void | start_shareable_indexed_polygon (int ipoly, int npolynode, int ishare) |
| Announces the beginning of the output of a new shareable polygon. | |
| virtual | ~LINKED_MESH_MANAGER () |
| C++ destructor, deletes an LINKED_MESH_MANAGER. | |
Protected Member Functions | |
| void | sequence_error (char *s) |
| Function to print an error message. | |
Protected Attributes | |
| int | m_currFaceNodeCount |
| Number of nodes in current face's meshes. | |
| int | m_currFacePolygonCount |
| Number of polygons in current face's meshes. | |
| int | m_currFacePolyNodeCount |
| Number of polygon nodes in current face's meshes. | |
| LINKED_MESH * | m_pMesh |
| Pointer to mesh. | |
| const SPAtransf * | m_pTransform |
| Transformation to apply to the nodes of the mesh. | |
| int | m_totalNodeCount |
| Number of nodes in all meshes. | |
| int | m_totalPolygonCount |
| Number of polygons in all meshes. | |
| int | m_totalPolyNodeCount |
| Number of polygon nodes in all meshes. | |
| MESH_MANAGER_SEARCH_ORDER | mmso |
MESH_MANAGER_SEARCH_ORDER dictates order of polygons (for strips, fans, etc) | |
| int | NumSingleTris |
| Number of Single Triangles. | |
| int | NumStrips |
| Number of tri strips. | |
Role: The LINKED_MESH_MANAGER constructs a LINKED_MESH from facet data.
| LINKED_MESH_MANAGER::LINKED_MESH_MANAGER | ( | ) |
C++ constructor, creates an LINKED_MESH_MANAGER.
| virtual LINKED_MESH_MANAGER::~LINKED_MESH_MANAGER | ( | ) | [virtual] |
C++ destructor, deletes an LINKED_MESH_MANAGER.
| virtual void LINKED_MESH_MANAGER::AddNumSingleTris | ( | int | _NumSingleTris | ) | [inline, virtual] |
Called by the faceter, informing the manager about the number of strips with single triangles added for each mesh encountered.
Reimplemented from MESH_MANAGER.
| virtual void LINKED_MESH_MANAGER::AddNumStrips | ( | int | _NumStrips | ) | [inline, virtual] |
Called by the faceter, informing the manager about the number of strips added for each mesh encountered.
Reimplemented from MESH_MANAGER.
| virtual void MESH_MANAGER::announce_coordinate_polygon_node | ( | int | ipoly, | |
| int | i, | |||
| const SPApar_pos & | uv, | |||
| const SPAposition & | iX, | |||
| const SPAunit_vector & | N | |||
| ) | [virtual, inherited] |
Announces one node on a polygon.
Role: Used with the coordinate protocol.
| ipoly | 0-based polygon index. | |
| i | 0-based node index within this polygon. | |
| uv | surface parameter. | |
| iX | point. | |
| N | normal. |
Reimplemented in POLYGON_POINT_MESH_MANAGER.
| virtual void MESH_MANAGER::announce_counts | ( | int | npoly, | |
| int | nnode, | |||
| int | npolynode | |||
| ) | [virtual, inherited] |
Announces the number of polygons, nodes, and node references by polygons.
Role: Used with the coordinate, indexed and global-indexed protocols.
| npoly | number of polygons. | |
| nnode | number of nodes. | |
| npolynode | number of node references. |
Reimplemented in GLOBAL_MESH_MANAGER, SIMPLE_INDEXED_MESH_MANAGER, INDEXED_MESH_MANAGER, PE_MESH_MANAGER, and STL_MESH_MANAGER.
| virtual void MESH_MANAGER::announce_edge_indices | ( | ENTITY * | coedge, | |
| void * | idV0, | |||
| void * | idE0, | |||
| void * | idEN, | |||
| void * | idV1 | |||
| ) | [virtual, inherited] |
Announces an edge with its coedge and node indices.
Role: The starting and ending vertex nodes define the end points of the edge. The first and last interior nodes define a sequential range of nodes in between.
This method is called if need_edge_indices returns TRUE. Used with the indexed and global-indexed protocols.
| coedge | coedge of current face. | |
| idV0 | starting vertex node. | |
| idE0 | first interior node. | |
| idEN | last interior node. | |
| idV1 | ending vertex node. |
| virtual void* MESH_MANAGER::announce_global_node | ( | int | inode, | |
| FACE * | face, | |||
| const SPAposition & | iX, | |||
| const SPApar_pos & | uv | |||
| ) | [virtual, inherited] |
Announces a node on the interior of a model FACE with its surface parameters.
Role: Used with the global-indexed protocol.
A note on overloading this function in classes derived from MESH_MANAGER: The value returned by this function is critical. The returned value must be a unique identifier for this node. It will most likely be the memory address or index of this node in the application's data structure. This unique identifier will be passed as an input argument to announce_indexed_polynode.
| inode | 0-based node index. | |
| face | model face. | |
| iX | node coordinates. | |
| uv | surface parameters. |
Reimplemented in GLOBAL_MESH_MANAGER, PE_MESH_MANAGER, and STL_MESH_MANAGER.
| virtual void* MESH_MANAGER::announce_global_node | ( | int | inode, | |
| EDGE * | ed, | |||
| const SPAposition & | iX, | |||
| double | tpar | |||
| ) | [virtual, inherited] |
Announces a node on the interior of a model EDGE with its curve parameter.
Role: Used with the global-indexed protocol.
A note on overloading this function in classes derived from MESH_MANAGER: The value returned by this function is critical. The returned value must be a unique identifier for this node. It will most likely be the memory address or index of this node in the application's data structure. This unique identifier will be passed as an input argument to announce_indexed_polynode.
| inode | 0-based node index. | |
| ed | model edge. | |
| iX | node coordinates. | |
| tpar | curve parameter value. |
Reimplemented in GLOBAL_MESH_MANAGER, PE_MESH_MANAGER, and STL_MESH_MANAGER.
| virtual void* MESH_MANAGER::announce_global_node | ( | int | inode, | |
| VERTEX * | ver, | |||
| const SPAposition & | iX | |||
| ) | [virtual, inherited] |
Announces a node on a model VERTEX.
Role: Used with the global-indexed protocol.
A note on overloading this function in classes derived from MESH_MANAGER: The value returned by this function is critical. The returned value must be a unique identifier for this node. It will most likely be the memory address or index of this node in the application's data structure. This unique identifier will be passed as an input argument to announce_indexed_polynode.
| inode | 0-based node index. | |
| ver | model vertex. | |
| iX | node coordinates. |
Reimplemented in GLOBAL_MESH_MANAGER, PE_MESH_MANAGER, and STL_MESH_MANAGER.
| virtual void* LINKED_MESH_MANAGER::announce_indexed_node | ( | int | inode, | |
| const SPApar_pos & | uv, | |||
| const SPAposition & | iX, | |||
| const SPAunit_vector & | N | |||
| ) | [virtual] |
Announces an indexed node with its surface parameters, position, and normal.
| inode | 0-based node index. | |
| uv | parametric coordinates. | |
| iX | cartesian coordinates. | |
| N | surface normal. |
Reimplemented from MESH_MANAGER.
| virtual void* MESH_MANAGER::announce_indexed_polyedge | ( | int | ipoly, | |
| int | i, | |||
| void * | mate | |||
| ) | [virtual, inherited] |
Announces an indexed polyedge whose "mate" has been previously announced.
Role: If the "mate" of a polyedge has previously been announced, then this signature will be called. This signature allows an application to connect mates in its data structure. (Mates are coincident polyedges of adjacent facets.)
This method is called if need_indexed_polyedges returns TRUE. Used with the indexed protocol.
A note on overloading this function in classes derived from MESH_MANAGER: Because the mate of this polyedge has already been processed, the value returned by this signature is not critical; however, for consistency with other signatures of this method it typically returns a unique identifier for this polyedge. If the mate information is to be used, this signature must be used to connect or associate the two polyedges. The mate value will be the one returned by the mate's announce_indexed_polyedge call. It will most likely be the memory address or index of the mate in the application's data structure.
| ipoly | 0-based polygon index. | |
| i | 0-based node index within this polygon. | |
| mate | mate id is the value returned by the mate's announce_indexed_polyedge call. |
| virtual void* MESH_MANAGER::announce_indexed_polyedge | ( | int | ipoly, | |
| int | i | |||
| ) | [virtual, inherited] |
Announces an indexed polyedge whose "mate" has not previously been announced.
Role: This method is called if need_indexed_polyedges returns TRUE. Used with the indexed protocol.
A note on overloading this function in classes derived from MESH_MANAGER: Because this polyedge does have a mate, the value returned by this signature is critical. If the mate information is to be used, the returned value must be a unique identifier for this polyedge. It will most likely be the memory address or index of this polyedge in the application's data structure.
| ipoly | 0-based polygon index. | |
| i | 0-based node index within the polygon. |
| virtual void* MESH_MANAGER::announce_indexed_polyedge | ( | int | ipoly, | |
| int | i, | |||
| ENTITY * | ce | |||
| ) | [virtual, inherited] |
Announces an indexed polyedge that lies on a model edge.
Role: This signature announces that the polyedge immediately following this polynode lies along the indicated model coedge. (Therefore, it has no 'mate' polyedge.)
This method is called if need_indexed_polyedges returns TRUE. Used with the indexed protocol.
A note on overloading this function in classes derived from MESH_MANAGER: Because this polyedge does not have a mate, the value returned by this signature is not critical; however, for consistency with other signatures of this method it typically returns a unique identifier for this polyedge.
| ipoly | 0-based polygon index. | |
| i | 0-based node index within the polygon. | |
| ce | the coedge with which this polyedge coincides. |
| virtual void LINKED_MESH_MANAGER::announce_indexed_polynode | ( | ENTITY * | E, | |
| int | ipoly, | |||
| int | i, | |||
| void * | id, | |||
| const double & | tpar, | |||
| const SPApar_pos & | uv, | |||
| const SPAposition & | iX, | |||
| const SPAunit_vector & | N | |||
| ) | [inline, virtual] |
Announces an indexed polynode and stores the data into the polygon.
Role: This signature has a NULL implementation in the LINKED_MESH_MANAGER.
| E | coedge along the edge following the polynode. | |
| ipoly | 0-based polygon index. | |
| i | 0-based node index within this polygon. | |
| id | node identifier as previously received from announce_indexed_node. | |
| tpar | if the node lies on the interior of a model edge, then returns the curve parameter value. | |
| uv | parametric coordinates. | |
| iX | cartesian coordinates. | |
| N | surface normal. |
Reimplemented from MESH_MANAGER.
| virtual void LINKED_MESH_MANAGER::announce_indexed_polynode | ( | int | ipoly, | |
| int | i, | |||
| void * | id | |||
| ) | [virtual] |
Announces an indexed polynode and stores the data into the polygon.
| ipoly | 0-based polygon index. | |
| i | 0-based node index within this polygon. | |
| id | node identifier as previously received from announce_indexed_node. |
Reimplemented from MESH_MANAGER.
| virtual void LINKED_MESH_MANAGER::announce_indexed_polynode | ( | ENTITY * | E, | |
| int | ipoly, | |||
| int | i, | |||
| void * | id | |||
| ) | [inline, virtual] |
Announces an indexed polynode and stores the data into the polygon.
Role: This signature has a NULL implementation in the LINKED_MESH_MANAGER.
| E | coedge along the edge following the polynode. | |
| ipoly | 0-based polygon index. | |
| i | 0-based node index within this polygon. | |
| id | node identifier as previously received from announce_indexed_node. |
Reimplemented from MESH_MANAGER.
| virtual void MESH_MANAGER::announce_polygon_model_face | ( | ENTITY * | ent | ) | [virtual, inherited] |
Announces the FACE pointer for oncoming polygons.
Role: Used with all protocols.
| ent | model face pointer for the group of oncoming polygons. |
Reimplemented in PE_MESH_MANAGER.
| virtual void MESH_MANAGER::begin_global_mesh_output | ( | ENTITY * | ent | ) | [virtual, inherited] |
Announces the beginning of the output of a global mesh.
Role: The top level entity is the top level entity of the entire mesh, typically a BODY, but can be a LUMP, SHELL, or FACE. Used with the global-indexed protocol.
| ent | top level entity. |
Reimplemented in PE_MESH_MANAGER.
| virtual void LINKED_MESH_MANAGER::begin_mesh_output | ( | ENTITY * | entity, | |
| ENTITY * | app_ref, | |||
| ENTITY * | format | |||
| ) | [virtual] |
Announces the beginning of the output of a mesh.
Role: Cleans up old mesh if necessary.
| entity | faceted entity | |
| app_ref | applicable refinement | |
| format | output format entity |
Reimplemented from MESH_MANAGER.
| virtual void MESH_MANAGER::check_applicable_format_entity | ( | ENTITY * | entity, | |
| ENTITY *& | format | |||
| ) | [virtual, inherited] |
Before starting facet construction with refinements, the faceter offers the mesh manager the opportunity to revise the vertex template.
Role: While faceting a body, lump, or shell, check_applicable_format_entity is called at each member of the topological hierarchy, in top-down order.
The application can assign a different format to it. The output format entity can be a VERTEX_TEMPLATE for pre-1.7 compatibility.
| entity | entity with format. | |
| format | input/output format entity, a VERTEX_TEMPLATE. |
| virtual void MESH_MANAGER::check_applicable_refinement | ( | ENTITY * | entity, | |
| AF_SURF_MODE | mode, | |||
| REFINEMENT *& | R | |||
| ) | [virtual, inherited] |
Before starting facet construction with refinements, the faceter offers the mesh manager the opportunity to revise the refinement.
Role: While faceting a body, lump, or shell, check_applicable_refinement is called at each member of the topological hierarchy, in top-down order, and for each possible surface type at each non-face member.
The refinement passed in is what the faceter found for the given surface type. The application can assign a different refinement to it.
| entity | entity with refinement. | |
| mode | refinement surface type. | |
| R | input/output refinement. |
Reimplemented in STL_MESH_MANAGER.
| virtual AF_EDGE_DIRECTIVE MESH_MANAGER::check_edge_refinement | ( | EDGE * | E, | |
| double & | dmax, | |||
| double & | hmax, | |||
| double & | dNmax, | |||
| int | nuse, | |||
| int | nf | |||
| ) | [virtual, inherited] |
Determine if the faceter should recompute the facets for an edge.
Role: The parameters that control the faceting of an edge are provided. They have been determined to be the finest in the discretization controls of the incident faces. The default behavior of this function is not to change any value, and to request the faceting to be done if the number of incidents faces equals the total number of incident faces. If first number is smaller, it requests any existing faceting to be used.
| E | edge to check. | |
| dmax | chordal deviation. | |
| hmax | madimum chordal length. | |
| dNmax | maximal angle change between chords. | |
| nuse | number of incident faces being faceted. | |
| nf | total number of incident faces. |
| virtual void MESH_MANAGER::end_coordinate_polygon | ( | int | ipoly | ) | [virtual, inherited] |
Announces the completion of the output of a polygon.
Role: Used with the coordinate protocol.
| ipoly | 0-based polygon index. |
| virtual void MESH_MANAGER::end_global_mesh_output | ( | ENTITY * | ent | ) | [virtual, inherited] |
Announces the completion of the output of a global mesh.
Role: Used with the global-indexed protocol.
| ent | top level entity being faceted. |
Reimplemented in PE_MESH_MANAGER, and STL_MESH_MANAGER.
| virtual void MESH_MANAGER::end_indexed_polygon | ( | int | ipoly | ) | [virtual, inherited] |
Announces the completion of the output of a polygon.
Role: Used with the indexed and global-indexed protocols.
| ipoly | 0-based polygon index. |
Reimplemented in GLOBAL_MESH_MANAGER, PE_MESH_MANAGER, and STL_MESH_MANAGER.
| virtual void LINKED_MESH_MANAGER::end_mesh_output | ( | ENTITY * | entity, | |
| ENTITY * | app_ref, | |||
| ENTITY * | format | |||
| ) | [virtual] |
The mesh is complete and updates polygon counts and fixes up parameters.
| entity | faceted entity | |
| app_ref | applicable refinement | |
| format | output format entity |
Reimplemented from MESH_MANAGER.
| virtual MESH_APP_ID MESH_MANAGER::get_app_id | ( | ) | [inline, virtual, inherited] |
| virtual MESH_USER_ID MESH_MANAGER::get_user_id | ( | ) | [inline, virtual, inherited] |
| virtual int LINKED_MESH_MANAGER::GetNumSingleTris | ( | ) | const [inline, virtual] |
Returns the number of strips containing only one triangle in all meshes.
Reimplemented from MESH_MANAGER.
| virtual int LINKED_MESH_MANAGER::GetNumStrips | ( | ) | const [inline, virtual] |
Returns the total number of strips in all meshes (includes single triangle strips).
Reimplemented from MESH_MANAGER.
| LINKED_MESH* LINKED_MESH_MANAGER::mesh | ( | ) | const [inline] |
Returns the current mesh be constructed.
| virtual logical LINKED_MESH_MANAGER::need_approx_counts | ( | ) | [inline, virtual] |
Provides an approximate count of polygons and nodes and number of references to nodes.
Reimplemented from MESH_MANAGER.
| virtual logical MESH_MANAGER::need_coedge_pointers_on_polyedges | ( | ) | [virtual, inherited] |
Used with the indexed protocol to flag coedge pointers are needed for nodes lying on edges.
Role: If this function returns TRUE, each polygon node that lies on a model edge will be output together with the corresponding coedge. The default returns FALSE.
Reimplemented in PE_MESH_MANAGER.
| virtual logical MESH_MANAGER::need_coordinate_polygons | ( | ) | [virtual, inherited] |
If this function returns TRUE, the data will be announced in the coordinate protocol.
Role: The default returns FALSE. Used with the coordinate protocol to flag requested data.
Reimplemented in POLYGON_POINT_MESH_MANAGER.
| logical LINKED_MESH_MANAGER::need_counts | ( | ) | [inline, virtual] |
A callback that tells the faceter we need a count of polygons, polynodes, and nodes.
Role: If this function returns TRUE, the number of polygons, number of nodes, and number of polygon references of node are calculated and announced. If these are not needed, it should return FALSE.
Reimplemented from MESH_MANAGER.
| virtual logical MESH_MANAGER::need_degenerate_triangles | ( | ) | const [virtual, inherited] |
Some applications need degenerate triangles to be topologically correct.
Role: Some applications do not need degenerate triangles and want as few triangles as possible. Default is FALSE, returning as few triangles as possible.
| virtual logical LINKED_MESH_MANAGER::need_duplicate_indexed_nodes_at_singularities | ( | ) | [inline, virtual] |
This method is called if the user wants duplicate nodes where singularities have different normals for different facets, such as at the apex of a cone.
Reimplemented from MESH_MANAGER.
| virtual logical LINKED_MESH_MANAGER::need_duplicate_indexed_nodes_on_surface_seams | ( | ) | [inline, virtual] |
This method is called if the user wants duplicate nodes where the surface uv's differ at the same position on the surface.
Reimplemented from MESH_MANAGER.
| virtual logical MESH_MANAGER::need_edge_grading | ( | double & | mu | ) | [virtual, inherited] |
If this function returns TRUE, there is a second pass through the model to further subdivide edges so that consecutive faceted edge lengths have controlled size relationships.
Role: The default return value is TRUE and the default value for mu is 2.0, which may be changed by the application or further modified for each individual face when the face is passed to need_edge_grading_on_face.
| mu | relative size of faceted edge lengths. |
| virtual logical MESH_MANAGER::need_edge_grading_on_face | ( | FACE * | F, | |
| REFINEMENT * | R, | |||
| double & | mu | |||
| ) | [virtual, inherited] |
If this function returns TRUE, edge grading is applied one face at a time during the edge grading pass.
Role: On each pass, the faceter queries the mesh manager to determine the acceptable size ratio between the end chords of edges that share a common vertex on that face. Return FALSE to suppress grading on that face. The default implementation returns TRUE if and only if the face refinement has a grading, and it resets the aspect ratio mu to the grid_aspect_ratio setting of the refinement. If mu returned earlier by need_edge_grading is less than 1.5, it is reset to 1.5.
| F | face on which grading is to be done. | |
| R | refinement on the face. | |
| mu | aspect ratio returned by need_edge_grading. |
| virtual logical MESH_MANAGER::need_edge_indices | ( | ) | [virtual, inherited] |
If this function returns TRUE, then the model edges will be announced with the node indices.
Role: The default returns FALSE. Used with the indexed and global-indexed protocols to flag requested data.
| virtual logical MESH_MANAGER::need_global_indexed_polygons | ( | ) | [virtual, inherited] |
If this function returns TRUE, the facets will be output with the global-indexed protocol.
Role: Used with the global-indexed protocol to flag requested data. The default returns FALSE.
Reimplemented in GLOBAL_MESH_MANAGER, PE_MESH_MANAGER, and STL_MESH_MANAGER.
| virtual logical MESH_MANAGER::need_indexed_polyedges | ( | ) | [virtual, inherited] |
If this function returns TRUE, then polyedges will be announced after polynodes.
Role: Used with the indexed and global-indexed protocols. The default returns FALSE.
| virtual logical LINKED_MESH_MANAGER::need_indexed_polygons | ( | ) | [inline, virtual] |
If this function returns TRUE, the indexed protocol is turned on.
Role: The default returns FALSE. Used with the indexed protocol to flag requested data.
Reimplemented from MESH_MANAGER.
| virtual logical MESH_MANAGER::need_indexed_polynode_with_data | ( | ) | [virtual, inherited] |
Used with the indexed protocol to flag requested data.
Role: If this function returns TRUE, each polygon node will be output together with the corresponding coedge, coordinates and surface normal. The default returns FALSE.
Reimplemented in PE_MESH_MANAGER.
| virtual logical MESH_MANAGER::need_precount_of_global_indexed_polygons | ( | ) | [virtual, inherited] |
If this function returns TRUE, the number of polygons, nodes, and node references by polygons are announced before other output.
Role: Used with the global-indexed protocol to flag requested data. The default returns FALSE.
Reimplemented in GLOBAL_MESH_MANAGER, PE_MESH_MANAGER, and STL_MESH_MANAGER.
| virtual void* MESH_MANAGER::null_node_id | ( | ) | [virtual, inherited] |
Returns the node id value that is guaranteed to be invalid.
Role: Applications using indices will typically return -1. Applications using pointers will typically return 0. The default returns -1.
Reimplemented in GLOBAL_MESH_MANAGER, and STL_MESH_MANAGER.
| int LINKED_MESH_MANAGER::NumPolygon | ( | ) | const [inline] |
Returns the total number of polygons in all meshes.
| int LINKED_MESH_MANAGER::NumPolyNode | ( | ) | const [inline] |
Returns the total number of polynodes in all meshes.
Each vertex may be shared by n polygons, so there would be n polynodes for that vertex, one for each polygon.
| int LINKED_MESH_MANAGER::NumVertex | ( | ) | const [inline] |
Returns the total number of polygons in all meshes.
| virtual MESH_MANAGER_SEARCH_ORDER LINKED_MESH_MANAGER::query_search_order | ( | ) | [virtual] |
Returns the order of how the internal mesh of the faceter should be searched to provide output.
Role: The order specifies how successive polygons ought to share edges and can help the application to construct the desired data format. The default is to search triangle fans, triangle strips and quad strips.
Reimplemented from MESH_MANAGER.
| virtual void MESH_MANAGER::reannounce_counts | ( | int | npoly, | |
| int | nnode, | |||
| int | npolynode | |||
| ) | [virtual, inherited] |
This is called to reannounce the exact number of nodes and polygons that were already announced.
Role: This is useful if need_approx_counts returns TRUE.
| npoly | Number of polygons already announced. | |
| nnode | Number of nodes already announced. | |
| npolynode | Number of nodes when counted each time used by a polygon. |
Reimplemented in PE_MESH_MANAGER.
| virtual void MESH_MANAGER::save_global_mesh_output | ( | ENTITY * | ent | ) | [virtual, inherited] |
Signals the save of a global-indexed mesh.
| ent | top level entity being faceted. |
Reimplemented in PE_MESH_MANAGER.
| virtual void LINKED_MESH_MANAGER::save_mesh_output | ( | ENTITY * | entity, | |
| ENTITY * | app_ref, | |||
| ENTITY * | format | |||
| ) | [virtual] |
This function is called to announce the end of mesh output for a face.
| entity | faceted entity | |
| app_ref | applicable refinement | |
| format | output format entity |
Reimplemented from MESH_MANAGER.
| void LINKED_MESH_MANAGER::sequence_error | ( | char * | s | ) | [protected] |
Function to print an error message.
| virtual void MESH_MANAGER::set_app_id | ( | MESH_APP_ID | appid | ) | [inline, virtual, inherited] |
Specifies the application identification number of the mesh.
| appid | id to use. |
Reimplemented in PE_MESH_MANAGER.
| virtual void LINKED_MESH_MANAGER::set_search_order | ( | MESH_MANAGER_SEARCH_ORDER | mmso | ) | [virtual] |
Sets the order of how the internal mesh of the faceter should be searched to provide output.
Role: The order specifies how successive polygons ought to share edges and can help the application to construct the desired data format. The default is to search triangle fans, triangle strips and quad strips.
Reimplemented from MESH_MANAGER.
| virtual void MESH_MANAGER::set_user_id | ( | MESH_USER_ID | userid | ) | [inline, virtual, inherited] |
Specifies the user identification number of the mesh.
| userid | id to use. |
Reimplemented in PE_MESH_MANAGER.
| void LINKED_MESH_MANAGER::SetTransform | ( | const SPAtransf * | trans | ) |
Sets the transformation to be applied to nodes.
| trans | transformation |
| virtual void MESH_MANAGER::start_coordinate_polygon | ( | int | ipoly, | |
| int | nnode | |||
| ) | [virtual, inherited] |
Announces the beginning of the output of a new polygon.
Role: Used with the coordinate protocol.
| ipoly | 0-based polygon index. | |
| nnode | number of nodes in this polygon. |
Reimplemented in POLYGON_POINT_MESH_MANAGER.
| virtual void LINKED_MESH_MANAGER::start_indexed_polygon | ( | int | ipoly, | |
| int | npolynode, | |||
| int | ishare = -2 | |||
| ) | [virtual] |
Announces the start of a polygon and adds it to the mesh.
| ipoly | polygon index | |
| npolynode | number of polygon node | |
| ishare | info about which edge of previous polygon is shared with this one; -2 means not used. |
Reimplemented from MESH_MANAGER.
| virtual void MESH_MANAGER::start_shareable_coordinate_polygon | ( | int | ipoly, | |
| int | nnode, | |||
| int | i | |||
| ) | [virtual, inherited] |
Announces the beginning of the output of a new shareable polygon.
Role: Used with the coordinate protocol.
| ipoly | 0-based polygon index. | |
| nnode | number of nodes in this polygon. | |
| i | shared index. |
| virtual void MESH_MANAGER::start_shareable_indexed_polygon | ( | int | ipoly, | |
| int | npolynode, | |||
| int | ishare | |||
| ) | [virtual, inherited] |
Announces the beginning of the output of a new shareable polygon.
Role: Used with the indexed and global-indexed protocols.
| ipoly | 0-based polygon index. | |
| npolynode | number of nodes in this polygon. | |
| ishare | info about which edge of previous polygon is shared with this one. |
int LINKED_MESH_MANAGER::m_currFaceNodeCount [protected] |
Number of nodes in current face's meshes.
int LINKED_MESH_MANAGER::m_currFacePolygonCount [protected] |
Number of polygons in current face's meshes.
int LINKED_MESH_MANAGER::m_currFacePolyNodeCount [protected] |
Number of polygon nodes in current face's meshes.
LINKED_MESH* LINKED_MESH_MANAGER::m_pMesh [protected] |
Pointer to mesh.
const SPAtransf* LINKED_MESH_MANAGER::m_pTransform [protected] |
Transformation to apply to the nodes of the mesh.
int LINKED_MESH_MANAGER::m_totalNodeCount [protected] |
Number of nodes in all meshes.
int LINKED_MESH_MANAGER::m_totalPolygonCount [protected] |
Number of polygons in all meshes.
int LINKED_MESH_MANAGER::m_totalPolyNodeCount [protected] |
Number of polygon nodes in all meshes.
MESH_MANAGER_SEARCH_ORDER LINKED_MESH_MANAGER::mmso [protected] |
MESH_MANAGER_SEARCH_ORDER dictates order of polygons (for strips, fans, etc)
int LINKED_MESH_MANAGER::NumSingleTris [protected] |
Number of Single Triangles.
int LINKED_MESH_MANAGER::NumStrips [protected] |
Number of tri strips.