geometry

package
v0.0.1 Latest Latest
Warning

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

Go to latest
Published: Jun 24, 2021 License: GPL-3.0 Imports: 6 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type AttributeName

type AttributeName string
var (
	AttributePos   AttributeName = "position"
	AttributeNor   AttributeName = "normal"
	AttributeUV    AttributeName = "uv"
	AttributeColor AttributeName = "color"
)

type BezierCurve

type BezierCurve struct {
	// contains filtered or unexported fields
}

func NewBezierCurve

func NewBezierCurve(cp ...*primitive.Vertex) *BezierCurve

func (*BezierCurve) At

func (bc *BezierCurve) At(t float64) math.Vector

type BufferAttribute

type BufferAttribute struct {
	Stride int
	Values []float64
}

type BufferedMesh

type BufferedMesh struct {
	math.TransformContext
	// 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) Faces

func (bm *BufferedMesh) Faces(iter func(primitive.Face, material.Material) bool)

func (*BufferedMesh) GetAttribute

func (bm *BufferedMesh) GetAttribute(name AttributeName) *BufferAttribute

func (*BufferedMesh) GetMaterial

func (bm *BufferedMesh) GetMaterial() material.Material

func (*BufferedMesh) Normalize

func (bm *BufferedMesh) Normalize()

func (*BufferedMesh) NumTriangles

func (bm *BufferedMesh) NumTriangles() uint64

func (*BufferedMesh) SetAttribute

func (bm *BufferedMesh) SetAttribute(name AttributeName, attribute *BufferAttribute)

func (*BufferedMesh) SetMaterial

func (bm *BufferedMesh) SetMaterial(mat material.Material)

func (*BufferedMesh) SetVertexBuffer

func (bm *BufferedMesh) SetVertexBuffer(vbo []int64)

func (*BufferedMesh) Type

func (bm *BufferedMesh) Type() object.Type

type HalfedgeMesh

type HalfedgeMesh struct {
}

type Mesh

type Mesh interface {
	object.Object

	AABB() primitive.AABB
	Normalize()
	SetMaterial(m material.Material)
	GetMaterial() material.Material
	NumTriangles() uint64
	Faces(func(f primitive.Face, m material.Material) bool)
}

func NewPlane

func NewPlane(width, height float64) Mesh

type QuadMesh

type QuadMesh struct {
}

type Ray

type Ray struct {
	Ori, Dir math.Vector
}

type TriangleMesh

type TriangleMesh struct {
}

type TriangleSoup

type TriangleSoup struct {
	math.TransformContext
	// contains filtered or unexported fields
}

TriangleSoup implements a triangular mesh.

func NewTriangleSoup

func NewTriangleSoup(ts []*primitive.Triangle) *TriangleSoup

NewTriangleSoup returns a triangular soup.

func (*TriangleSoup) AABB

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

func (*TriangleSoup) Center

func (m *TriangleSoup) Center() math.Vector

func (*TriangleSoup) Faces

func (f *TriangleSoup) Faces(iter func(primitive.Face, material.Material) bool)

func (*TriangleSoup) GetMaterial

func (f *TriangleSoup) GetMaterial() material.Material

func (*TriangleSoup) Normalize

func (m *TriangleSoup) Normalize()

Normalize rescales the mesh to the unit sphere centered at the origin.

func (*TriangleSoup) NumTriangles

func (f *TriangleSoup) NumTriangles() uint64

func (*TriangleSoup) Radius

func (m *TriangleSoup) Radius() float64

func (*TriangleSoup) SetMaterial

func (t *TriangleSoup) SetMaterial(mat material.Material)

func (*TriangleSoup) Type

func (f *TriangleSoup) Type() object.Type

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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