Class VertexAttributes

  • All Implemented Interfaces:
    java.lang.Comparable<VertexAttributes>, java.lang.Iterable<VertexAttribute>

    public final class VertexAttributes
    extends java.lang.Object
    implements java.lang.Iterable<VertexAttribute>, java.lang.Comparable<VertexAttributes>
    Instances of this class specify the vertex attributes of a mesh. VertexAttributes are used by Mesh instances to define its vertex structure. Vertex attributes have an order. The order is specified by the order they are added to this class.
    • Field Detail

      • vertexSize

        public final int vertexSize
        the size of a single vertex in bytes
    • Constructor Detail

      • VertexAttributes

        public VertexAttributes​(VertexAttribute... attributes)
        Constructor, sets the vertex attributes in a specific order
    • Method Detail

      • getOffset

        public int getOffset​(int usage,
                             int defaultIfNotFound)
        Returns the offset for the first VertexAttribute with the specified usage.
        Parameters:
        usage - The usage of the VertexAttribute.
      • getOffset

        public int getOffset​(int usage)
        Returns the offset for the first VertexAttribute with the specified usage.
        Parameters:
        usage - The usage of the VertexAttribute.
      • findByUsage

        public VertexAttribute findByUsage​(int usage)
        Returns the first VertexAttribute for the given usage.
        Parameters:
        usage - The usage of the VertexAttribute to find.
      • size

        public int size()
        Returns:
        the number of attributes
      • get

        public VertexAttribute get​(int index)
        Parameters:
        index - the index
        Returns:
        the VertexAttribute at the given index
      • toString

        public java.lang.String toString()
        Overrides:
        toString in class java.lang.Object
      • equals

        public boolean equals​(java.lang.Object obj)
        Overrides:
        equals in class java.lang.Object
      • hashCode

        public int hashCode()
        Overrides:
        hashCode in class java.lang.Object
      • getMask

        public long getMask()
        Calculates a mask based on the contained VertexAttribute instances. The mask is a bit-wise or of each attributes VertexAttribute.usage.
        Returns:
        the mask
      • getMaskWithSizePacked

        public long getMaskWithSizePacked()
        Calculates the mask based on getMask() and packs the attributes count into the last 32 bits.
        Returns:
        the mask with attributes count packed into the last 32 bits.
      • getBoneWeights

        public int getBoneWeights()
        Returns:
        Number of bone weights based on VertexAttribute.unit
      • getTextureCoordinates

        public int getTextureCoordinates()
        Returns:
        Number of texture coordinates based on VertexAttribute.unit