Extended mesh interface for modification. More...
Public Member Functions | |
virtual void | setRemotes (MeshEntity *e, Copies &remotes)=0 |
Set the remote copies of an entity. | |
virtual void | addRemote (MeshEntity *e, int p, MeshEntity *r)=0 |
Add just one remote copy to an entity. | |
virtual void | addGhost (MeshEntity *e, int p, MeshEntity *r)=0 |
Add just one ghost copy to an entity. | |
virtual void | setResidence (MeshEntity *e, Parts &residence)=0 |
Set the resident part set of an entity. | |
virtual void | setParam (MeshEntity *e, Vector3 const &p)=0 |
Set the geometric parametric coordinates for a vertex. | |
virtual void | increment (MeshIterator *it)=0 |
Just increment an iterator. | |
virtual bool | isDone (MeshIterator *it)=0 |
Return true iff the iterator points past the end. | |
virtual MeshEntity * | deref (MeshIterator *it)=0 |
Just dereference an iterator without incrementing it. | |
void | setPoint (MeshEntity *e, int node, Vector3 const &p) |
Set the spacial coordinates of a mesh node. | |
virtual void | setPoint_ (MeshEntity *e, int node, Vector3 const &p)=0 |
Underlying implementation of apf::Mesh2::setPoint. | |
MeshEntity * | createVertex (ModelEntity *c, Vector3 const &point, Vector3 const ¶m) |
Create a fully-specified vertex. | |
void | requireUnfrozen () |
require that no fields are stored in arrays | |
virtual MeshEntity * | createVert_ (ModelEntity *c)=0 |
Underlying implementation of apf::Mesh2::createVert. | |
MeshEntity * | createVert (ModelEntity *c) |
Just create a vertex. | |
virtual MeshEntity * | createEntity_ (int type, ModelEntity *c, MeshEntity **down)=0 |
Underlying implementation of apf::Mesh2::createEntity. | |
MeshEntity * | createEntity (int type, ModelEntity *c, MeshEntity **down) |
Create a non-vertex mesh entity. | |
virtual void | destroy_ (MeshEntity *e)=0 |
Underlying implementation of apf::Mesh2::destroy. | |
void | destroy (MeshEntity *e) |
Destroy a mesh entity. | |
virtual void | setModelEntity (MeshEntity *e, ModelEntity *c)=0 |
Change the geometric classification of an entity. | |
virtual void | addMatch (MeshEntity *e, int peer, MeshEntity *match)=0 |
Add a matched copy to an entity. | |
virtual void | clearMatches (MeshEntity *e)=0 |
Remove all matched copies of an entity. | |
virtual void | acceptChanges ()=0 |
Implementation-defined synchronization after modification. |
Extended mesh interface for modification.
this interface, which is a superset of apf::Mesh, includes methods for mesh modification. Not all mesh databases support this, which is why the two classes are separated.
In this case, mesh modification means any entity creation, deletion, changing inter-part boundary links (including remote copies, matching, etc), and changing node coordinates.
virtual void apf::Mesh2::acceptChanges | ( | ) | [pure virtual] |
Implementation-defined synchronization after modification.
users are encouraged to call this function after finishing mesh modifications so that all structures are properly updated before using the mesh any further.
MeshEntity* apf::Mesh2::createEntity | ( | int | type, | |
ModelEntity * | c, | |||
MeshEntity ** | down | |||
) | [inline] |
Create a non-vertex mesh entity.
to create entities from more than one level down, including intermediate entities, see apf::buildElement
type | select from apf::Mesh::Type | |
c | geometric classification, which is very immutable in APF | |
down | array of one-level downward adjacent entities |
MeshEntity* apf::Mesh2::createVert | ( | ModelEntity * | c | ) | [inline] |
Just create a vertex.
c | geometric classification, which is very immutable in APF |
MeshEntity* apf::Mesh2::createVertex | ( | ModelEntity * | c, | |
Vector3 const & | point, | |||
Vector3 const & | param | |||
) |
Create a fully-specified vertex.
this function sets geometric classification and coordinates all at once. see apf::Mesh2::createVert for a more minimal interface
virtual MeshEntity* apf::Mesh2::deref | ( | MeshIterator * | it | ) | [pure virtual] |
Just dereference an iterator without incrementing it.
this is needed by apf::CavityOp, and Simmetrix meshes don't support the separation of dereference and increment
void apf::Mesh2::destroy | ( | MeshEntity * | e | ) | [inline] |
Destroy a mesh entity.
this does not destroy any other entities, including downward adjacencies
virtual void apf::Mesh2::setRemotes | ( | MeshEntity * | e, | |
Copies & | remotes | |||
) | [pure virtual] |
Set the remote copies of an entity.
this does not affect the residence or ownership, so users are advised to use apf::stitchMesh after calling this function.
virtual void apf::Mesh2::setResidence | ( | MeshEntity * | e, | |
Parts & | residence | |||
) | [pure virtual] |
Set the resident part set of an entity.
this is also known as partition model classification