Manifold 3.0
Robust geometry
Loading...
Searching...
No Matches
Structs

Miscellaneous data structures for interfacing with this library. More...

Classes

struct  PolyVert
 Polygon vertex. More...
struct  Smoothness
 Defines which edges to sharpen and how much for the Manifold.Smooth() constructor. More...
struct  RayHit
 Result of a ray cast query against a Manifold. More...
class  ExecutionContext
 Observe and control a long-running Manifold evaluation. More...
struct  Box
 Axis-aligned 3D box, primarily for bounding. More...
struct  Rect
 Axis-aligned 2D box, primarily for bounding. More...
class  Quality
 These static properties control how circular shapes are quantized by default on construction. More...

Typedefs

using SimplePolygonIdx = std::vector<PolyVert>
 Single polygon contour, wound CCW, with indices. First and last point are implicitly connected. Should ensure all input is ε-valid.
using PolygonsIdx = std::vector<SimplePolygonIdx>
 Set of indexed polygons with holes. Order of contours is arbitrary. Can contain any depth of nested holes and any number of separate polygons. Should ensure all input is ε-valid.
using SimplePolygon = std::vector<vec2>
 Single polygon contour, wound CCW. First and last point are implicitly connected. Should ensure all input is ε-valid.
using Polygons = std::vector<SimplePolygon>
 Set of polygons with holes. Order of contours is arbitrary. Can contain any depth of nested holes and any number of separate polygons. Should ensure all input is ε-valid.

Enumerations

enum class  OpType : char { Add , Subtract , Intersect }
 Boolean operation type: Add (Union), Subtract (Difference), and Intersect.

Variables

constexpr int DEFAULT_SEGMENTS = 0
constexpr double DEFAULT_ANGLE = 10.0
constexpr double DEFAULT_LENGTH = 1.0

Detailed Description

Miscellaneous data structures for interfacing with this library.


Class Documentation

◆ manifold::PolyVert

struct manifold::PolyVert

Polygon vertex.

Class Members
vec2 pos X-Y position.
int idx ID or index into another vertex vector.

◆ manifold::Smoothness

struct manifold::Smoothness

Defines which edges to sharpen and how much for the Manifold.Smooth() constructor.

Class Members
size_t halfedge The halfedge index = 3 * tri + i, referring to Mesh.triVerts[tri][i].
double smoothness

A value between 0 and 1, where 0 is sharp and 1 is the default and the curvature is interpolated between these values. The two paired halfedges can have different values while maintaining C-1 continuity (except for 0).

◆ manifold::RayHit

struct manifold::RayHit

Result of a ray cast query against a Manifold.

Class Members
uint64_t faceID = 0 The triangle index that was hit.
double distance = 0

The parametric distance along the ray segment in the closed interval [0, 1], where 0 is the origin and 1 is the endpoint. Hits exactly at the origin or endpoint are included.

vec3 position = vec3(0.0) The 3D position of the hit point.
vec3 normal = vec3(0.0) The geometric face normal at the hit.