Polyhedron3D
Class full path: NemAll_Python_Geometry.Polyhedron3D
Representation class for 3D polyhedron.
Polyhedron3D represents a 3D solid defined by vertices, edges and faces. Polyhedron includes table of vertices, table of edges and table of faces. Each table is zero based indexed. Edge is defined via GeometryEdge as two indices into vertices table. Geometry edge is default oriented from start to end index. Face is defined via PolyhedronFace as a vector of oriented edges. Oriented edge (OrientedEdge) has EdgeHandle and orientation flag. EdgeHandle is index into polyhedron table of all edges, it mean that values of EdgeHandle can be from range [0..EdgesCount-1]. This handle can be increased and decreased in standard way. When orientation flag is true, then orientation is same as GeometryEdge (from Start to End index), if flag is false then orientation is backward (from End to Start index).
Attributes
RefPoint: Point3D
property
writable
Get the reference point
Be aware: All vertices will be recalculated on new reference point. This operation is very slow in case of many vertices. Use constructor for better and faster initialization object.
Type: PolyhedronType
property
writable
Get polyhedron type
In case of error, method return tEdges.
Get polyhedron type
Method throw exception if polyhedron is not initialized. In case of incorrect polyhedronType, tEdges type will be set.
Functions
AppendEdge(edge)
Append edge
Method throw exception if object is not initialized. Old interface: appendPolyederEdge
Parameters:
Name | Type | Description | Default |
---|---|---|---|
edge
|
GeometryEdge
|
Appended edge. |
required |
Returns:
Type | Description |
---|---|
object
|
Error code. |
Clear
overload
Clear()
Clear all vertices, edges and faces
Type and vertices,edges,faces preallocation size of polyhedron will be preserved
Clear(verticesCount, edgesCount, facesCount, negativeOrientation)
Clear all vertices, edges and faces
The "Count" parameters have sense only for appropriate polyhedron type and specified a memory allocation size - performance optimization. In case of any error, constructor throw an exception.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
verticesCount
|
int
|
Count of expected vertices. |
required |
edgesCount
|
int
|
Count of expected edges. |
required |
facesCount
|
int
|
Count of expected faces. |
required |
negativeOrientation
|
bool
|
True for negative orientation. |
required |
CreateCuboid
overload
CreateCuboid(p1, p2)
staticmethod
static constructor for cuboid
Parameters:
Name | Type | Description | Default |
---|---|---|---|
p1
|
Point3D
|
lower point of min/max box that states the cuboid's size |
required |
p2
|
Point3D
|
lower point of min/max box that states the cuboid's size |
required |
CreateCuboid(box)
staticmethod
static constructor for cuboid
Parameters:
Name | Type | Description | Default |
---|---|---|---|
box
|
MinMax3D
|
min/max box that states the cuboid's size |
required |
CreateCuboid(placement, length, width, height)
staticmethod
Create Polyhedron3D as cuboid
Parameters:
Name | Type | Description | Default |
---|---|---|---|
placement
|
AxisPlacement3D
|
cuboid origin |
required |
length
|
float
|
length in its x axis |
required |
width
|
float
|
width in its y axis |
required |
height
|
float
|
height in its z axis |
required |
Returns:
Type | Description |
---|---|
Polyhedron3D
|
created geometry |
CreateCuboid(length, width, height)
staticmethod
Create a cuboid
Parameters:
Name | Type | Description | Default |
---|---|---|---|
length
|
float
|
Length |
required |
width
|
float
|
Width |
required |
height
|
float
|
Height |
required |
Returns:
Type | Description |
---|---|
Polyhedron3D
|
Polyhedron3D |
CreateFace(expectedEdges)
Create face and append it to polyhedron
Method throw exception if object is not initialized. Old interface: appendPolyederFace
Parameters:
Name | Type | Description | Default |
---|---|---|---|
expectedEdges
|
int
|
Appended face. |
required |
Returns:
Type | Description |
---|---|
PolyhedronFace
|
Created face. |
DeleteEdge(edgeHandle)
Delete edge
Method throw exception if object is not initialized. Old interface: deletePolyederEdge
Parameters:
Name | Type | Description | Default |
---|---|---|---|
edgeHandle
|
int
|
Edge to delete |
required |
Returns:
Type | Description |
---|---|
object
|
Error code. |
DeleteFace(faceIndex)
Delete face at specified position
Method throw exception in case of any error. Old interface: deleteFace
Parameters:
Name | Type | Description | Default |
---|---|---|---|
faceIndex
|
int
|
Position of the deleted face. Zero based. |
required |
Returns:
Type | Description |
---|---|
object
|
Error code. |
DeleteFaces(faceIndices)
Delete faces at specified positions
Method throw exception in case of any error. Old interface: deleteFace
Parameters:
Name | Type | Description | Default |
---|---|---|---|
faceIndices
|
VecSizeTList
|
Positions of the deleted faces. Zero based. |
required |
Returns:
Type | Description |
---|---|
object
|
Error code. |
EqualRef(polyhedron)
Test for equal reference point
Parameters:
Name | Type | Description | Default |
---|---|---|---|
polyhedron
|
Polyhedron3D
|
Tested polyhedron. |
required |
Returns:
Type | Description |
---|---|
bool
|
True when both polyhedrons has the same reference point. |
GetEdge
overload
GetEdge(edgeHandle)
Get edge at the specified position
Parameters:
Name | Type | Description | Default |
---|---|---|---|
edgeHandle
|
int
|
Specified position of the edge. |
required |
Returns:
Type | Description |
---|---|
eGeometryErrorCode
|
tuple(Error code., |
GeometryEdge
|
Filled edge) |
GetEdge(orientedEdge)
Get edge at the specified position with orientation
Parameters:
Name | Type | Description | Default |
---|---|---|---|
orientedEdge
|
OrientedEdge
|
Specified position and orientation of the edge. |
required |
Returns:
Type | Description |
---|---|
eGeometryErrorCode
|
tuple(Error code., |
GeometryEdge
|
Filled edge) |
GetEdgeVertices(orientedEdge)
Get points on specified edge from specified face
Method throw exception in case of any error.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
orientedEdge
|
OrientedEdge
|
Oriented edge. |
required |
Returns:
Type | Description |
---|---|
eGeometryErrorCode
|
tuple(Error code., |
Point3D
|
StartVertex, |
Point3D
|
EndVertex) |
GetEdges()
Get copy of all edges
Old interface: getPolyederAllEdges
Returns:
Type | Description |
---|---|
eGeometryErrorCode
|
tuple(Error code., |
list[GeometryEdge]
|
in Vector of edges) |
GetEdgesCount()
Get count of edges
Method throw exception in case of any error. Count
Returns:
Type | Description |
---|---|
int
|
Count of edges. |
GetEdgesLines()
Get copy of all edges as vector of lines
Returns:
Type | Description |
---|---|
eGeometryErrorCode
|
tuple(Error code., |
Line3DList
|
edges in Vector of lines) |
GetEdgesOnFaceCount(faceIndex)
Get count of edges at the specified face
Method throw exception in case of any error. In case of error, return 0. Count
Parameters:
Name | Type | Description | Default |
---|---|---|---|
faceIndex
|
int
|
Specified position of the face. |
required |
Returns:
Type | Description |
---|---|
int
|
Count if edges. |
GetFace(faceIndex)
Get face at the specified position
In case of error, method throw an exception.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
faceIndex
|
int
|
Specified position of the face. |
required |
Returns:
Type | Description |
---|---|
PolyhedronFace
|
Face. |
GetFacesCount()
Get count of faces
Method throw exception in case of any error.
Returns:
Type | Description |
---|---|
int
|
Count of faces. |
GetNormalVectorOfFace(faceIndex)
Get normal vector of the face
Parameters:
Name | Type | Description | Default |
---|---|---|---|
faceIndex
|
int
|
face index |
required |
Returns:
Type | Description |
---|---|
eGeometryErrorCode
|
tuple(error code, |
Vector3D
|
result normal vector) |
GetParts()
Get separated parts (continuos shells)
Returns:
Type | Description |
---|---|
eGeometryErrorCode
|
tuple(error code, |
list[Polyhedron3D]
|
separated bodies) |
GetPartsCount()
Get number of parts in this polyhedron
Returns:
Type | Description |
---|---|
int
|
number of parts |
GetRefPoint()
Get the reference point
Returns:
Type | Description |
---|---|
Point3D
|
Constant reference point. |
GetRelVertex(index)
Get relative vertex at specified position
Method throw exception in case of any error. (usually out of range)
Parameters:
Name | Type | Description | Default |
---|---|---|---|
index
|
int
|
Specified position. |
required |
Returns:
Type | Description |
---|---|
eGeometryErrorCode
|
tuple(Error code, |
Point3D
|
out Vertex in Local coordinate system) |
GetType()
Get polyhedron type
In case of error, method return tEdges.
Returns:
Type | Description |
---|---|
PolyhedronType
|
Type. |
GetVertex(vertexIndex)
Get vertex at specified position
Method throw exception in case of any error.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
vertexIndex
|
int
|
Specified position of vertex. |
required |
Returns:
Type | Description |
---|---|
eGeometryErrorCode
|
tuple(Error code., |
Point3D
|
in Vertex at specified position in World coordinate system) |
GetVertices()
Get copy of vertices in world coordinate system
Returns:
Type | Description |
---|---|
Point3DList
|
Vector with all vertices as Point3D |
GetVerticesCount()
Get count of vertices
Method throw exception in case of any error. Count
Returns:
Type | Description |
---|---|
int
|
Count of vertices. |
Heal()
Heal polyhedron by splitting non-planar faces to triangles
Returns:
Type | Description |
---|---|
object
|
error code |
Invert()
Invert polyhedron from positive to negative or vice versa
Returns:
Type | Description |
---|---|
object
|
error code |
InvertWithFlagUnchanged()
Invert polyhedron from positive to negative or vice versa, but keep flag unchanged
Returns:
Type | Description |
---|---|
object
|
error code |
IsNegative()
Checking the negative orientation
Method throw exception in case of any error. Old interface: getPolyederNega
Returns:
Type | Description |
---|---|
bool
|
True when negative orientation, otherwise false. |
IsValid()
Checking validity
Depends on polyhedron type
Returns:
Type | Description |
---|---|
bool
|
True when valid, otherwise false. |
Normalize(normType)
Normalize polyhedron
normType
0-dim.: keine Kanten oder Flaechen vorhanden 1-dim.: nur Kanten vorhanden 2-dim.: Flaechen vorhanden, die aber keine geschlossene Volumenoberflaeche bilden 3-dim.: Flaechen bilden geschlossene Volumen- oberflaeche
Method throw exception if object is not initialized.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
normType
|
int
|
Type of normalization. |
required |
Returns:
Type | Description |
---|---|
object
|
Error code. |
ReadFromStream(sstream_str)
Read Polyhedron3D from stream
Parameters:
Name | Type | Description | Default |
---|---|---|---|
sstream_str
|
str
|
input stream |
required |
Returns:
Type | Description |
---|---|
object
|
error code |
RemapVertices(source)
set vertex order as in source polyhedron
Parameters:
Name | Type | Description | Default |
---|---|---|---|
source
|
Polyhedron3D
|
|
required |
Returns:
Type | Description |
---|---|
bool
|
success |
Set(refPoint, polyhedronWorld)
Set polyhedron on reference point. Polyhedron is in world coordinate system
Parameters:
Name | Type | Description | Default |
---|---|---|---|
refPoint
|
Point3D
|
Reference point. |
required |
polyhedronWorld
|
Polyhedron3D
|
Polyhedron with vertices in World coordinate system. |
required |
SetRefPoint(refPoint)
Set the reference point
Be aware: All vertices will be recalculated on new reference point. This operation is very slow in case of many vertices. Use constructor for better and faster initialization object.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
refPoint
|
Point3D
|
New reference point. |
required |
SetType(polyheronType)
Get polyhedron type
Method throw exception if polyhedron is not initialized. In case of incorrect polyhedronType, tEdges type will be set.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
polyheronType
|
PolyhedronType
|
Type of polyhedron. |
required |
WriteToStream()
Write Polyhedron3D to the stream
Returns:
Type | Description |
---|---|
eGeometryErrorCode
|
tuple(error code, |
str
|
output stream) |
__eq__(polyhedron)
Comparison of polyhedrons without tolerance.
Be careful, this method work without tolerance!
Parameters:
Name | Type | Description | Default |
---|---|---|---|
polyhedron
|
Polyhedron3D
|
Compared polyhedron. |
required |
Returns:
Type | Description |
---|---|
object
|
True when polyhedrons are equal, otherwise false. |
__getitem__(index)
Get vertex at the specified position from index. Used world coordinates
Operator throw exception in case of any error.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
index
|
int
|
Specified position |
required |
Returns:
Type | Description |
---|---|
Point3D
|
Vertex |
__init__
overload
__init__()
Initialize
__init__(polyhedronType, verticesCount, edgesCount, facesCount, negativeOrientation)
Constructor
The "Count" parameters have sense only for appropriate polyhedron type and specified a memory allocation size - performance optimization. In case of any error, constructor throw an exception.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
polyhedronType
|
PolyhedronType
|
Polyhedron type - edges, faces or volume. |
required |
verticesCount
|
int
|
Count of expected vertices. |
required |
edgesCount
|
int
|
Count of expected edges. |
required |
facesCount
|
int
|
Count of expected faces. |
required |
negativeOrientation
|
bool
|
True for negative orientation. |
required |
__init__(polyhedron)
Copy constructor
Parameters:
Name | Type | Description | Default |
---|---|---|---|
polyhedron
|
Polyhedron3D
|
Polyhedron which will be copied. |
required |
__mul__(matrix)
Matrix transformation of vertices
Parameters:
Name | Type | Description | Default |
---|---|---|---|
matrix
|
Matrix3D
|
Transformation matrix. |
required |
Returns:
Type | Description |
---|---|
Polyhedron3D
|
Transformed polyhedron. |
__repr__()
Convert to string