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.