pack

package
v0.18.0 Latest Latest
Warning

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

Go to latest
Published: Jan 25, 2024 License: MIT Imports: 28 Imported by: 2

Documentation

Index

Constants

This section is empty.

Variables

View Source
var ErrFocused = fmt.Errorf("focused pipelines")

Functions

func BuildCubeTextureAsset added in v0.9.0

func BuildCubeTextureAsset(image *CubeImage, format asset.TexelFormat) *asset.CubeTexture

func BuildTwoDTextureAsset added in v0.3.0

func BuildTwoDTextureAsset(image *Image) *asset.TwoDTexture

func CubeUVToUVW

func CubeUVToUVW(side CubeSide, uv dprec.Vec2) dprec.Vec3

func UVWToEquirectangularUV

func UVWToEquirectangularUV(uvw dprec.Vec3) dprec.Vec2

Types

type Action

type Action interface {
	Run() error
}

type Animation added in v0.9.0

type Animation struct {
	Name      string
	StartTime float64
	EndTime   float64
	Bindings  []*AnimationBinding
}

type AnimationBinding added in v0.9.0

type AnimationBinding struct {
	Node                 *Node
	TranslationKeyframes []TranslationKeyframe
	RotationKeyframes    []RotationKeyframe
	ScaleKeyframes       []ScaleKeyframe
}

type Armature added in v0.9.0

type Armature struct {
	Joints []Joint
}

type BuildCubeImageAction

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

func (*BuildCubeImageAction) CubeImage

func (a *BuildCubeImageAction) CubeImage() *CubeImage

func (*BuildCubeImageAction) Describe

func (*BuildCubeImageAction) Describe() string

func (*BuildCubeImageAction) Run

func (a *BuildCubeImageAction) Run() error

type BuildCubeImageOption

type BuildCubeImageOption func(a *BuildCubeImageAction)

func WithBottomImage

func WithBottomImage(image ImageProvider) BuildCubeImageOption

func WithDimension

func WithDimension(dimension int) BuildCubeImageOption

func WithFrontImage

func WithFrontImage(image ImageProvider) BuildCubeImageOption

func WithLeftImage

func WithLeftImage(image ImageProvider) BuildCubeImageOption

func WithRearImage

func WithRearImage(image ImageProvider) BuildCubeImageOption

func WithRightImage

func WithRightImage(image ImageProvider) BuildCubeImageOption

func WithTopImage

func WithTopImage(image ImageProvider) BuildCubeImageOption

type BuildCubeSideFromEquirectangularAction

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

func (*BuildCubeSideFromEquirectangularAction) Describe

func (*BuildCubeSideFromEquirectangularAction) Image

func (*BuildCubeSideFromEquirectangularAction) Run

type BuildIrradianceCubeImageAction

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

func (*BuildIrradianceCubeImageAction) CubeImage

func (a *BuildIrradianceCubeImageAction) CubeImage() *CubeImage

func (*BuildIrradianceCubeImageAction) Describe

func (a *BuildIrradianceCubeImageAction) Describe() string

func (*BuildIrradianceCubeImageAction) Run

type BuildIrradianceCubeImageOption

type BuildIrradianceCubeImageOption func(a *BuildIrradianceCubeImageAction)

func WithSampleCount

func WithSampleCount(count int) BuildIrradianceCubeImageOption

type Color

type Color struct {
	R float64
	G float64
	B float64
	A float64
}

type CubeImage

type CubeImage struct {
	Dimension int
	Sides     [6]CubeImageSide
}

func BuildCube added in v0.3.0

func BuildCube(frontImg, rearImg, leftImg, rightImg, topImg, bottomImg *Image, dimension int) (*CubeImage, error)

func (*CubeImage) RGBA16FData added in v0.7.0

func (t *CubeImage) RGBA16FData(side CubeSide) []byte

func (*CubeImage) RGBA32FData

func (t *CubeImage) RGBA32FData(side CubeSide) []byte

func (*CubeImage) RGBA8Data

func (t *CubeImage) RGBA8Data(side CubeSide) []byte

func (*CubeImage) Scale

func (t *CubeImage) Scale(newDimension int) *CubeImage

func (*CubeImage) SideToImage

func (i *CubeImage) SideToImage(side CubeSide) *Image

func (CubeImage) TexelUVW

func (s CubeImage) TexelUVW(uvw dprec.Vec3) Color

type CubeImageProvider

type CubeImageProvider interface {
	CubeImage() *CubeImage
}

type CubeImageSide

type CubeImageSide struct {
	Texels [][]Color
}

func (CubeImageSide) Texel

func (s CubeImageSide) Texel(x, y int) Color

type CubeSide

type CubeSide int
const (
	CubeSideFront CubeSide = iota
	CubeSideRear
	CubeSideLeft
	CubeSideRight
	CubeSideTop
	CubeSideBottom
)

func UVWToCubeUV

func UVWToCubeUV(uvw dprec.Vec3) (CubeSide, dprec.Vec2)

type Described

type Described interface {
	Describe() string
}

type Image

type Image struct {
	Name   string
	Width  int
	Height int
	Texels [][]Color
}

func BuildCubeSideFromEquirectangular added in v0.3.0

func BuildCubeSideFromEquirectangular(srcImage *Image, side CubeSide) *Image

func BuildCubeSideFromEquirectangularScaled added in v0.3.0

func BuildCubeSideFromEquirectangularScaled(srcImage *Image, side CubeSide, dimension int) *Image

func BuildImageResource added in v0.3.0

func BuildImageResource(img image.Image) *Image

func ParseImageResource added in v0.9.0

func ParseImageResource(in io.Reader) (*Image, error)

func (*Image) BilinearTexel

func (i *Image) BilinearTexel(x, y float64) Color

func (*Image) IsSquare

func (i *Image) IsSquare() bool

func (*Image) RGBA32FData added in v0.3.0

func (i *Image) RGBA32FData() []byte

func (*Image) RGBA8Data

func (i *Image) RGBA8Data() []byte

func (*Image) Scale

func (i *Image) Scale(newWidth, newHeight int) *Image

func (*Image) Texel

func (i *Image) Texel(x, y int) Color

func (*Image) TexelUV

func (i *Image) TexelUV(uv dprec.Vec2) Color

type ImageProvider

type ImageProvider interface {
	Image() *Image
}

type Joint added in v0.9.0

type Joint struct {
	Node              *Node
	InverseBindMatrix sprec.Mat4
}

type Level

type Level struct {
	SkyboxTexture            string
	AmbientReflectionTexture string
	AmbientRefractionTexture string
	Materials                []*Material
	StaticEntities           []*LevelEntity
	StaticMeshes             []*MeshDefinition
	CollisionMeshes          []*LevelCollisionMesh
}

type LevelCollisionMesh

type LevelCollisionMesh struct {
	Triangles []Triangle
}

type LevelEntity

type LevelEntity struct {
	Name   string
	Model  string
	Matrix sprec.Mat4
}

type LevelProvider

type LevelProvider interface {
	Level() *Level
}

type LightDefinition added in v0.10.0

type LightDefinition struct {
	Name               string
	Type               LightType
	EmitRange          float64
	EmitOuterConeAngle dprec.Angle
	EmitInnerConeAngle dprec.Angle
	EmitColor          dprec.Vec3
}

type LightInstance added in v0.10.0

type LightInstance struct {
	Name       string
	Node       *Node
	Definition *LightDefinition
}

type LightType added in v0.10.0

type LightType string
const (
	LightTypePoint       LightType = "point"
	LightTypeSpot        LightType = "spot"
	LightTypeDirectional LightType = "directional"
)

type Material

type Material struct {
	Name                     string
	BackfaceCulling          bool
	AlphaTesting             bool
	AlphaThreshold           float32
	Blending                 bool
	Color                    sprec.Vec4
	ColorTexture             *TextureRef
	Metallic                 float32
	Roughness                float32
	MetallicRoughnessTexture *TextureRef
	NormalScale              float32
	NormalTexture            *TextureRef
	Properties               Properties
}

func (Material) HasSkipCollision added in v0.10.0

func (m Material) HasSkipCollision() bool

func (Material) IsInvisible added in v0.10.0

func (m Material) IsInvisible() bool

type MeshDefinition added in v0.9.0

type MeshDefinition struct {
	Name         string
	VertexLayout VertexLayout
	Vertices     []Vertex
	Indices      []int
	Fragments    []MeshFragment
	Properties   Properties
}

func (MeshDefinition) HasCollision added in v0.10.0

func (d MeshDefinition) HasCollision() bool

type MeshFragment added in v0.9.0

type MeshFragment struct {
	Primitive   Primitive
	IndexOffset int
	IndexCount  int
	Material    *Material
}

type MeshInstance added in v0.9.0

type MeshInstance struct {
	Name       string
	Node       *Node
	Armature   *Armature
	Definition *MeshDefinition
}

func (MeshInstance) HasCollision added in v0.9.0

func (i MeshInstance) HasCollision() bool

type Model

type Model struct {
	RootNodes        []*Node
	Animations       []*Animation
	Armatures        []*Armature
	Materials        []*Material
	MeshDefinitions  []*MeshDefinition
	MeshInstances    []*MeshInstance
	LightDefinitions []*LightDefinition
	LightInstances   []*LightInstance
	Textures         []*Image
	Properties       Properties
}

func BuildModelResource added in v0.16.0

func BuildModelResource(gltfDoc *gltf.Document) (*Model, error)

func ParseGLTFResource added in v0.16.0

func ParseGLTFResource(in io.Reader) (*Model, error)

type ModelProvider

type ModelProvider interface {
	Model() *Model
}

type Node

type Node struct {
	Name        string
	Translation dprec.Vec3
	Scale       dprec.Vec3
	Rotation    dprec.Quat
	Children    []*Node
	Properties  Properties
}

type OpenGLTFResourceAction

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

func (*OpenGLTFResourceAction) Describe

func (a *OpenGLTFResourceAction) Describe() string

func (*OpenGLTFResourceAction) Model

func (a *OpenGLTFResourceAction) Model() *Model

func (*OpenGLTFResourceAction) Run

func (a *OpenGLTFResourceAction) Run() error

type OpenImageResourceAction

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

func (*OpenImageResourceAction) Describe

func (a *OpenImageResourceAction) Describe() string

func (*OpenImageResourceAction) Image

func (a *OpenImageResourceAction) Image() *Image

func (*OpenImageResourceAction) Run

func (a *OpenImageResourceAction) Run() error

type OpenLevelResourceAction

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

func (*OpenLevelResourceAction) Describe

func (a *OpenLevelResourceAction) Describe() string

func (*OpenLevelResourceAction) Level

func (a *OpenLevelResourceAction) Level() *Level

func (*OpenLevelResourceAction) Run

func (a *OpenLevelResourceAction) Run() error

type Packer

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

func NewPacker

func NewPacker(registry asset.Registry) *Packer

func (*Packer) FPipeline

func (p *Packer) FPipeline(fn func(*Pipeline))

func (*Packer) Pipeline

func (p *Packer) Pipeline(fn func(*Pipeline))

func (*Packer) RunParallel

func (p *Packer) RunParallel() error

func (*Packer) RunSerial

func (p *Packer) RunSerial() error

type Pipeline

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

func (*Pipeline) BuildCubeImage

func (p *Pipeline) BuildCubeImage(opts ...BuildCubeImageOption) *BuildCubeImageAction

func (*Pipeline) BuildCubeSideFromEquirectangular

func (p *Pipeline) BuildCubeSideFromEquirectangular(side CubeSide, image ImageProvider) *BuildCubeSideFromEquirectangularAction

func (*Pipeline) BuildIrradianceCubeImage

func (p *Pipeline) BuildIrradianceCubeImage(image CubeImageProvider, opts ...BuildIrradianceCubeImageOption) *BuildIrradianceCubeImageAction

func (*Pipeline) OpenGLTFResource

func (p *Pipeline) OpenGLTFResource(uri string) *OpenGLTFResourceAction

func (*Pipeline) OpenImageResource

func (p *Pipeline) OpenImageResource(uri string) *OpenImageResourceAction

func (*Pipeline) OpenLevelResource

func (p *Pipeline) OpenLevelResource(uri string) *OpenLevelResourceAction

func (*Pipeline) SaveCubeTextureAsset

func (p *Pipeline) SaveCubeTextureAsset(resource asset.Resource, image CubeImageProvider, opts ...SaveCubeTextureOption) *SaveCubeTextureAction

func (*Pipeline) SaveLevelAsset

func (p *Pipeline) SaveLevelAsset(resource asset.Resource, level LevelProvider) *SaveLevelAssetAction

func (*Pipeline) SaveModelAsset

func (p *Pipeline) SaveModelAsset(resource asset.Resource, model ModelProvider, opts ...SaveModelAssetOption) *SaveModelAssetAction

func (*Pipeline) SaveTwoDTextureAsset

func (p *Pipeline) SaveTwoDTextureAsset(resource asset.Resource, image ImageProvider) *SaveTwoDTextureAssetAction

func (*Pipeline) ScaleCubeImage

func (p *Pipeline) ScaleCubeImage(image CubeImageProvider, dimension int) *ScaleCubeImageAction

type Primitive

type Primitive int
const (
	PrimitivePoints Primitive = iota
	PrimitiveLines
	PrimitiveLineStrip
	PrimitiveLineLoop
	PrimitiveTriangles
	PrimitiveTriangleStrip
	PrimitiveTriangleFan
)

type Properties added in v0.10.0

type Properties map[string]string

func (Properties) HasCollision added in v0.10.0

func (p Properties) HasCollision() bool

func (Properties) HasSkipCollision added in v0.10.0

func (p Properties) HasSkipCollision() bool

func (Properties) IsInvisible added in v0.10.0

func (p Properties) IsInvisible() bool

func (Properties) IsSet added in v0.10.0

func (p Properties) IsSet(key string) bool

type RotationKeyframe added in v0.9.0

type RotationKeyframe struct {
	Timestamp float64
	Rotation  dprec.Quat
}

type SaveCubeTextureAction

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

func (*SaveCubeTextureAction) Describe

func (a *SaveCubeTextureAction) Describe() string

func (*SaveCubeTextureAction) Run

func (a *SaveCubeTextureAction) Run() error

type SaveCubeTextureOption

type SaveCubeTextureOption func(a *SaveCubeTextureAction)

func WithFormat

func WithFormat(format asset.TexelFormat) SaveCubeTextureOption

type SaveLevelAssetAction

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

func (*SaveLevelAssetAction) Describe

func (a *SaveLevelAssetAction) Describe() string

func (*SaveLevelAssetAction) Run

func (a *SaveLevelAssetAction) Run() error

type SaveModelAssetAction

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

func (*SaveModelAssetAction) Describe

func (a *SaveModelAssetAction) Describe() string

func (*SaveModelAssetAction) Run

func (a *SaveModelAssetAction) Run() error

type SaveModelAssetOption added in v0.9.0

type SaveModelAssetOption func(a *SaveModelAssetAction)

func WithCollisionMesh added in v0.9.0

func WithCollisionMesh(collisionMesh bool) SaveModelAssetOption

type SaveTwoDTextureAssetAction

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

func (*SaveTwoDTextureAssetAction) Describe

func (a *SaveTwoDTextureAssetAction) Describe() string

func (*SaveTwoDTextureAssetAction) Run

type ScaleCubeImageAction

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

func (*ScaleCubeImageAction) CubeImage

func (a *ScaleCubeImageAction) CubeImage() *CubeImage

func (*ScaleCubeImageAction) Describe

func (a *ScaleCubeImageAction) Describe() string

func (*ScaleCubeImageAction) Run

func (a *ScaleCubeImageAction) Run() error

type ScaleKeyframe added in v0.9.0

type ScaleKeyframe struct {
	Timestamp float64
	Scale     dprec.Vec3
}

type TextureRef added in v0.9.0

type TextureRef struct {
	TextureID    string
	TextureIndex int
}

type TranslationKeyframe added in v0.9.0

type TranslationKeyframe struct {
	Timestamp   float64
	Translation dprec.Vec3
}

type Triangle

type Triangle struct {
	A sprec.Vec3
	B sprec.Vec3
	C sprec.Vec3
}

type Vertex added in v0.8.0

type Vertex struct {
	Coord    sprec.Vec3
	Normal   sprec.Vec3
	Tangent  sprec.Vec3
	TexCoord sprec.Vec2
	Color    sprec.Vec4
	Weights  sprec.Vec4
	Joints   [4]uint8
}

type VertexLayout added in v0.8.0

type VertexLayout struct {
	HasCoords    bool
	HasNormals   bool
	HasTangents  bool
	HasTexCoords bool
	HasColors    bool
	HasWeights   bool
	HasJoints    bool
}

Jump to

Keyboard shortcuts

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