From 7028cbe09c688437910a25623098762bf0fa592d Mon Sep 17 00:00:00 2001 From: David Walter Seikel Date: Mon, 28 Mar 2016 22:28:34 +1000 Subject: Move Irrlicht to src/others. --- .../doc/html/_i_skinned_mesh_8h_source.html | 288 +++++++++++++++++++++ 1 file changed, 288 insertions(+) create mode 100644 src/others/irrlicht-1.8.1/doc/html/_i_skinned_mesh_8h_source.html (limited to 'src/others/irrlicht-1.8.1/doc/html/_i_skinned_mesh_8h_source.html') diff --git a/src/others/irrlicht-1.8.1/doc/html/_i_skinned_mesh_8h_source.html b/src/others/irrlicht-1.8.1/doc/html/_i_skinned_mesh_8h_source.html new file mode 100644 index 0000000..3825eb8 --- /dev/null +++ b/src/others/irrlicht-1.8.1/doc/html/_i_skinned_mesh_8h_source.html @@ -0,0 +1,288 @@ + + + + +Irrlicht 3D Engine: ISkinnedMesh.h Source File + + + + + + + + + + + + + + +
+ + +
+ + + + + + + + + + + + + + + + + +
+
Irrlicht 3D Engine + +
+ +
+ + + + + + +
+
+
+ + + + +
+
+ +
+
+
+ +
+
+
+
ISkinnedMesh.h
+
+
+Go to the documentation of this file.
00001 // Copyright (C) 2002-2012 Nikolaus Gebhardt
+00002 // This file is part of the "Irrlicht Engine".
+00003 // For conditions of distribution and use, see copyright notice in irrlicht.h
+00004 
+00005 #ifndef __I_SKINNED_MESH_H_INCLUDED__
+00006 #define __I_SKINNED_MESH_H_INCLUDED__
+00007 
+00008 #include "irrArray.h"
+00009 #include "IBoneSceneNode.h"
+00010 #include "IAnimatedMesh.h"
+00011 #include "SSkinMeshBuffer.h"
+00012 
+00013 namespace irr
+00014 {
+00015 namespace scene
+00016 {
+00017 
+00018     enum E_INTERPOLATION_MODE
+00019     {
+00020         // constant does use the current key-values without interpolation
+00021         EIM_CONSTANT = 0,
+00022 
+00023         // linear interpolation
+00024         EIM_LINEAR,
+00025 
+00027         EIM_COUNT
+00028     };
+00029 
+00030 
+00032     class ISkinnedMesh : public IAnimatedMesh
+00033     {
+00034     public:
+00035 
+00037 
+00038         virtual u32 getJointCount() const = 0;
+00039 
+00041 
+00044         virtual const c8* getJointName(u32 number) const = 0;
+00045 
+00047 
+00049         virtual s32 getJointNumber(const c8* name) const = 0;
+00050 
+00052 
+00057         virtual bool useAnimationFrom(const ISkinnedMesh *mesh) = 0;
+00058 
+00060 
+00063         virtual void updateNormalsWhenAnimating(bool on) = 0;
+00064 
+00066         virtual void setInterpolationMode(E_INTERPOLATION_MODE mode) = 0;
+00067 
+00069         virtual void animateMesh(f32 frame, f32 blend)=0;
+00070 
+00072         virtual void skinMesh() = 0;
+00073 
+00075 
+00076         virtual void convertMeshToTangents() = 0;
+00077 
+00079         /* This feature is not implementated in Irrlicht yet */
+00080         virtual bool setHardwareSkinning(bool on) = 0;
+00081 
+00083         struct SWeight
+00084         {
+00086             u16 buffer_id; //I doubt 32bits is needed
+00087 
+00089             u32 vertex_id; //Store global ID here
+00090 
+00092             f32 strength;
+00093 
+00094         private:
+00096             friend class CSkinnedMesh;
+00097             bool *Moved;
+00098             core::vector3df StaticPos;
+00099             core::vector3df StaticNormal;
+00100         };
+00101 
+00102 
+00104         struct SPositionKey
+00105         {
+00106             f32 frame;
+00107             core::vector3df position;
+00108         };
+00109 
+00111         struct SScaleKey
+00112         {
+00113             f32 frame;
+00114             core::vector3df scale;
+00115         };
+00116 
+00118         struct SRotationKey
+00119         {
+00120             f32 frame;
+00121             core::quaternion rotation;
+00122         };
+00123 
+00125         struct SJoint
+00126         {
+00127             SJoint() : UseAnimationFrom(0), GlobalSkinningSpace(false),
+00128                 positionHint(-1),scaleHint(-1),rotationHint(-1)
+00129             {
+00130             }
+00131 
+00133             core::stringc Name;
+00134 
+00136             core::matrix4 LocalMatrix;
+00137 
+00139             core::array<SJoint*> Children;
+00140 
+00142             core::array<u32> AttachedMeshes;
+00143 
+00145             core::array<SPositionKey> PositionKeys;
+00146 
+00148             core::array<SScaleKey> ScaleKeys;
+00149 
+00151             core::array<SRotationKey> RotationKeys;
+00152 
+00154             core::array<SWeight> Weights;
+00155 
+00157             core::matrix4 GlobalMatrix;
+00158             core::matrix4 GlobalAnimatedMatrix;
+00159             core::matrix4 LocalAnimatedMatrix;
+00160             core::vector3df Animatedposition;
+00161             core::vector3df Animatedscale;
+00162             core::quaternion Animatedrotation;
+00163 
+00164             core::matrix4 GlobalInversedMatrix; //the x format pre-calculates this
+00165 
+00166         private:
+00168             friend class CSkinnedMesh;
+00169 
+00170             SJoint *UseAnimationFrom;
+00171             bool GlobalSkinningSpace;
+00172 
+00173             s32 positionHint;
+00174             s32 scaleHint;
+00175             s32 rotationHint;
+00176         };
+00177 
+00178 
+00179         //Interface for the mesh loaders (finalize should lock these functions, and they should have some prefix like loader_
+00180 
+00181         //these functions will use the needed arrays, set values, etc to help the loaders
+00182 
+00184         virtual core::array<SSkinMeshBuffer*>& getMeshBuffers() = 0;
+00185 
+00187         virtual core::array<SJoint*>& getAllJoints() = 0;
+00188 
+00190         virtual const core::array<SJoint*>& getAllJoints() const = 0;
+00191 
+00193         virtual void finalize() = 0;
+00194 
+00196         virtual SSkinMeshBuffer* addMeshBuffer() = 0;
+00197 
+00199         virtual SJoint* addJoint(SJoint *parent=0) = 0;
+00200 
+00202         virtual SWeight* addWeight(SJoint *joint) = 0;
+00203 
+00205         virtual SPositionKey* addPositionKey(SJoint *joint) = 0;
+00207         virtual SScaleKey* addScaleKey(SJoint *joint) = 0;
+00209         virtual SRotationKey* addRotationKey(SJoint *joint) = 0;
+00210 
+00212         virtual bool isStatic()=0;
+00213     };
+00214 
+00215 } // end namespace scene
+00216 } // end namespace irr
+00217 
+00218 #endif
+00219 
+
+
+ + + + + -- cgit v1.1