Documentation
¶
Overview ¶
Package gwob is a pure Go parser for Wavefront .OBJ 3D geometry file format.
Example:
// Error handling omitted for simplicity.
import "github.com/udhos/gwob"
options := &gwob.ObjParserOptions{} // parser options
o, errObj := gwob.NewObjFromFile("gopher.obj", options) // parse
// Scan OBJ groups
for _, g := range o.Groups {
// snip
}
See also: https://github.com/udhos/gwob
Index ¶
- Constants
- type Group
- type Material
- type MaterialLib
- func NewMaterialLib() MaterialLib
- func ReadMaterialLibFromBuf(buf []byte, options *ObjParserOptions) (MaterialLib, error)
- func ReadMaterialLibFromFile(filename string, options *ObjParserOptions) (MaterialLib, error)
- func ReadMaterialLibFromReader(rd io.Reader, options *ObjParserOptions) (MaterialLib, error)
- func ReadMaterialLibFromStringReader(rd StringReader, options *ObjParserOptions) (MaterialLib, error)
- type Obj
- func NewObjFromBuf(objName string, buf []byte, options *ObjParserOptions) (*Obj, error)
- func NewObjFromFile(filename string, options *ObjParserOptions) (*Obj, error)
- func NewObjFromReader(objName string, rd io.Reader, options *ObjParserOptions) (*Obj, error)
- func NewObjFromStringReader(objName string, rd StringReader, options *ObjParserOptions) (*Obj, error)
- func NewObjFromVertex(coord []float32, indices []int) (*Obj, error)
- type ObjParserOptions
- type StringReader
Constants ¶
const ( ErrFatal = true // ErrFatal means fatal stream error ErrNonFatal = false // ErrNonFatal means non-fatal parsing error )
Internal parsing error
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Material ¶
type Material struct {
Name string
MapKd string
MapKa string
MapKs string
MapD string
Bump string
MapKe string
Kd [3]float32
Ka [3]float32
Ks [3]float32
Ns float32
Ni float32
Illum int
D float32
Tr float32
}
Material holds information for a material. Kd - diffuse color. Ka - ambient color. Ks - specular color. Ns - specular exponent. Ni - optical density aka. index of refraction. Illum - illumination model enum id. D / Tr - trasparency (Tr = 1 - D) MapKa - ambient map MapKd - diffuse map MapKs - specular map MapD - scalar procedural texture map Bump/map_Bump - bump texture map - modify surface normal Ke/MapKe - emissive map - clara.io extension
type MaterialLib ¶
MaterialLib stores materials.
func ReadMaterialLibFromBuf ¶
func ReadMaterialLibFromBuf(buf []byte, options *ObjParserOptions) (MaterialLib, error)
ReadMaterialLibFromBuf parses material lib from a buffer.
func ReadMaterialLibFromFile ¶
func ReadMaterialLibFromFile(filename string, options *ObjParserOptions) (MaterialLib, error)
ReadMaterialLibFromFile parses material lib from a file.
func ReadMaterialLibFromReader ¶
func ReadMaterialLibFromReader(rd io.Reader, options *ObjParserOptions) (MaterialLib, error)
ReadMaterialLibFromReader parses material lib from a reader.
func ReadMaterialLibFromStringReader ¶
func ReadMaterialLibFromStringReader(rd StringReader, options *ObjParserOptions) (MaterialLib, error)
ReadMaterialLibFromStringReader parses material lib from StringReader.
type Obj ¶
type Obj struct {
Indices []int
Coord []float32 // vertex data pos=(x,y,z) tex=(tx,ty) norm=(nx,ny,nz)
Mtllib string
Groups []*Group
BigIndexFound bool // index larger than 65535
TextCoordFound bool // texture coord
NormCoordFound bool // normal coord
StrideSize int // (px,py,pz),(tu,tv),(nx,ny,nz) = 8 x 4-byte floats = 32 bytes max
StrideOffsetPosition int // 0
StrideOffsetTexture int // 3 x 4-byte floats
StrideOffsetNormal int // 5 x 4-byte floats
}
Obj holds parser result for .obj file.
func NewObjFromBuf ¶
func NewObjFromBuf(objName string, buf []byte, options *ObjParserOptions) (*Obj, error)
NewObjFromBuf parses Obj from a buffer.
func NewObjFromFile ¶
func NewObjFromFile(filename string, options *ObjParserOptions) (*Obj, error)
NewObjFromFile parses Obj from a file.
func NewObjFromReader ¶
NewObjFromReader parses Obj from a reader.
func NewObjFromStringReader ¶
func NewObjFromStringReader(objName string, rd StringReader, options *ObjParserOptions) (*Obj, error)
NewObjFromStringReader parses Obj from a StringReader.
func NewObjFromVertex ¶
NewObjFromVertex creates Obj from vertex data.
func (*Obj) NumberOfElements ¶
NumberOfElements gets the number of strides.
type ObjParserOptions ¶
ObjParserOptions sets options for the parser.
type StringReader ¶
StringReader is input for the parser.