represents a mesh, including topology (connectivity) information and point coordinates, More...
#include <MRMesh.h>
Public Member Functions | |
~Mesh () | |
array< VertId > | GetLeftTriVerts (EdgeId e) |
void | Transform (AffineXf3f^ xf) |
transforms all points | |
void | Transform (AffineXf3f^ xf, VertBitSet^ region) |
transforms all points in the region | |
void | PackOptimally () |
packs tightly and rearranges vertices, triangles and edges to put close in space elements in close indices | |
double | Volume () |
returns volume of whole mesh | |
double | Volume (FaceBitSet^ region) |
returns volume of closed mesh region, if region is not closed DBL_MAX is returned | |
Static Public Member Functions | |
static Mesh | FromTriangles (VertCoords^ points, MR::DotNet::Triangulation^ triangles) |
creates mesh from point coordinates and triangulation | |
static Mesh | FromTrianglesDuplicatingNonManifoldVertices (VertCoords^ points, MR::DotNet::Triangulation^ triangles) |
creates mesh from point coordinates and triangulation. If some vertices are not manifold, they will be duplicated | |
static Mesh | FromAnySupportedFormat (System::String^ path) |
loads mesh from file of any supported format | |
static void | ToAnySupportedFormat (Mesh^ mesh, System::String^ path) |
saves mesh to file of any supported format | |
static bool | operator== (Mesh^ a, Mesh^ b) |
static bool | operator!= (Mesh^ a, Mesh^ b) |
static Mesh | MakeCube (Vector3f^ size, Vector3f^ base) |
creates a parallelepiped with given sizes and base | |
static Mesh | MakeSphere (float radius, int vertexCount) |
creates a sphere of given radius and vertex count | |
static Mesh | MakeTorus (float primaryRadius, float secondaryRadius, int primaryResolution, int secondaryResolution) |
creates a torus with given parameters | |
static Mesh | MakeCylinder (float radius, float length) |
static Mesh | MakeCylinder (float radius, float startAngle, float arcSize, float length) |
static Mesh | MakeCylinder (float radius, float startAngle, float arcSize, float length, int resolution) |
static Mesh | MakeCylinder (float radius0, float radius1, float startAngle, float arcSize, float length, int resolution) |
static MeshProjectionResult | FindProjection (Vector3f^ point, MeshPart meshPart) |
static MeshProjectionResult | FindProjection (Vector3f^ point, MeshPart meshPart, float maxDistanceSquared) |
static MeshProjectionResult | FindProjection (Vector3f^ point, MeshPart meshPart, float maxDistanceSquared, AffineXf3f^ xf) |
static MeshProjectionResult | FindProjection (Vector3f^ point, MeshPart meshPart, float maxDistanceSquared, AffineXf3f^ xf, float minDistanceSquared) |
Public Attributes | |
internal | : Mesh( MR::Mesh* mesh ) |
virtual property VertCoordsReadOnly | Points { VertCoordsReadOnly^ get() |
point coordinates | |
virtual property VertBitSetReadOnly | ValidPoints { VertBitSetReadOnly^ get() |
set of all valid vertices | |
virtual property Box3f | BoundingBox { Box3f^ get() |
property FaceBitSetReadOnly | ValidFaces { FaceBitSetReadOnly^ get() |
set of all valid faces | |
property TriangulationReadOnly | Triangulation { TriangulationReadOnly^ get() |
info about triangles | |
property EdgePathReadOnly | HoleRepresentiveEdges { EdgePathReadOnly^ get() |
edges with no valid left face for every boundary in the mesh | |
Public Attributes inherited from MeshOrPoints | |
property VertCoordsReadOnly | Points { VertCoordsReadOnly^ get() |
property VertBitSetReadOnly | ValidPoints { VertBitSetReadOnly^ get() |
property Box3f | BoundingBox { Box3f^ get() |
represents a mesh, including topology (connectivity) information and point coordinates,
Mesh::~Mesh | ( | ) |
|
static |
|
static |
|
static |
|
static |
|
static |
loads mesh from file of any supported format
|
static |
creates mesh from point coordinates and triangulation
|
static |
creates mesh from point coordinates and triangulation. If some vertices are not manifold, they will be duplicated
gets 3 vertices of the left face ( face-id may not exist, but the shape must be triangular) the vertices are returned in counter-clockwise order if look from mesh outside
creates a parallelepiped with given sizes and base
|
static |
|
static |
|
static |
|
static |
|
static |
creates a sphere of given radius and vertex count
|
static |
creates a torus with given parameters
void Mesh::PackOptimally | ( | ) |
packs tightly and rearranges vertices, triangles and edges to put close in space elements in close indices
|
static |
saves mesh to file of any supported format
void Mesh::Transform | ( | AffineXf3f^ | xf | ) |
transforms all points
void Mesh::Transform | ( | AffineXf3f^ | xf, |
VertBitSet^ | region ) |
transforms all points in the region
double Mesh::Volume | ( | ) |
returns volume of whole mesh
double Mesh::Volume | ( | FaceBitSet^ | region | ) |
returns volume of closed mesh region, if region is not closed DBL_MAX is returned
internal Mesh::__pad0__ |
property EdgePathReadOnly Mesh::HoleRepresentiveEdges { EdgePathReadOnly^ get() |
edges with no valid left face for every boundary in the mesh
virtual property VertCoordsReadOnly Mesh::Points { VertCoordsReadOnly^ get() |
point coordinates
property TriangulationReadOnly Mesh::Triangulation { TriangulationReadOnly^ get() |
info about triangles
property FaceBitSetReadOnly Mesh::ValidFaces { FaceBitSetReadOnly^ get() |
set of all valid faces
virtual property VertBitSetReadOnly Mesh::ValidPoints { VertBitSetReadOnly^ get() |
set of all valid vertices