Workspace 6.21.5
|
Provides a set of normals associated with a node based on attached elements. More...
#include <Mesh/DataStructures/multinodenormals.h>
Public Types | |
using | NormalsVector = QVector< Vector3d > |
A node normal can be provided through the node state "normal" or it can be omitted, in which case the node normal will be calculated and included in the distinct normals.
using NormalsVector = QVector<Vector3d> |
MultiNodeNormals | ( | ) |
|
default |
Vector3d getClosestNormal | ( | const NodeHandle & | node, |
const Vector3d & | v | ||
) | const |
double getEdgeBreakAngle | ( | ) | const |
bool getElementNormal | ( | const ElementType::Type & | type, |
const ElementHandle & | element, | ||
Vector3d & | result | ||
) | const |
bool getIncludeZeroLengthNormals | ( | ) | const |
unsigned getLocalIndexOfClosestNormal | ( | const NodeHandle & | node, |
const Vector3d & | v | ||
) | const |
bool getMultiOnConvexOnly | ( | ) | const |
Vector3d getNodeNormal | ( | const NodeHandle & | node, |
unsigned | index | ||
) | const |
CSIRO::Mesh::MultiNodeNormals::NormalsVector getNodeNormals | ( | const NodeHandle & | node | ) | const |
node | The node to get the vectors on |
const QString & getNormalStateName | ( | ) | const |
unsigned getNumNormalsForNode | ( | const NodeHandle & | node | ) | const |
unsigned getTotalNodes | ( | ) | const |
unsigned getTotalNormals | ( | ) | const |
bool getUseExistingNodeNormalsState | ( | ) | const |
void setEdgeBreakAngle | ( | double | angle | ) |
angle | The break angle threshold between any two element normals for elements sharing a particular node. Conceptually, you can think of it as the angle from planar beyond which two elements sharing an edge can be considered a sharp edge. The angle is specified in degrees. |
void setIncludeAngleWeightedAverageOfElementNormals | ( | bool | b | ) |
b | If false, then we don't include the node normal that would be calculated using calculateNodeNormal (in meshmodelutils.h) |
void setIncludeZeroLengthNormals | ( | bool | b | ) |
void setMultiOnConvexOnly | ( | bool | b | ) |
b | If true, then an extra normal is only potentially added to the normal set for a pair of adjacent elements if their shared edge is convex. There are some special cases where you don't want an extra normal for concave edges, so for those scenarios call this function with the parameter set to true. The default value is set to false in the constructor. |
bool setNodeNormals | ( | const NodeHandle & | node, |
const NormalsVector & | val | ||
) |
node | The node to set the vectors on |
val | The set of values to set the normals to |
void setNormalStateName | ( | const QString & | val | ) |
void setUseExistingNodeNormalsState | ( | bool | b | ) |
int update | ( | const MeshModelInterface & | model | ) |
model | The model for which multiple node normals need to be calculated. |
The function populates internal data structures for model, computes the normals and returns. Holds a reference to the model for the life of the object which is used when useExistingNodeNormalsState option set. When called, any previous results are discarded.