mesh

package
v0.0.2-0...-24379f4 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 20, 2022 License: GPL-3.0 Imports: 5 Imported by: 0

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

Constants

This section is empty.

Variables

This section is empty.

Functions

func NewRandomAs

func NewRandomAs[T Mesh](numTri int) (m T)

Types

type AttribType

type AttribType int
const (
	AttribUndefined AttribType = iota
	AttribPosition
	AttribNormal
	AttriTexcoord
	AttribColor
)

func (AttribType) String

func (a AttribType) String() string

type BufferAttribute

type BufferAttribute struct {
	Stride int
	Values []float32
}

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 NewEditMesh(faces []primitive.Face) *EditMesh

func (*EditMesh) AABB

func (m *EditMesh) AABB() primitive.AABB

func (*EditMesh) IndexBuffer

func (m *EditMesh) IndexBuffer() buffer.IndexBuffer

func (*EditMesh) Normalize

func (m *EditMesh) Normalize()

func (*EditMesh) Triangles

func (m *EditMesh) Triangles() []*primitive.Triangle

func (*EditMesh) VertexBuffer

func (m *EditMesh) VertexBuffer() buffer.VertexBuffer

type Mesh

type Mesh interface {
	AABB() primitive.AABB
	Triangles() []*primitive.Triangle
}

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

func NewQuadMesh(quads []*primitive.Quad) *QuadMesh

func (*QuadMesh) AABB

func (m *QuadMesh) AABB() primitive.AABB

func (*QuadMesh) Triangles

func (m *QuadMesh) Triangles() []*primitive.Triangle

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) Center

func (m *TriangleMesh) Center() math.Vec3[float32]

func (*TriangleMesh) Radius

func (m *TriangleMesh) Radius() float32

func (*TriangleMesh) Triangles

func (m *TriangleMesh) Triangles() []*primitive.Triangle

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL