Public Member Functions

  • Teapot ()
  • subdivisions (int sub)
  • size_t
    getNumVertices () const override
  • size_t
    getNumIndices () const override
  • getPrimitive () const override
  • uint8_t
    getAttribDims (Attrib attr) const override
  • getAvailableAttribs () const override
  • void
    loadInto (Target *target, const AttribSet &requestedAttribs) const override
  • clone () const override

Protected Member Functions

  • void
    calculate (std::vector< float > *positions, std::vector< float > *normals, std::vector< float > *texCoords, std::vector< uint32_t > *indices) const
  • void
    updateVertexCounts ()
  • void
    forceCopyIndicesTrianglesImpl (T *dest) const
  • void
    generatePatches (float *v, float *n, float *tc, uint32_t *el, int grid)
  • void
    buildPatchReflect (int patchNum, float *B, float *dB, float *v, float *n, float *tc, unsigned int *el, int &index, int &elIndex, int &tcIndex, int grid, bool reflectX, bool reflectY)
  • void
    buildPatch (vec3 patch[][4], float *B, float *dB, float *v, float *n, float *tc, unsigned int *el, int &index, int &elIndex, int &tcIndex, int grid, const mat3 reflect, bool invertNormal)
  • void
    getPatch (int patchNum, vec3 patch[][4], bool reverseV)
  • void
    computeBasisFunctions (float *B, float *dB, int grid)
  • vec3
    evaluate (int gridU, int gridV, const float *B, const vec3 patch[][4])
  • vec3
    evaluateNormal (int gridU, int gridV, const float *B, const float *dB, const vec3 patch[][4])

Protected Attributes

  • int
    mSubdivision
  • size_t
    mNumVertices
  • size_t
    mNumIndices
  • const uint8_t
    sPatchIndices [][16]
  • const float
    sCurveData [][3]