This class encapsulate a node over a window manifold. More...
#include <Manifold_2.h>
Public Types | |
enum | FlagType { e_unset_flag = -1 } |
Public Member Functions | |
Node () | |
Default constructor. More... | |
Node (const Pane_manifold_2 *pm, int vid, Access_Mode mode) | |
Construct a Node object from a pane manifold and its node ID. More... | |
Halfedge | halfedge () const |
Get an incident halfedge originated from the node. More... | |
const Pane_manifold_2 * | pane_manifold () const |
Obtain the pane manifold that owns the edge. More... | |
const COM::Pane * | pane () const |
Obtain the owner Pane_manifold_2 of the node. More... | |
int | id () const |
Obtain the node ID within its Pane_manifold_2. More... | |
const Point_3< Real > & | point () const |
Obtain the coordinates of a node. More... | |
const void * | addr (const COM::Attribute *attr) const |
Obtain the address of an attribute associated with the node. More... | |
const COM::Attribute * | attr (const COM::Attribute *a) const |
Obtain the attribute on the parent pane of the node. More... | |
bool | is_border () const |
Is the node on the physical boundary? More... | |
bool | is_isolated () const |
Is the node isolated? More... | |
bool | is_primary () const |
Is the node a primary? More... | |
Node | get_primary () const |
Get the primary copy of the node. More... | |
bool | coincide (const Node &n) const |
Check whether the current node coincide with the given node. More... | |
bool | operator== (const Node &n) const |
Are two nodes the same? More... | |
bool | operator!= (const Node &n) const |
Are two nodes different? More... | |
bool | operator< (const Node &n) const |
Does the current node has a smaller ID then the given node? More... | |
Node () | |
Node (MVec pos) | |
Node (MVec pos, int flag) | |
~Node () | |
void | setID (int theID) |
int | getID () |
void | setPosition (MVec pos) |
MVec | getPosition () |
void | addFace (Face *face) |
void | removeFace (Face *face) |
int | getNumFaces () |
retrieves the number of faces currently associated with this node. More... | |
Face * | getFace (int Index) |
Retrieves a pointer to the face referenced by the supplied index that is associated with this node, i.e., if there are 3 faces associated with this node (use getNumFaces), then index should run from 0 to 2. More... | |
Face ** | getAllFaces () |
Retrieves a pointer to the internal array of faces associated with this node. More... | |
void | addElement (Element *elem) |
void | removeElement (Element *elem) |
int | getNumElements () |
retrieves the number of elements currently associated with this node. More... | |
Element * | getElement (int Index) |
Retrieves a pointer to the element referenced by the supplied index that is associated with this node, i.e., if there are 3 elements associated with this node (use getNumElements), then index should run from 0 to 2. More... | |
Element ** | getAllElements () |
Retrieves a pointer to the internal array of elements associated with this node. More... | |
Face * | sharedFace (Node *n2, Node *n3, Node *n4=0) |
Node * | getNext () |
void | addNextLink (Node *link) |
boolean | separate (Mesh *mesh, FaceList *list, int new_material) |
int | getFlag () const |
void | setFlag (int flag) |
Protected Attributes | |
const Pane_manifold_2 * | _pm |
int | _vID |
Access_Mode | _mode |
Private Member Functions | |
ElementList * | getSeparateElements (FaceList *list) |
Private Attributes | |
MVec | d_position |
int | d_ID |
int | d_flag |
Node * | d_nextNode |
Face ** | d_faces |
int | d_faceArraySize |
int | d_numFaces |
Element ** | d_elements |
int | d_elementArraySize |
int | d_numElements |
Friends | |
istream & | operator>> (istream &stream, Node &n) |
ostream & | operator<< (ostream &stream, Node &n) |
This class encapsulate a node over a window manifold.
Definition at line 370 of file Manifold_2.h.
enum FlagType |
|
inline |
Default constructor.
Definition at line 373 of file Manifold_2.h.
Referenced by separate().
|
inline |
Construct a Node object from a pane manifold and its node ID.
Definition at line 376 of file Manifold_2.h.
Node | ( | ) |
Definition at line 23 of file Node.cpp.
~Node | ( | ) |
Definition at line 45 of file Node.cpp.
References d_elementArraySize, d_elements, d_faceArraySize, and d_faces.
void addElement | ( | Element * | elem | ) |
Definition at line 86 of file Node.cpp.
References d_elementArraySize, d_elements, and d_numElements.
Referenced by operator>>(), TCoElement::replaceFaceNode(), QCoElement::replaceFaceNode(), Element::replaceNode(), and Element::setFromNodes().
void addFace | ( | Face * | face | ) |
Definition at line 55 of file Node.cpp.
References d_faceArraySize, d_faces, d_numFaces, and face.
Referenced by QuadFace::QuadFace(), Face::replaceNode(), and TriFace::TriFace().
void addNextLink | ( | Node * | link | ) |
Definition at line 139 of file Node.cpp.
References d_nextNode.
Referenced by QCoElement::setFromMyNodes(), and TCoElement::setFromMyNodes().
const void * addr | ( | const COM::Attribute * | attr | ) | const |
Obtain the address of an attribute associated with the node.
Note: This function can be slow O(log(#panes)) if the attribute is not on the current pane.
Definition at line 1191 of file Manifold_2.C.
References _pm, _vID, attr(), COM_assertion_msg, COM_get_sizeof(), and Simple_manifold_2::pane().
Referenced by Halfedge::edge_average(), Halfedge::face_average(), get_deformed_normal(), rflu_modhashtable::rflu_hashedge(), rflu_modhashtable::rflu_hashface(), rflu_modhashtable::rflu_hashfuncprimary(), rflu_modhashtable::rflu_hashfuncsecondary(), rflu_modhashtable::rflu_hashvertex(), rflu_modhashtable::rflu_hashvertexfancy(), and rflu_modhashtable::rflu_unhashbface().
|
inline |
Obtain the attribute on the parent pane of the node.
It takes O(log(#panes)) time.
Definition at line 404 of file Manifold_2.h.
References _pm, COM_assertion_msg, and Simple_manifold_2::pane().
Referenced by addr(), rocstar_rocfrac::associate_pointer(), modrocstar::associate_pointer(), and m_rocburn_interface_data::associate_pointer().
|
inline |
Check whether the current node coincide with the given node.
Definition at line 422 of file Manifold_2.h.
References _mode, _pm, _vID, and Pane_manifold_2::get_primary().
|
inline |
Get the primary copy of the node.
Definition at line 419 of file Manifold_2.h.
References _mode, _pm, _vID, and Pane_manifold_2::get_primary().
Referenced by Window_manifold_2::assign_global_nodeIDs().
|
inline |
Retrieves a pointer to the internal array of elements associated with this node.
Use getNumElements to find out how many are in the array.
Definition at line 147 of file Node.hpp.
References d_elements.
|
inline |
|
inline |
Retrieves a pointer to the element referenced by the supplied index that is associated with this node, i.e., if there are 3 elements associated with this node (use getNumElements), then index should run from 0 to 2.
Definition at line 143 of file Node.hpp.
References d_elements.
|
inline |
|
inline |
Definition at line 150 of file Node.hpp.
References d_flag.
Referenced by operator<<().
|
inline |
Definition at line 119 of file Node.hpp.
References d_ID.
Referenced by operator<<().
Node* getNext | ( | ) |
|
inline |
retrieves the number of elements currently associated with this node.
Definition at line 140 of file Node.hpp.
References d_numElements.
|
inline |
retrieves the number of faces currently associated with this node.
Definition at line 128 of file Node.hpp.
References d_numFaces.
|
inline |
Definition at line 125 of file Node.hpp.
References d_position.
Referenced by TetElement::getMinEdgeLength().
|
private |
Definition at line 192 of file Node.cpp.
References d_elements, d_faces, d_numElements, d_numFaces, FALSE, FaceList::get(), ElementList::get(), Face::getElement1(), Face::getElement2(), i, FaceList::insert_first(), ElementList::insert_first(), Element::isCohesive(), j, FaceList::move_to(), ElementList::move_to(), FaceList::next(), ElementList::next(), FaceList::remove(), ElementList::reset(), FaceList::size(), ElementList::size(), and TRUE.
Referenced by separate().
|
inline |
Get an incident halfedge originated from the node.
If the node is on the physical boundary, the halfedge must be a physical border edge.
Definition at line 670 of file Manifold_2.h.
References _mode, _pm, _vID, Pane_manifold_2::get_counterpart(), Simple_manifold_2::get_incident_edge(), Simple_manifold_2::get_incident_real_edge(), Halfedge::pane_manifold(), REAL_PANE, and WHOLE_PANE.
Referenced by Window_manifold_2::determine_primaries(), and is_border().
|
inline |
Obtain the node ID within its Pane_manifold_2.
Definition at line 391 of file Manifold_2.h.
References _vID.
Referenced by Window_manifold_2::assign_global_nodeIDs().
|
inline |
Is the node on the physical boundary?
Definition at line 668 of file Manifold_2.h.
References halfedge(), and Halfedge::is_border().
|
inline |
Is the node isolated?
Definition at line 413 of file Manifold_2.h.
References _pm, _vID, and Simple_manifold_2::is_isolated_node().
Referenced by Window_manifold_2::determine_primaries().
|
inline |
Is the node a primary?
Definition at line 416 of file Manifold_2.h.
References _mode, _pm, _vID, and Pane_manifold_2::is_primary().
|
inline |
|
inline |
Does the current node has a smaller ID then the given node?
Definition at line 434 of file Manifold_2.h.
References _pm, _vID, and Simple_manifold_2::pane().
|
inline |
|
inline |
Obtain the owner Pane_manifold_2 of the node.
Definition at line 387 of file Manifold_2.h.
References _pm, and Simple_manifold_2::pane().
Referenced by Window_manifold_2::assign_global_nodeIDs().
|
inline |
Obtain the pane manifold that owns the edge.
Definition at line 384 of file Manifold_2.h.
References _pm.
Obtain the coordinates of a node.
Definition at line 394 of file Manifold_2.h.
References _pm, _vID, and Simple_manifold_2::pane().
Referenced by get_deformed_normal(), and Halfedge::tangent().
void removeElement | ( | Element * | elem | ) |
Definition at line 102 of file Node.cpp.
References d_elements, d_numElements, and i.
Referenced by QCoElement::replaceFaceNode(), TCoElement::replaceFaceNode(), Element::replaceNode(), HexElement::~HexElement(), QCoElement::~QCoElement(), TCoElement::~TCoElement(), and TetElement::~TetElement().
void removeFace | ( | Face * | face | ) |
Definition at line 70 of file Node.cpp.
References d_faces, d_numFaces, and i.
Referenced by Face::replaceNode(), QuadFace::~QuadFace(), and TriFace::~TriFace().
Definition at line 162 of file Node.cpp.
References Mesh::addNode(), d_flag, d_position, FALSE, getSeparateElements(), Node(), Mesh::replaceNode(), separate(), and TRUE.
Referenced by Mesh::addCohesive(), and separate().
|
inline |
Definition at line 153 of file Node.hpp.
References d_flag.
Referenced by operator>>().
|
inline |
Definition at line 116 of file Node.hpp.
References d_ID.
Referenced by Mesh::addNode(), and Mesh::removeNode().
|
inline |
Definition at line 118 of file Node.cpp.
References d_faces, d_numFaces, Face::getNodes(), Face::getNumNodes(), i, and k.
Referenced by HexElement::setFaceFromNodes(), TetElement::setFaceFromNodes(), TCoElement::setFaceFromNodes(), and QCoElement::setFaceFromNodes().
|
protected |
Definition at line 442 of file Manifold_2.h.
Referenced by coincide(), get_primary(), halfedge(), and is_primary().
|
protected |
Definition at line 440 of file Manifold_2.h.
Referenced by addr(), attr(), coincide(), get_primary(), halfedge(), is_isolated(), is_primary(), operator!=(), operator<(), operator==(), pane(), pane_manifold(), and point().
|
protected |
Definition at line 441 of file Manifold_2.h.
Referenced by addr(), coincide(), get_primary(), halfedge(), id(), is_isolated(), is_primary(), operator!=(), operator<(), operator==(), and point().
|
private |
Definition at line 111 of file Node.hpp.
Referenced by addElement(), and ~Node().
|
private |
Definition at line 110 of file Node.hpp.
Referenced by addElement(), getAllElements(), getElement(), getSeparateElements(), removeElement(), and ~Node().
|
private |
|
private |
Definition at line 106 of file Node.hpp.
Referenced by addFace(), getAllFaces(), getFace(), getSeparateElements(), removeFace(), sharedFace(), and ~Node().
|
private |
Definition at line 102 of file Node.hpp.
Referenced by getFlag(), separate(), and setFlag().
|
private |
Definition at line 100 of file Node.hpp.
Referenced by getID(), operator<<(), operator>>(), and setID().
|
private |
Definition at line 104 of file Node.hpp.
Referenced by addNextLink().
|
private |
Definition at line 112 of file Node.hpp.
Referenced by addElement(), getNumElements(), getSeparateElements(), and removeElement().
|
private |
Definition at line 108 of file Node.hpp.
Referenced by addFace(), getNumFaces(), getSeparateElements(), removeFace(), and sharedFace().
|
private |
Definition at line 99 of file Node.hpp.
Referenced by getPosition(), operator<<(), operator>>(), separate(), and setPosition().