obj

package
v0.0.0-...-b8d9494 Latest Latest
Warning

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

Go to latest
Published: May 13, 2021 License: BSD-3-Clause, BSD-2-Clause Imports: 18 Imported by: 2

Documentation

Overview

Package obj

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Decoder

type Decoder struct {
	Objects   []Object             // decoded objects
	Matlib    string               // name of the material lib
	Materials map[string]*Material // maps material name to object
	Vertices  math32.ArrayF32      // vertices positions array
	Normals   math32.ArrayF32      // vertices normals
	Uvs       math32.ArrayF32      // vertices texture coordinates
	Warnings  []string             // warning messages
	// contains filtered or unexported fields
}

Decoder contains all decoded data from the obj and mtl files

func Decode

func Decode(objpath string, mtlpath string) (*Decoder, error)

Decode decodes the specified obj and mtl files returning a decoder object and an error.

func DecodeReader

func DecodeReader(objreader, mtlreader io.Reader, path string, files map[string][]byte) (*Decoder, error)

DecodeReader decodes the specified obj and mtl readers returning a decoder object and an error.

func (*Decoder) NewGeometry

func (dec *Decoder) NewGeometry(obj *Object) (*geometry.Geometry, error)

NewGeometry generates and returns a geometry from the specified object

func (*Decoder) NewGroup

func (dec *Decoder) NewGroup() (*core.Node, error)

NewGroup creates and returns a group containing as children meshes with all the decoded objects. A group is returned even if there is only one object decoded.

func (*Decoder) NewMesh

func (dec *Decoder) NewMesh(obj *Object) (*graphic.Mesh, error)

NewMesh creates and returns a mesh from an specified decoded object.

type Face

type Face struct {
	Vertices []int  // Indices to the face vertices
	Uvs      []int  // Indices to the face UV coordinates
	Normals  []int  // Indices to the face normals
	Material string // Material name
	Smooth   bool   // Smooth face
}

Face contains all information about an object face

type Material

type Material struct {
	Name       string       // Material name
	Illum      int          // Illumination model
	Opacity    float32      // Opacity factor
	Refraction float32      // Refraction factor
	Shininess  float32      // Shininess (specular exponent)
	Ambient    math32.Color // Ambient color reflectivity
	Diffuse    math32.Color // Diffuse color reflectivity
	Specular   math32.Color // Specular color reflectivity
	Emissive   math32.Color // Emissive color
	MapKd      string       // Texture file linked to diffuse color
}

Material contains all information about an object material

type Object

type Object struct {
	Name  string // Object name
	Faces []Face // Faces
	// contains filtered or unexported fields
}

Object contains all information about one decoded object

Jump to

Keyboard shortcuts

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