collada

package
v0.0.0-...-a112006 Latest Latest
Warning

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

Go to latest
Published: Mar 15, 2017 License: BSD-2-Clause Imports: 17 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func DumpColorOrTexture

func DumpColorOrTexture(name string, v interface{}, out io.Writer, indent int)

func DumpFloatOrParam

func DumpFloatOrParam(name string, v interface{}, out io.Writer, indent int)

Types

type Accessor

type Accessor struct {
	Source string
	Count  int
	Stride int
	Params []Param
}

Accessor

func (*Accessor) Dump

func (ac *Accessor) Dump(out io.Writer, indent int)

type ActionFunc

type ActionFunc func(at *AnimationTarget, v float32)

ActionFunc is the type for all functions that execute an specific parameter animation

type Ambient

type Ambient struct {
	Color LightColor
}

Ambient

func (*Ambient) Dump

func (amb *Ambient) Dump(out io.Writer, indent int)

type Animation

type Animation struct {
	Id        string
	Name      string
	Animation []*Animation
	Source    []*Source
	Sampler   []*Sampler
	Channel   []*Channel
}

Animation

func (*Animation) Dump

func (an *Animation) Dump(out io.Writer, indent int)

type AnimationTarget

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

AnimationTarget contains all animation channels for an specific target node

func (*AnimationTarget) Reset

func (at *AnimationTarget) Reset()

Reset resets the animation from the beginning

func (*AnimationTarget) SetLoop

func (at *AnimationTarget) SetLoop(loop bool)

SetLoop sets the state of the animation loop flag

func (*AnimationTarget) SetStart

func (at *AnimationTarget) SetStart(v float32)

func (*AnimationTarget) Update

func (at *AnimationTarget) Update(delta float32) bool

Update interpolates the specified input value for each animation target channel and executes its corresponding action function. Returns true if the input value is inside the key frames ranges or false otherwise.

type Asset

type Asset struct {
	Contributor Contributor
	Created     string
	Modified    string
	UpAxis      string
}

Asset

func (*Asset) Dump

func (a *Asset) Dump(out io.Writer, indent int)

type Bind

type Bind struct {
	Semantic string
	Target   string
}

Bind

type BindMaterial

type BindMaterial struct {
	Params          []Param
	TechniqueCommon struct {
		InstanceMaterial []*InstanceMaterial
	}
}

BindMaterial

func (*BindMaterial) Dump

func (bm *BindMaterial) Dump(out io.Writer, indent int)

type BindVertexInput

type BindVertexInput struct {
	Semantic      string
	InputSemantic string
	InputSet      uint
}

BindVertexInput

func (*BindVertexInput) Dump

func (bvi *BindVertexInput) Dump(out io.Writer, indent int)

type Blinn

type Blinn struct {
	Emission          interface{}
	Ambient           interface{}
	Diffuse           interface{}
	Specular          interface{}
	Shininess         interface{}
	Reflective        interface{}
	Reflectivity      interface{}
	Transparent       interface{}
	Transparency      interface{}
	IndexOfRefraction interface{}
}

Blinn

func (*Blinn) Dump

func (bl *Blinn) Dump(out io.Writer, indent int)

type Channel

type Channel struct {
	Source string
	Target string
}

Channel

func (*Channel) Dump

func (ch *Channel) Dump(out io.Writer, indent int)

type ChannelInstance

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

A ChannelInstance associates an animation parameter channel to an interpolation sampler

type Collada

type Collada struct {
	Version             string
	Asset               Asset
	LibraryAnimations   *LibraryAnimations
	LibraryImages       *LibraryImages
	LibraryLights       *LibraryLights
	LibraryEffects      *LibraryEffects
	LibraryMaterials    *LibraryMaterials
	LibraryGeometries   *LibraryGeometries
	LibraryVisualScenes *LibraryVisualScenes
	Scene               *Scene
}

Collada DOM root

type Color

type Color struct {
	Sid  string
	Data [4]float32
}

Color

func (*Color) Dump

func (c *Color) Dump(out io.Writer, indent int)

type Constant

type Constant struct {
	Emission          interface{}
	Reflective        interface{}
	Reflectivity      interface{}
	Transparent       interface{}
	Transparency      interface{}
	IndexOfRefraction interface{}
}

Constant

type Contributor

type Contributor struct {
	Author        string
	AuthorEmail   string
	AuthorWebsite string
	AuthoringTool string
	Comments      string
	Copyright     string
	SourceData    string
}

Contributor

func (*Contributor) Dump

func (c *Contributor) Dump(out io.Writer, indent int)

type Decoder

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

Decoder contains all decoded data from collada file

func Decode

func Decode(filepath string) (*Decoder, error)

Decode decodes the specified collada file returning a decoder object and an error.

func DecodeReader

func DecodeReader(f io.Reader) (*Decoder, error)

DecodeReader decodes the specified collada reader returning a decoder object and an error.

func (*Decoder) Dump

func (d *Decoder) Dump(out io.Writer, indent int)

Dump writes to the specified writer a text dump of the decoded Collada DOM to aid debugging.

func (*Decoder) GetGeometry

func (d *Decoder) GetGeometry(id string) (geometry.IGeometry, uint32, error)

GetGeometry returns a pointer to an instance of the geometry with the specified id in the Collada document, its primitive type and an error. If no previous instance of the geometry was found the geometry is created

func (*Decoder) GetMaterial

func (d *Decoder) GetMaterial(id string) (material.IMaterial, error)

GetMaterial returns a pointer to an instance of the material with the specified id in the Collada document and an error. If no previous instance of the material was found it is created.

func (*Decoder) GetTexture2D

func (d *Decoder) GetTexture2D(id string) (*texture.Texture2D, error)

GetTexture2D returns a pointer to an instance of the Texture2D with the specified id in the Collada document and an error. If no previous instance of the texture was found it is created.

func (*Decoder) NewAnimationTargets

func (d *Decoder) NewAnimationTargets(scene core.INode) (map[string]*AnimationTarget, error)

NewAnimationTargets creates and returns a map of all animation targets contained in the decoded Collada document and for the previously decoded scene. The map is indexed by the node loaderID.

func (*Decoder) NewGeometry

func (d *Decoder) NewGeometry(id string) (geometry.IGeometry, uint32, error)

NewGeometry creates and returns a pointer to a new instance of the geometry with the specified id in the Collada document, its primitive type and and error.

func (*Decoder) NewMaterial

func (d *Decoder) NewMaterial(id string) (material.IMaterial, error)

NewMaterial creates and returns a pointer to a new material from the specified material id/url in the dom

func (*Decoder) NewScene

func (d *Decoder) NewScene() (core.INode, error)

func (*Decoder) NewTexture2D

func (d *Decoder) NewTexture2D(id string) (*texture.Texture2D, error)

NewTexture2D creates and returns a pointer to a new Texture2D from the specified sampler2D id/url in the dom

func (*Decoder) SetDirImages

func (d *Decoder) SetDirImages(path string)

type Directional

type Directional struct {
	Color LightColor
}

Directional

func (*Directional) Dump

func (dir *Directional) Dump(out io.Writer, indent int)

type Effect

type Effect struct {
	Id      string
	Name    string
	Asset   *Asset
	Profile []interface{}
}

Effect

func (*Effect) Dump

func (ef *Effect) Dump(out io.Writer, indent int)

type Float

type Float struct {
	Sid  string
	Data float32
}

Float

func (*Float) Dump

func (f *Float) Dump(out io.Writer, indent int)

type FloatArray

type FloatArray struct {
	Id    string
	Count int
	Data  []float32
}

FloatArray

func (*FloatArray) Dump

func (fa *FloatArray) Dump(out io.Writer, indent int)

type FloatValue

type FloatValue struct {
	Sid   string
	Value float32
}

FloatValue

func (*FloatValue) Dump

func (fv *FloatValue) Dump(name string, out io.Writer, indent int)

type Geometry

type Geometry struct {
	Id               string      // Geometry id (optional)
	Name             string      // Geometry name (optional)
	GeometricElement interface{} // Geometry type object (Mesh|others)
}

Geometry

func (*Geometry) Dump

func (g *Geometry) Dump(out io.Writer, indent int)

type Image

type Image struct {
	Id          string
	Name        string
	Format      string
	Height      uint
	Width       uint
	Depth       uint
	ImageSource interface{}
}

Image

func (*Image) Dump

func (img *Image) Dump(out io.Writer, indent int)

type InitFrom

type InitFrom struct {
	Uri string
}

func (*InitFrom) Dump

func (initf *InitFrom) Dump(out io.Writer, indent int)

type Input

type Input struct {
	Semantic string
	Source   string // source URL
}

Input

func (*Input) Dump

func (i *Input) Dump(out io.Writer, indent int)

type InputShared

type InputShared struct {
	Offset   int
	Semantic string
	Source   string // source URL
	Set      int
}

InputShared

func (*InputShared) Dump

func (is *InputShared) Dump(out io.Writer, indent int)

type InstanceEffect

type InstanceEffect struct {
	Sid  string
	Name string
	Url  string
}

InstanceEffect

func (*InstanceEffect) Dump

func (ie *InstanceEffect) Dump(out io.Writer, indent int)

type InstanceGeometry

type InstanceGeometry struct {
	Url          string // Geometry URL (required) references the ID of a Geometry
	Name         string // name of this element (optional)
	BindMaterial *BindMaterial
}

InstanceGeometry

func (*InstanceGeometry) Dump

func (ig *InstanceGeometry) Dump(out io.Writer, indent int)

type InstanceMaterial

type InstanceMaterial struct {
	Sid             string
	Name            string
	Target          string
	Symbol          string
	Bind            []Bind
	BindVertexInput []BindVertexInput
}

InstanceMaterial

func (*InstanceMaterial) Dump

func (im *InstanceMaterial) Dump(out io.Writer, indent int)

type InstanceVisualScene

type InstanceVisualScene struct {
	Sid  string
	Name string
	Url  string
}

InstanceVisualScene

func (*InstanceVisualScene) Dump

func (ivs *InstanceVisualScene) Dump(out io.Writer, indent int)

type Lambert

type Lambert struct {
	Emission          interface{}
	Ambient           interface{}
	Diffuse           interface{}
	Reflective        interface{}
	Reflectivity      interface{}
	Transparent       interface{}
	Transparency      interface{}
	IndexOfRefraction interface{}
}

Lambert

type LibraryAnimations

type LibraryAnimations struct {
	Id        string
	Name      string
	Asset     *Asset
	Animation []*Animation
}

Library Animations

func (*LibraryAnimations) Dump

func (la *LibraryAnimations) Dump(out io.Writer, indent int)

type LibraryEffects

type LibraryEffects struct {
	Id     string
	Name   string
	Asset  *Asset
	Effect []*Effect
}

Library Effects

func (*LibraryEffects) Dump

func (le *LibraryEffects) Dump(out io.Writer, indent int)

type LibraryGeometries

type LibraryGeometries struct {
	Asset    *Asset
	Geometry []*Geometry
}

Library Geometries

func (*LibraryGeometries) Dump

func (lg *LibraryGeometries) Dump(out io.Writer, indent int)

type LibraryImages

type LibraryImages struct {
	Id    string
	Name  string
	Asset *Asset
	Image []*Image
}

Library Images

func (*LibraryImages) Dump

func (li *LibraryImages) Dump(out io.Writer, indent int)

type LibraryLights

type LibraryLights struct {
	Id    string
	Name  string
	Asset *Asset
	Light []*Light
}

Library Lights

func (*LibraryLights) Dump

func (ll *LibraryLights) Dump(out io.Writer, indent int)

type LibraryMaterials

type LibraryMaterials struct {
	Id       string
	Name     string
	Asset    *Asset
	Material []*Material
}

Library Materials

func (*LibraryMaterials) Dump

func (lm *LibraryMaterials) Dump(out io.Writer, indent int)

type LibraryVisualScenes

type LibraryVisualScenes struct {
	Asset       *Asset
	VisualScene []*VisualScene
}

Library Visual Scenes

func (*LibraryVisualScenes) Dump

func (lv *LibraryVisualScenes) Dump(out io.Writer, indent int)

type Light

type Light struct {
	Id              string
	Name            string
	TechniqueCommon struct {
		Type interface{}
	}
}

Light

func (*Light) Dump

func (li *Light) Dump(out io.Writer, indent int)

type LightColor

type LightColor struct {
	Sid  string
	Data [3]float32
}

LightColor

func (*LightColor) Dump

func (lc *LightColor) Dump(out io.Writer, indent int)

type LineStrips

type LineStrips struct {
	Name     string
	Count    int
	Material string
	Input    []InputShared
	P        []int
}

LineStrips

type Lines

type Lines struct {
	Name     string
	Count    int
	Material string
	Input    []InputShared
	P        []int
}

Lines

func (*Lines) Dump

func (ln *Lines) Dump(out io.Writer, indent int)

type Material

type Material struct {
	Id             string
	Name           string
	Asset          *Asset
	InstanceEffect InstanceEffect
}

Material

func (*Material) Dump

func (mat *Material) Dump(out io.Writer, indent int)

type Matrix

type Matrix struct {
	Sid  string
	Data [16]float32
}

Matrix

func (*Matrix) Dump

func (m *Matrix) Dump(out io.Writer, indent int)

type Mesh

type Mesh struct {
	Source            []*Source     // One or more sources Sources
	Vertices          Vertices      // Vertices positions
	PrimitiveElements []interface{} // Geometry primitives (polylist|others)
}

Mesh

func (*Mesh) Dump

func (m *Mesh) Dump(out io.Writer, indent int)

type NameArray

type NameArray struct {
	Id    string
	Name  string
	Count int
	Data  []string
}

NameArray

func (*NameArray) Dump

func (na *NameArray) Dump(out io.Writer, indent int)

type Newparam

type Newparam struct {
	Sid           string
	Semantic      string
	ParameterType interface{}
}

Newparam

func (*Newparam) Dump

func (np *Newparam) Dump(out io.Writer, indent int)

type Node

type Node struct {
	Id                     string
	Name                   string
	Sid                    string
	Type                   string
	Layer                  []string
	TransformationElements []interface{} // Node instance type (may be nil)
	Instance               interface{}
	Node                   []*Node // Array of children nodes
}

Base Node is embedded in each node instance

func (*Node) Dump

func (n *Node) Dump(out io.Writer, indent int)

type Param

type Param struct {
	Name string
	Type string
}

Param for <bind_material> and <accessor>

func (*Param) Dump

func (p *Param) Dump(out io.Writer, indent int)

type Phong

type Phong struct {
	Emission          interface{}
	Ambient           interface{}
	Diffuse           interface{}
	Specular          interface{}
	Shininess         interface{}
	Reflective        interface{}
	Reflectivity      interface{}
	Transparent       interface{}
	Transparency      interface{}
	IndexOfRefraction interface{}
}

Phong

func (*Phong) Dump

func (ph *Phong) Dump(out io.Writer, indent int)

type Point

type Point struct {
	Color                LightColor
	ConstantAttenuation  *FloatValue
	LinearAttenuation    *FloatValue
	QuadraticAttenuation *FloatValue
}

Point

func (*Point) Dump

func (pl *Point) Dump(out io.Writer, indent int)

type Polylist

type Polylist struct {
	Name     string
	Count    int
	Material string
	Input    []InputShared
	Vcount   []int
	P        []int
}

Polylist

func (*Polylist) Dump

func (pl *Polylist) Dump(out io.Writer, indent int)

type ProfileCOMMON

type ProfileCOMMON struct {
	Id        string
	Asset     *Asset
	Newparam  []*Newparam
	Technique struct {
		Id            string
		Sid           string
		Asset         *Asset
		ShaderElement interface{} // Blinn|Constant|Lambert|Phong
	}
}

Profile COMMON

func (*ProfileCOMMON) Dump

func (pc *ProfileCOMMON) Dump(out io.Writer, indent int)

type Rotate

type Rotate struct {
	Sid  string
	Data [4]float32
}

Rotate

func (*Rotate) Dump

func (r *Rotate) Dump(out io.Writer, indent int)

type Sampler

type Sampler struct {
	Id    string
	Input []Input // One or more

}

Sampler

func (*Sampler) Dump

func (sp *Sampler) Dump(out io.Writer, indent int)

type Sampler2D

type Sampler2D struct {
	Source string
}

Sampler2D

func (*Sampler2D) Dump

func (sp *Sampler2D) Dump(out io.Writer, indent int)

type SamplerInstance

type SamplerInstance struct {
	Input      []float32 // Input keys (usually time)
	Output     []float32 // Outputs values for the keys
	Interp     []string  // Names of interpolation functions for each key frame
	InTangent  []float32 // Origin tangents for Bezier interpolation
	OutTangent []float32 // End tangents for Bezier interpolation
}

SamplerInstance specifies the input key frames, output values for these key frames and interpolation information. It can be shared by more than one animation

func NewSamplerInstance

func NewSamplerInstance(ca *Animation, uri string) (*SamplerInstance, error)

NewSampler creates and returns a pointer to a new SamplerInstance built with data from the specified Collada animation and URI

func (*SamplerInstance) Interpolate

func (si *SamplerInstance) Interpolate(inp float32) (float32, bool)

Interpolate returns the interpolated output and its validity for this sampler for the specified input.

type Scale

type Scale struct {
	Sid  string
	Data [3]float32
}

Scale

func (*Scale) Dump

func (s *Scale) Dump(out io.Writer, indent int)

type Scene

type Scene struct {
	InstanceVisualScene *InstanceVisualScene
}

Scene

func (*Scene) Dump

func (s *Scene) Dump(out io.Writer, indent int)

type Source

type Source struct {
	Id              string      // Source id
	Name            string      // Source name
	ArrayElement    interface{} // Array element (FloatArray|others)
	TechniqueCommon struct {
		Accessor Accessor
	}
}

Source

func (*Source) Dump

func (s *Source) Dump(out io.Writer, indent int)

type Spot

type Spot struct {
	Color                LightColor
	ConstantAttenuation  *FloatValue
	LinearAttenuation    *FloatValue
	QuadraticAttenuation *FloatValue
	FalloffAngle         *FloatValue
	FalloffExponent      *FloatValue
}

Spot

func (*Spot) Dump

func (sl *Spot) Dump(out io.Writer, indent int)

type Surface

type Surface struct {
	Type string
	Init interface{}
}

Surface

func (*Surface) Dump

func (sf *Surface) Dump(out io.Writer, indent int)

type Texture

type Texture struct {
	Texture  string
	Texcoord string
}

Texture

func (*Texture) Dump

func (t *Texture) Dump(out io.Writer, indent int)

type Translate

type Translate struct {
	Sid  string
	Data [3]float32
}

Translate

func (*Translate) Dump

func (t *Translate) Dump(out io.Writer, indent int)

type Triangles

type Triangles struct {
	Name     string
	Count    int
	Material string
	Input    []InputShared
	P        []int
}

Triangles

type Trifans

type Trifans struct {
	Name     string
	Count    int
	Material string
	Input    []InputShared
	P        []int
}

Trifans

type Tristrips

type Tristrips struct {
	Name     string
	Count    int
	Material string
	Input    []InputShared
	P        []int
}

Tristrips

type Vertices

type Vertices struct {
	Id    string
	Name  string
	Input []Input
}

Vertices

func (*Vertices) Dump

func (v *Vertices) Dump(out io.Writer, indent int)

type VisualScene

type VisualScene struct {
	Id   string
	Name string
	Node []*Node // Array of nodes
}

A visual scene contain all the nodes of a visual scene

func (*VisualScene) Dump

func (vs *VisualScene) Dump(out io.Writer, indent int)

Jump to

Keyboard shortcuts

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