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().