Documentation ¶
Overview ¶
Package mesh represents polygon based mesh objects.
Note that a mesh object cannot be transformed unless it is turned to a geometry.Geometry object. See package geometry for more info.
Index ¶
- func NewRandomAs[T Mesh](numTri int) (m T)
- type AttribType
- type BufferAttribute
- type BufferedMesh
- func (bm *BufferedMesh) AABB() primitive.AABB
- func (bm *BufferedMesh) GetAttribute(name AttribType) *BufferAttribute
- func (bm *BufferedMesh) IndexBuffer() buffer.IndexBuffer
- func (bm *BufferedMesh) SetAttribute(name AttribType, attribute *BufferAttribute)
- func (bm *BufferedMesh) SetIndexBuffer(ibo buffer.IndexBuffer)
- func (bm *BufferedMesh) Triangles() []*primitive.Triangle
- func (bm *BufferedMesh) VertexBuffer() buffer.VertexBuffer
- type EditMesh
- type Mesh
- type PolygonMesh
- type QuadMesh
- type TriangleMesh
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func NewRandomAs ¶
Types ¶
type AttribType ¶
type AttribType int
const ( AttribUndefined AttribType = iota AttribPosition AttribNormal AttriTexcoord AttribColor )
func (AttribType) String ¶
func (a AttribType) String() string
type BufferAttribute ¶
func NewBufferAttrib ¶
func NewBufferAttrib(stride int, values []float32) *BufferAttribute
type BufferedMesh ¶
type BufferedMesh struct {
// contains filtered or unexported fields
}
BufferedMesh is a dense representation of a surface geometry and implements the Mesh interface.
func NewBufferedMesh ¶
func NewBufferedMesh() *BufferedMesh
func (*BufferedMesh) AABB ¶
func (bm *BufferedMesh) AABB() primitive.AABB
func (*BufferedMesh) GetAttribute ¶
func (bm *BufferedMesh) GetAttribute(name AttribType) *BufferAttribute
func (*BufferedMesh) IndexBuffer ¶
func (bm *BufferedMesh) IndexBuffer() buffer.IndexBuffer
func (*BufferedMesh) SetAttribute ¶
func (bm *BufferedMesh) SetAttribute(name AttribType, attribute *BufferAttribute)
func (*BufferedMesh) SetIndexBuffer ¶
func (bm *BufferedMesh) SetIndexBuffer(ibo buffer.IndexBuffer)
func (*BufferedMesh) Triangles ¶
func (bm *BufferedMesh) Triangles() []*primitive.Triangle
func (*BufferedMesh) VertexBuffer ¶
func (bm *BufferedMesh) VertexBuffer() buffer.VertexBuffer
type EditMesh ¶
type EditMesh struct { }
EditMesh implements Radial Edge Structure that permits convinient mesh editing.
Ref: Weiler, K.J. : The Radial Edge Structure: A Topological Representation for Non-Manifold Geometric Modeling. in Geometric Modeling for CAD Applications, Springer Verlag, May 1986.
func NewEditMesh ¶
func (*EditMesh) IndexBuffer ¶
func (m *EditMesh) IndexBuffer() buffer.IndexBuffer
func (*EditMesh) VertexBuffer ¶
func (m *EditMesh) VertexBuffer() buffer.VertexBuffer
type PolygonMesh ¶
type PolygonMesh struct {
// contains filtered or unexported fields
}
PolygonMesh is a polygon based mesh structure that can contain arbitrary shaped faces, such as triangle and quad mixed mesh.
func NewPolygonMesh ¶
func NewPolygonMesh(faces []primitive.Face) *PolygonMesh
func (*PolygonMesh) AABB ¶
func (m *PolygonMesh) AABB() primitive.AABB
func (*PolygonMesh) Triangles ¶
func (m *PolygonMesh) Triangles() []*primitive.Triangle
type QuadMesh ¶
type QuadMesh struct {
// contains filtered or unexported fields
}
func NewQuadMesh ¶
type TriangleMesh ¶
type TriangleMesh struct {
// contains filtered or unexported fields
}
TriangleMesh implements a triangular mesh.
func NewTriangleMesh ¶
func NewTriangleMesh(tris []*primitive.Triangle) *TriangleMesh
NewTriangleMesh returns a triangular soup.
func (*TriangleMesh) AABB ¶
func (m *TriangleMesh) AABB() primitive.AABB
func (*TriangleMesh) Radius ¶
func (m *TriangleMesh) Radius() float32
func (*TriangleMesh) Triangles ¶
func (m *TriangleMesh) Triangles() []*primitive.Triangle