diff options
Diffstat (limited to 'libs/assimp/contrib/Open3DGC/o3dgcIndexedFaceSet.h')
-rw-r--r-- | libs/assimp/contrib/Open3DGC/o3dgcIndexedFaceSet.h | 263 |
1 files changed, 0 insertions, 263 deletions
diff --git a/libs/assimp/contrib/Open3DGC/o3dgcIndexedFaceSet.h b/libs/assimp/contrib/Open3DGC/o3dgcIndexedFaceSet.h deleted file mode 100644 index adb8cb0..0000000 --- a/libs/assimp/contrib/Open3DGC/o3dgcIndexedFaceSet.h +++ /dev/null @@ -1,263 +0,0 @@ -/* -Copyright (c) 2013 Khaled Mammou - Advanced Micro Devices, Inc. - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. -*/ - - -#pragma once -#ifndef O3DGC_INDEXED_FACE_SET_H -#define O3DGC_INDEXED_FACE_SET_H - -#include "o3dgcCommon.h" - -namespace o3dgc -{ - template<class T> - class IndexedFaceSet - { - public: - //! Constructor. - IndexedFaceSet(void) - { - memset(this, 0, sizeof(IndexedFaceSet)); - m_ccw = true; - m_solid = true; - m_convex = true; - m_isTriangularMesh = true; - m_creaseAngle = 30; - }; - //! Destructor. - ~IndexedFaceSet(void) {}; - - unsigned long GetNCoordIndex() const { return m_nCoordIndex ;} - // only coordIndex is supported - unsigned long GetNCoord() const { return m_nCoord ;} - unsigned long GetNNormal() const { return m_nNormal ;} - unsigned long GetNFloatAttribute(unsigned long a) const - { - assert(a < O3DGC_SC3DMC_MAX_NUM_FLOAT_ATTRIBUTES); - return m_nFloatAttribute[a]; - } - unsigned long GetNIntAttribute(unsigned long a) const - { - assert(a < O3DGC_SC3DMC_MAX_NUM_INT_ATTRIBUTES); - return m_nIntAttribute[a]; - } - unsigned long GetNumFloatAttributes() const { return m_numFloatAttributes;} - unsigned long GetNumIntAttributes() const { return m_numIntAttributes ;} - const Real * GetCoordMin () const { return m_coordMin;} - const Real * GetCoordMax () const { return m_coordMax;} - const Real * GetNormalMin () const { return m_normalMin;} - const Real * GetNormalMax () const { return m_normalMax;} - Real GetCoordMin (int j) const { return m_coordMin[j] ;} - Real GetCoordMax (int j) const { return m_coordMax[j] ;} - Real GetNormalMin (int j) const { return m_normalMin[j] ;} - Real GetNormalMax (int j) const { return m_normalMax[j] ;} - - O3DGCIFSFloatAttributeType GetFloatAttributeType(unsigned long a) const - { - assert(a < O3DGC_SC3DMC_MAX_NUM_FLOAT_ATTRIBUTES); - return m_typeFloatAttribute[a]; - } - O3DGCIFSIntAttributeType GetIntAttributeType(unsigned long a) const - { - assert(a < O3DGC_SC3DMC_MAX_NUM_INT_ATTRIBUTES); - return m_typeIntAttribute[a]; - } - unsigned long GetFloatAttributeDim(unsigned long a) const - { - assert(a < O3DGC_SC3DMC_MAX_NUM_FLOAT_ATTRIBUTES); - return m_dimFloatAttribute[a]; - } - unsigned long GetIntAttributeDim(unsigned long a) const - { - assert(a < O3DGC_SC3DMC_MAX_NUM_INT_ATTRIBUTES); - return m_dimIntAttribute[a]; - } - const Real * GetFloatAttributeMin(unsigned long a) const - { - assert(a < O3DGC_SC3DMC_MAX_NUM_FLOAT_ATTRIBUTES); - return &(m_minFloatAttribute[a * O3DGC_SC3DMC_MAX_DIM_ATTRIBUTES]); - } - const Real * GetFloatAttributeMax(unsigned long a) const - { - assert(a < O3DGC_SC3DMC_MAX_NUM_FLOAT_ATTRIBUTES); - return &(m_maxFloatAttribute[a * O3DGC_SC3DMC_MAX_DIM_ATTRIBUTES]); - } - Real GetFloatAttributeMin(unsigned long a, unsigned long dim) const - { - assert(a < O3DGC_SC3DMC_MAX_NUM_FLOAT_ATTRIBUTES); - assert(dim < O3DGC_SC3DMC_MAX_DIM_ATTRIBUTES); - return m_minFloatAttribute[a * O3DGC_SC3DMC_MAX_DIM_ATTRIBUTES + dim]; - } - Real GetFloatAttributeMax(unsigned long a, unsigned long dim) const - { - assert(a < O3DGC_SC3DMC_MAX_NUM_FLOAT_ATTRIBUTES); - assert(dim < O3DGC_SC3DMC_MAX_DIM_ATTRIBUTES); - return m_maxFloatAttribute[a * O3DGC_SC3DMC_MAX_DIM_ATTRIBUTES + dim]; - } - Real GetCreaseAngle() const { return m_creaseAngle ;} - bool GetCCW() const { return m_ccw ;} - bool GetSolid() const { return m_solid ;} - bool GetConvex() const { return m_convex ;} - bool GetIsTriangularMesh() const { return m_isTriangularMesh;} - const unsigned long * GetIndexBufferID() const { return m_indexBufferID ;} - const T * GetCoordIndex() const { return m_coordIndex;} - T * GetCoordIndex() { return m_coordIndex;} - Real * GetCoord() const { return m_coord ;} - Real * GetNormal() const { return m_normal ;} - Real * GetFloatAttribute(unsigned long a) const - { - assert(a < O3DGC_SC3DMC_MAX_NUM_FLOAT_ATTRIBUTES); - return m_floatAttribute[a]; - } - long * GetIntAttribute(unsigned long a) const - { - assert(a < O3DGC_SC3DMC_MAX_NUM_INT_ATTRIBUTES); - return m_intAttribute[a] ; - } - // only coordIndex is supported - void SetNNormalIndex(unsigned long) {} - void SetNTexCoordIndex(unsigned long) {} - void SetNFloatAttributeIndex(int, unsigned long) {} - void SetNIntAttributeIndex (int, unsigned long) {} - // per triangle attributes not supported - void SetNormalPerVertex(bool) {} - void SetColorPerVertex(bool) {} - void SetFloatAttributePerVertex(int, bool){} - void SetIntAttributePerVertex (int, bool){} - void SetNCoordIndex (unsigned long nCoordIndex) { m_nCoordIndex = nCoordIndex;} - void SetNCoord (unsigned long nCoord) { m_nCoord = nCoord ;} - void SetNNormal (unsigned long nNormal) { m_nNormal = nNormal ;} - void SetNumFloatAttributes(unsigned long numFloatAttributes) - { - assert(numFloatAttributes < O3DGC_SC3DMC_MAX_NUM_FLOAT_ATTRIBUTES); - m_numFloatAttributes = numFloatAttributes; - } - void SetNumIntAttributes (unsigned long numIntAttributes) - { - assert(numIntAttributes < O3DGC_SC3DMC_MAX_NUM_INT_ATTRIBUTES); - m_numIntAttributes = numIntAttributes; - } - void SetCreaseAngle (Real creaseAngle) { m_creaseAngle = creaseAngle ;} - void SetCCW (bool ccw) { m_ccw = ccw ;} - void SetSolid (bool solid) { m_solid = solid ;} - void SetConvex (bool convex) { m_convex = convex ;} - void SetIsTriangularMesh (bool isTriangularMesh) { m_isTriangularMesh = isTriangularMesh;} - void SetCoordMin (int j, Real min) { m_coordMin[j] = min;} - void SetCoordMax (int j, Real max) { m_coordMax[j] = max;} - void SetNormalMin (int j, Real min) { m_normalMin[j] = min;} - void SetNormalMax (int j, Real max) { m_normalMax[j] = max;} - void SetNFloatAttribute(unsigned long a, unsigned long nFloatAttribute) - { - assert(a < O3DGC_SC3DMC_MAX_NUM_FLOAT_ATTRIBUTES); - m_nFloatAttribute[a] = nFloatAttribute; - } - void SetNIntAttribute(unsigned long a, unsigned long nIntAttribute) - { - assert(a < O3DGC_SC3DMC_MAX_NUM_INT_ATTRIBUTES); - m_nIntAttribute[a] = nIntAttribute; - } - void SetFloatAttributeDim(unsigned long a, unsigned long d) - { - assert(a < O3DGC_SC3DMC_MAX_NUM_FLOAT_ATTRIBUTES); - m_dimFloatAttribute[a] = d; - } - void SetIntAttributeDim(unsigned long a, unsigned long d) - { - assert(a < O3DGC_SC3DMC_MAX_NUM_INT_ATTRIBUTES); - m_dimIntAttribute[a] = d; - } - void SetFloatAttributeType(unsigned long a, O3DGCIFSFloatAttributeType t) - { - assert(a < O3DGC_SC3DMC_MAX_NUM_FLOAT_ATTRIBUTES); - m_typeFloatAttribute[a] = t; - } - void SetIntAttributeType(unsigned long a, O3DGCIFSIntAttributeType t) - { - assert(a < O3DGC_SC3DMC_MAX_NUM_INT_ATTRIBUTES); - m_typeIntAttribute[a] = t; - } - void SetFloatAttributeMin(unsigned long a, unsigned long dim, Real min) - { - assert(a < O3DGC_SC3DMC_MAX_NUM_FLOAT_ATTRIBUTES); - assert(dim < O3DGC_SC3DMC_MAX_DIM_ATTRIBUTES); - m_minFloatAttribute[a * O3DGC_SC3DMC_MAX_DIM_ATTRIBUTES + dim] = min; - } - void SetFloatAttributeMax(unsigned long a, unsigned long dim, Real max) - { - assert(a < O3DGC_SC3DMC_MAX_NUM_FLOAT_ATTRIBUTES); - assert(dim < O3DGC_SC3DMC_MAX_DIM_ATTRIBUTES); - m_maxFloatAttribute[a * O3DGC_SC3DMC_MAX_DIM_ATTRIBUTES + dim] = max; - } - void SetIndexBufferID (unsigned long * const indexBufferID) { m_indexBufferID = indexBufferID;} - void SetCoordIndex (T * const coordIndex) { m_coordIndex = coordIndex;} - void SetCoord (Real * const coord ) { m_coord = coord ;} - void SetNormal (Real * const normal ) { m_normal = normal ;} - void SetFloatAttribute (unsigned long a, Real * const floatAttribute) - { - assert(a < O3DGC_SC3DMC_MAX_NUM_FLOAT_ATTRIBUTES); - m_floatAttribute[a] = floatAttribute; - } - void SetIntAttribute (unsigned long a, long * const intAttribute) - { - assert(a < O3DGC_SC3DMC_MAX_NUM_INT_ATTRIBUTES); - m_intAttribute[a] = intAttribute ; - } - void ComputeMinMax(O3DGCSC3DMCQuantizationMode quantMode); - - private: - // triangles list - unsigned long m_nCoordIndex; - T * m_coordIndex; - unsigned long * m_indexBufferID; - // coord, normals, texcoord and color - unsigned long m_nCoord; - unsigned long m_nNormal; - Real m_coordMin [3]; - Real m_coordMax [3]; - Real m_normalMin [3]; - Real m_normalMax [3]; - Real * m_coord; - Real * m_normal; - // other attributes - unsigned long m_numFloatAttributes; - unsigned long m_numIntAttributes; - O3DGCIFSFloatAttributeType m_typeFloatAttribute [O3DGC_SC3DMC_MAX_NUM_FLOAT_ATTRIBUTES]; - O3DGCIFSIntAttributeType m_typeIntAttribute [O3DGC_SC3DMC_MAX_NUM_INT_ATTRIBUTES ]; - unsigned long m_nFloatAttribute [O3DGC_SC3DMC_MAX_NUM_FLOAT_ATTRIBUTES]; - unsigned long m_nIntAttribute [O3DGC_SC3DMC_MAX_NUM_INT_ATTRIBUTES ]; - unsigned long m_dimFloatAttribute [O3DGC_SC3DMC_MAX_NUM_FLOAT_ATTRIBUTES]; - unsigned long m_dimIntAttribute [O3DGC_SC3DMC_MAX_NUM_INT_ATTRIBUTES ]; - Real m_minFloatAttribute [O3DGC_SC3DMC_MAX_NUM_FLOAT_ATTRIBUTES * O3DGC_SC3DMC_MAX_DIM_ATTRIBUTES]; - Real m_maxFloatAttribute [O3DGC_SC3DMC_MAX_NUM_FLOAT_ATTRIBUTES * O3DGC_SC3DMC_MAX_DIM_ATTRIBUTES]; - Real * m_floatAttribute [O3DGC_SC3DMC_MAX_NUM_FLOAT_ATTRIBUTES]; - long * m_intAttribute [O3DGC_SC3DMC_MAX_NUM_FLOAT_ATTRIBUTES]; - // mesh info - Real m_creaseAngle; - bool m_ccw; - bool m_solid; - bool m_convex; - bool m_isTriangularMesh; - }; -} -#include "o3dgcIndexedFaceSet.inl" // template implementation -#endif // O3DGC_INDEXED_FACE_SET_H - |