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/breiting/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/breiting/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(objName string, 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 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.