|
| Node (long IDnum, const Vector3d &v) |
|
| Node (long IDnum, double X, double Y, double Z) |
|
| ~Node () |
|
void | addToPosition (const Vector3d &v) |
|
void | AddToPosition (const Vector3d &v) |
|
Vector3d | calcNormal () const |
|
void | checkAttached () |
|
void | clearAttachments () |
|
Attachments * | getAttachments () |
|
Attachments * | GetAttachments () |
|
Attachments * | getAttachments () const |
|
Attachments * | GetAttachments () const |
|
Node * | getClosestAttachedNode () const |
|
const Vector3d & | getPosition () const |
|
const Vector3d & | GetPosition () const |
|
bool | hasAttachments () const |
|
bool | HasAttachments () const |
|
void | rebuildAttachedNodesFromElements () |
|
void | setPosition (const Vector3d &v) |
|
void | SetPosition (const Vector3d &v) |
|
void | setPositionX (double x) |
|
void | SetPositionX (double x) |
|
void | setPositionY (double y) |
|
void | SetPositionY (double y) |
|
void | setPositionZ (double z) |
|
void | SetPositionZ (double z) |
|
void | sortAttachedShellElements () |
|
| NumberedObject (long ID) |
| Create an object with the specified ID and all flags except isValid not set.
|
|
void | clearFlag (unsigned flag) |
| Clear flag. Do not use this to manipulate the isValid flag, since list managers are responsible for that.
|
|
void | copyFlags (const NumberedObject &t) |
|
long | getID () const |
|
long | getIndex () const |
|
bool | isFlagSet (unsigned flag) const |
|
bool | isValid () const |
|
void | setFlag (unsigned flag, bool b=true) |
| Set flag to b. Do not use this to manipulate the isValid flag, since list managers are responsible for that.
|
|
void | setID (long ID) |
|
void | setIndex (long i) |
|
void | SetID (long ID) |
|
long | GetID () const |
|
void | SetIndex (long i) |
|
long | GetIndex () const |
|
bool | IsFlagSet (unsigned flag) const |
|
void | ClearFlag (unsigned flag) |
|
void | SetFlag (unsigned flag) |
|
void | setFlagTo (unsigned flag, bool b=true) |
|
void | SetFlagTo (unsigned flag, bool b=true) |
|
bool | IsValid () const |
|
| State (unsigned stateSize, unsigned integerDataSize) |
|
| ~State () |
|
void | addToIntegerData (int index, long val) |
|
void | addToState (int index, const Vector3d &v) |
|
void | addToState (int index, double val) |
|
void | copyIntegerData (int index, const State &s) |
|
void | copyState (int index, const State &s) |
|
void | copyStateVector (int index, const State &s) |
|
long | getIntegerData (int index) const |
|
double | getState (int index) const |
|
Vector3d | getStateVector (int index) const |
|
void | setIntegerData (int index, long val) |
|
void | setState (int index, const Vector3d &v) |
|
void | setState (int index, double val) |
|
void | CopyIntegerData (int index, const State &s) |
|
void | AddToIntegerData (int index, long val) |
|
void | SetIntegerData (int index, long val) |
|
long | GetIntegerData (int index) const |
|
void | CopyStateVector (int index, const State &s) |
|
void | CopyState (int index, const State &s) |
|
void | AddToState (int index, const Vector3d &v) |
|
void | AddToState (int index, double val) |
|
double | GetState (int index) const |
|
Vector3d | GetStateVector (int index) const |
|
void | SetState (int index, double val) |
|
void | SetState (int index, const Vector3d &v) |
|
A Node should only be created by a NodeList object. Similarly, the nature of the node's state or integer data should only be changed by a NodeList object, although the state or integer data itself can be modified by other things.
void sortAttachedShellElements |
( |
| ) |
|
- Precondition
- There are no surface intersections at this node, meaning that an edge with the node at one end of it is not used by any more than two shell elements.
-
The normal vectors for the attached shell elements are all consistent, meaning that they all point to out of the same side of the surface they define.
When the function exits, the elements in the attached shell element list will be ordered clockwise when looking along the direction of the node normal. If there is a free edge at this node, then the first and last elements in the list are on the edge and therefore do not share a node pair.
This function is typically called many times, particularly by cleanup routines. Although its name suggests that its primary purpose is to sort the attached element list, the process by which this is done conveniently uncovers most geometry errors. It is for this by-product that many calls to sortAttachedElements() are made. Bad performance of this function will typically hurt overall application performance quite strongly.
- Exceptions
-
DuplicateElementError | Two or more shell elements use the same nodes, of which this node is one. The element normal directions are not necessarily in the same direction. |
SurfaceIntersectError | At least one edge attached to the node is shared by more than two shell elements. |
InconsistentSurfaceNormalsError | Shell elements attached to the node do not have consistent normal vectors (ie neighbouring shells have positive normal vectors on opposite sides). |
MultipleFreeEdgesError | There can be at most two free edges attached to any given node. If there are more, the surface has a point connection between different surfaces, and this is typically not meaningful. Such geometry can usually be modified by either breaking off one of the surfaces from this node, or by adding an extra shell element(s) to fill in the gap and reduce the number of free edges. |