Class OBJFile


  • public class OBJFile
    extends Object
    Translated from C++ Version: nvModel.h - Model support class The nvModel class implements an interface for a multipurpose model object. This class is useful for loading and formatting meshes for use by OpenGL. It can compute face normals, tangents, and adjacency information. The class supports the obj file format. Author: Evan Hart Email: sdkfeedback@nvidia.com Copyright (c) NVIDIA Corporation. All rights reserved.
    • Field Detail

      • autoNormal

        protected boolean autoNormal
        Will calculate normals if they are missing
      • positions_

        protected List<Float> positions_
      • posSize_

        protected int posSize_
      • pOffset_

        protected int pOffset_
      • nOffset_

        protected int nOffset_
      • vtxSize_

        protected int vtxSize_
      • openEdges_

        protected int openEdges_
    • Constructor Detail

      • OBJFile

        public OBJFile()
    • Method Detail

      • loadModelFromFilename

        public boolean loadModelFromFilename​(String file)
      • loadModelFromURL

        public boolean loadModelFromURL​(URL fileURL)
        This function attempts to determine the type of the filename passed as a parameter. If it understands that file type, it attempts to parse and load the file into its raw data structures. If the file type is recognized and successfully parsed, the function returns true, otherwise it returns false.
      • parseObjVertex

        public void parseObjVertex​(String line,
                                   float[] val)
        Vertex/Normal Format
         v 1.0 0.0 0.0 
         vn 0.0 1.0 0.0
         
         n : normal
         
         
      • parseObjFace

        public boolean parseObjFace​(String line,
                                    int[][] idx,
                                    boolean hasNormals)
        Face Format
         f v1/vt1/vn1 v2/vt2/vn2 v3/vt3/vn3
         
         t : texture
         n : normal
         
         
      • compileModel

        public void compileModel()
        This function takes the raw model data in the internal structures, and attempts to bring it to a format directly accepted for vertex array style rendering. This means that a unique compiled vertex will exist for each unique combination of position, normal, tex coords, etc that are used in the model. The prim parameter, tells the model what type of index list to compile. By default it compiles a simple triangle mesh with no connectivity.
      • computeBoundingBox

        public BoundingBox3d computeBoundingBox()
        Returns the points defining the axis-aligned bounding box containing the model.
      • clearNormals

        public void clearNormals()
      • hasNormals

        public boolean hasNormals()
      • getPositionSize

        public int getPositionSize()
      • getNormalSize

        public int getNormalSize()
      • getPositions

        public List<Float> getPositions()
      • getNormals

        public List<Float> getNormals()
      • getPositionIndices

        public List<Integer> getPositionIndices()
      • getNormalIndices

        public List<Integer> getNormalIndices()
      • getPositionCount

        public int getPositionCount()
      • getNormalCount

        public int getNormalCount()
      • getIndexCount

        public int getIndexCount()
      • getCompiledVertices

        public FloatBuffer getCompiledVertices()
      • getCompiledIndices

        public IntBuffer getCompiledIndices()
      • getCompiledPositionOffset

        public int getCompiledPositionOffset()
      • getCompiledNormalOffset

        public int getCompiledNormalOffset()
      • getCompiledVertexSize

        public int getCompiledVertexSize()
      • getCompiledVertexCount

        public int getCompiledVertexCount()
      • getOpenEdgeCount

        public int getOpenEdgeCount()