Class TriangleMesh

    • Constructor Detail

      • TriangleMesh

        public TriangleMesh()
    • Method Detail

      • setSmallTriangles

        public static void setSmallTriangles​(boolean smallTriangles)
      • writeObj

        public void writeObj​(java.lang.String filename)
      • update

        public boolean update​(ParameterList pl,
                              SunflowAPI api)
        Description copied from interface: RenderObject
        Update this object given a list of parameters. This method is guarenteed to be called at least once on every object, but it should correctly handle empty parameter lists. This means that the object should be in a valid state from the time it is constructed. This method should also return true or false depending on whether the update was succesfull or not.
        Specified by:
        update in interface RenderObject
        Parameters:
        pl - list of parameters to read from
        api - reference to the current scene
        Returns:
        true if the update is succesfull, false otherwise
      • getPrimitiveBound

        public float getPrimitiveBound​(int primID,
                                       int i)
        Description copied from interface: PrimitiveList
        Retrieve the bounding box component of a particular primitive in object space. Even indexes get minimum values, while odd indexes get the maximum values for each axis.
        Specified by:
        getPrimitiveBound in interface PrimitiveList
        Parameters:
        primID - primitive index
        i - bounding box side index
        Returns:
        value of the request bound
      • getWorldBounds

        public BoundingBox getWorldBounds​(Matrix4 o2w)
        Description copied from interface: PrimitiveList
        Compute a bounding box of this object in world space, using the specified object-to-world transformation matrix. The bounds should be as exact as possible, if they are difficult or expensive to compute exactly, you may use Matrix4.transform(BoundingBox). If the matrix is null no transformation is needed, and object space is equivalent to world space.
        Specified by:
        getWorldBounds in interface PrimitiveList
        Parameters:
        o2w - object to world transformation matrix
        Returns:
        object bounding box in world space
      • intersectTriangleKensler

        private final void intersectTriangleKensler​(Ray r,
                                                    int primID,
                                                    IntersectionState state)
      • getNumPrimitives

        public int getNumPrimitives()
        Description copied from interface: PrimitiveList
        Returns the number of individual primtives in this aggregate object.
        Specified by:
        getNumPrimitives in interface PrimitiveList
        Returns:
        number of primitives
      • init

        public void init()
      • getPoint

        protected Point3 getPoint​(int i)
      • getPoint

        public void getPoint​(int tri,
                             int i,
                             Point3 p)
      • getBakingPrimitives

        public PrimitiveList getBakingPrimitives()
        Description copied from interface: PrimitiveList
        Create a new PrimitiveList object suitable for baking lightmaps. This means a set of primitives laid out in the unit square UV space. This method is optional, objects which do not support it should simply return null.
        Specified by:
        getBakingPrimitives in interface PrimitiveList
        Returns:
        a list of baking primitives