104 3D: Triangle topology
3D reference map · First 3D picture
struct
(struct mesh-vertex-topology3d ( index id outgoing-halfedges boundary? component) #:transparent) index : exact-nonnegative-integer? id : (or/c symbol? exact-nonnegative-integer?) outgoing-halfedges : vector? boundary? : boolean? component : (or/c #f exact-nonnegative-integer?)
struct
(struct mesh-halfedge3d ( index from to triangle next previous opposite edge) #:transparent) index : exact-nonnegative-integer? from : exact-nonnegative-integer? to : exact-nonnegative-integer? triangle : exact-nonnegative-integer? next : exact-nonnegative-integer? previous : exact-nonnegative-integer? opposite : any/c edge : exact-nonnegative-integer?
struct
(struct mesh-edge-topology3d ( index id vertices halfedges boundary? nonmanifold?) #:transparent) index : exact-nonnegative-integer? id : (or/c symbol? exact-nonnegative-integer?) vertices : vector? halfedges : vector? boundary? : boolean? nonmanifold? : boolean?
struct
(struct mesh-triangle-topology3d ( index id vertices halfedges component) #:transparent) index : exact-nonnegative-integer? id : (or/c symbol? exact-nonnegative-integer?) vertices : vector? halfedges : vector? component : exact-nonnegative-integer?
struct
(struct mesh-boundary-component3d ( index edges vertices halfedges component closed?) #:transparent) index : exact-nonnegative-integer? edges : vector? vertices : vector? halfedges : vector? component : (or/c #f exact-nonnegative-integer?) closed? : boolean?
struct
(struct mesh-component-topology3d ( index triangles vertices edges boundary-components manifold? orientable?) #:transparent) index : exact-nonnegative-integer? triangles : vector? vertices : vector? edges : vector? boundary-components : vector? manifold? : boolean? orientable? : boolean?
struct
(struct mesh-topology3d ( vertices halfedges edges triangles components boundaries diagnostics) #:transparent) vertices : vector? halfedges : vector? edges : vector? triangles : vector? components : vector? boundaries : vector? diagnostics : hash?
procedure
(mesh3d-topology mesh) → mesh-topology3d?
mesh : mesh3d?
procedure
(mesh-topology3d-vertex-neighbours topology vertex-index) → vector? topology : mesh-topology3d? vertex-index : exact-nonnegative-integer?
procedure
(mesh-topology3d-incident-edges topology vertex-index) → vector? topology : mesh-topology3d? vertex-index : exact-nonnegative-integer?
procedure
(mesh-topology3d-incident-faces topology vertex-index) → vector? topology : mesh-topology3d? vertex-index : exact-nonnegative-integer?
procedure
(mesh-topology3d-face-neighbours topology face-index) → vector? topology : mesh-topology3d? face-index : exact-nonnegative-integer?
procedure
(mesh-topology3d-boundary-components topology) → vector?
topology : mesh-topology3d?
procedure
(mesh-topology3d-connected-components topology) → vector?
topology : mesh-topology3d?
procedure
(mesh-topology3d-manifold? topology) → boolean?
topology : mesh-topology3d?
procedure
(mesh-topology3d-closed? topology) → boolean?
topology : mesh-topology3d?
procedure
(mesh-topology3d-orientable? topology) → boolean?
topology : mesh-topology3d?
struct
(struct mesh3d-component-invariants3d ( component vertex-count edge-count face-count euler-characteristic boundary-count manifold? orientable? genus reason) #:transparent) component : exact-nonnegative-integer? vertex-count : exact-nonnegative-integer? edge-count : exact-nonnegative-integer? face-count : exact-nonnegative-integer? euler-characteristic : exact-integer? boundary-count : exact-nonnegative-integer? manifold? : boolean? orientable? : boolean? genus : (or/c #f exact-nonnegative-integer?) reason : any/c
struct
(struct mesh3d-genus-report (components valid? reason) #:transparent) components : vector? valid? : boolean? reason : any/c
procedure
(mesh3d-euler-characteristic mesh-or-topology) → exact-integer?
mesh-or-topology : (or/c mesh3d? mesh-topology3d?)
procedure
(mesh3d-boundary-count mesh-or-topology)
→ exact-nonnegative-integer? mesh-or-topology : (or/c mesh3d? mesh-topology3d?)
procedure
(mesh3d-component-invariants mesh-or-topology) → vector?
mesh-or-topology : (or/c mesh3d? mesh-topology3d?)
procedure
(mesh3d-genus mesh-or-topology) → mesh3d-genus-report?
mesh-or-topology : (or/c mesh3d? mesh-topology3d?)
The triangle topology layer does not repair malformed input or turn a branching boundary graph into a fictitious loop.