diff options
Diffstat (limited to 'src/3rdparty/assimp/code/ConvertToLHProcess.h')
-rw-r--r-- | src/3rdparty/assimp/code/ConvertToLHProcess.h | 140 |
1 files changed, 71 insertions, 69 deletions
diff --git a/src/3rdparty/assimp/code/ConvertToLHProcess.h b/src/3rdparty/assimp/code/ConvertToLHProcess.h index 5fea19c10..0c5f91c96 100644 --- a/src/3rdparty/assimp/code/ConvertToLHProcess.h +++ b/src/3rdparty/assimp/code/ConvertToLHProcess.h @@ -2,11 +2,11 @@ Open Asset Import Library (assimp) ---------------------------------------------------------------------- -Copyright (c) 2006-2012, assimp team +Copyright (c) 2006-2016, assimp team All rights reserved. -Redistribution and use of this software in source and binary forms, -with or without modification, are permitted provided that the +Redistribution and use of this software in source and binary forms, +with or without modification, are permitted provided that the following conditions are met: * Redistributions of source code must retain the above @@ -23,16 +23,16 @@ following conditions are met: derived from this software without specific prior written permission of the assimp team. -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ---------------------------------------------------------------------- @@ -44,24 +44,26 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * * - LH to RH * - UV origin upper-left to lower-left - * - face order cw to ccw + * - face order cw to ccw */ #ifndef AI_CONVERTTOLHPROCESS_H_INC #define AI_CONVERTTOLHPROCESS_H_INC -#include "../include/assimp/types.h" +#include <assimp/types.h> #include "BaseProcess.h" struct aiMesh; struct aiNodeAnim; +struct aiNode; +struct aiMaterial; -namespace Assimp { +namespace Assimp { // ----------------------------------------------------------------------------------- /** @brief The MakeLeftHandedProcess converts all imported data to a left-handed - * coordinate system. + * coordinate system. * - * This implies a mirroring of the Z axis of the coordinate system. But to keep + * This implies a mirroring of the Z axis of the coordinate system. But to keep * transformation matrices free from reflections we shift the reflection to other * places. We mirror the meshes and adapt the rotations. * @@ -69,46 +71,46 @@ namespace Assimp { */ class MakeLeftHandedProcess : public BaseProcess { - + public: - MakeLeftHandedProcess(); - ~MakeLeftHandedProcess(); + MakeLeftHandedProcess(); + ~MakeLeftHandedProcess(); - // ------------------------------------------------------------------- - bool IsActive( unsigned int pFlags) const; + // ------------------------------------------------------------------- + bool IsActive( unsigned int pFlags) const; - // ------------------------------------------------------------------- - void Execute( aiScene* pScene); + // ------------------------------------------------------------------- + void Execute( aiScene* pScene); protected: - // ------------------------------------------------------------------- - /** Recursively converts a node and all of its children - */ - void ProcessNode( aiNode* pNode, const aiMatrix4x4& pParentGlobalRotation); - - // ------------------------------------------------------------------- - /** Converts a single mesh to left handed coordinates. - * This means that positions, normals and tangents are mirrored at - * the local Z axis and the order of all faces are inverted. - * @param pMesh The mesh to convert. - */ - void ProcessMesh( aiMesh* pMesh); - - // ------------------------------------------------------------------- - /** Converts a single material to left-handed coordinates - * @param pMat Material to convert - */ - void ProcessMaterial( aiMaterial* pMat); - - // ------------------------------------------------------------------- - /** Converts the given animation to LH coordinates. - * The rotation and translation keys are transformed, the scale keys - * work in local space and can therefore be left untouched. - * @param pAnim The bone animation to transform - */ - void ProcessAnimation( aiNodeAnim* pAnim); + // ------------------------------------------------------------------- + /** Recursively converts a node and all of its children + */ + void ProcessNode( aiNode* pNode, const aiMatrix4x4& pParentGlobalRotation); + + // ------------------------------------------------------------------- + /** Converts a single mesh to left handed coordinates. + * This means that positions, normals and tangents are mirrored at + * the local Z axis and the order of all faces are inverted. + * @param pMesh The mesh to convert. + */ + void ProcessMesh( aiMesh* pMesh); + + // ------------------------------------------------------------------- + /** Converts a single material to left-handed coordinates + * @param pMat Material to convert + */ + void ProcessMaterial( aiMaterial* pMat); + + // ------------------------------------------------------------------- + /** Converts the given animation to LH coordinates. + * The rotation and translation keys are transformed, the scale keys + * work in local space and can therefore be left untouched. + * @param pAnim The bone animation to transform + */ + void ProcessAnimation( aiNodeAnim* pAnim); }; @@ -117,23 +119,23 @@ protected: */ class FlipWindingOrderProcess : public BaseProcess { - friend class Importer; + friend class Importer; public: - /** Constructor to be privately used by Importer */ - FlipWindingOrderProcess(); + /** Constructor to be privately used by Importer */ + FlipWindingOrderProcess(); - /** Destructor, private as well */ - ~FlipWindingOrderProcess(); + /** Destructor, private as well */ + ~FlipWindingOrderProcess(); - // ------------------------------------------------------------------- - bool IsActive( unsigned int pFlags) const; + // ------------------------------------------------------------------- + bool IsActive( unsigned int pFlags) const; - // ------------------------------------------------------------------- - void Execute( aiScene* pScene); + // ------------------------------------------------------------------- + void Execute( aiScene* pScene); protected: - void ProcessMesh( aiMesh* pMesh); + void ProcessMesh( aiMesh* pMesh); }; // --------------------------------------------------------------------------- @@ -141,24 +143,24 @@ protected: */ class FlipUVsProcess : public BaseProcess { - friend class Importer; + friend class Importer; public: - /** Constructor to be privately used by Importer */ - FlipUVsProcess(); + /** Constructor to be privately used by Importer */ + FlipUVsProcess(); - /** Destructor, private as well */ - ~FlipUVsProcess(); + /** Destructor, private as well */ + ~FlipUVsProcess(); - // ------------------------------------------------------------------- - bool IsActive( unsigned int pFlags) const; + // ------------------------------------------------------------------- + bool IsActive( unsigned int pFlags) const; - // ------------------------------------------------------------------- - void Execute( aiScene* pScene); + // ------------------------------------------------------------------- + void Execute( aiScene* pScene); protected: - void ProcessMesh( aiMesh* pMesh); - void ProcessMaterial( aiMaterial* mat); + void ProcessMesh( aiMesh* pMesh); + void ProcessMaterial( aiMaterial* mat); }; } // end of namespace Assimp |