Main Page   Compound List   File List   Compound Members  

elasticNode.h

00001 
00015 #ifndef ELASTICNODE_H
00016 #define ELASTICNODE_H
00017 
00018 #include <maya/MPxNode.h>
00019 #include <maya/MFnNumericAttribute.h>
00020 #include <maya/MTypeId.h>
00021 
00022 #include <maya/MPointArray.h>
00023 #include <maya/MIntArray.h>
00024 #include <maya/MFloatArray.h>
00025 #include <maya/MFloatVectorArray.h>
00026 #include <maya/MDoubleArray.h>
00027 
00028 #include <iostream>
00029 
00030 class elasticNode : public MPxNode
00031 {
00032         public:
00034 
00035                 static const MTypeId id ;
00037                 static const MString typeName;
00038 
00040 
00041                 virtual MStatus compute( const MPlug& plug, MDataBlock& data ) ;
00043                 static  void *creator() ;
00045                 static  MStatus initialize() ;
00046                 
00047                 // Calculates the sum of all forces components at a given point.
00048                 // Not implemented at the moment.
00049                 void totalForce() ;
00050 
00051         private:
00053                 void PDESolver( double b,double c,double d,
00054                                                         double dens,double damp,
00055                                                         MIntArray arrayDeformN,
00056                                                         MIntArray arrayForceN,
00057                                                         MIntArray arrayBoundaryN,
00058                                                         MDoubleArray arrayU,
00059                                                         MDoubleArray arrayV,
00060                                                         int totalU,
00061                                                         int totalV,
00062                                                         double time, double dTime,
00063                                                         MDoubleArray arrayPx,
00064                                                         MDoubleArray arrayPy,
00065                                                         MDoubleArray arrayPz,
00066                                                         MObject &solvedMeshData,
00067                                                         unsigned int numberDeformed, 
00068                                                         double su0, double su1,
00069                                                         double sv0, double sv1);
00070                                                         
00072                 void EqSolver(  double b,double c,double d,
00073                                                 double dens,double damp,
00074                                                 double su0,double su1,
00075                                                 double sv0,double sv1,
00076                                                 double h,
00077                                                 double arrayP[], 
00078                                                 int totalU, 
00079                                                 int totalV, 
00080                                                 int TotalNode, 
00081                                                 int Neq, 
00082                                                 double dTime,
00083                                                 double  forceComponentsArray[],
00084                                                 double  Vt[]) ;
00085                                                 
00087                 int ciggj(      double **a,
00088                                         int n,
00089                                         double b[]) ;
00090 
00092 
00093                 static MObject inputMesh ;
00095                 static MObject outputMesh;
00096 
00098 
00099                 static MObject density ;
00101                 static MObject damping ;
00103                 static MObject ParameterB ;
00105                 static MObject ParameterC ;
00107                 static MObject ParameterD ;
00108                 
00110 
00111                 static MObject su0 ;
00113                 static MObject su1 ;
00115                 static MObject sv0 ;
00117                 static MObject sv1 ;
00118 
00120 
00121                 static MObject currentTime ;
00123                 static MObject deltaTime ;
00125                 static MObject startFrame ;
00126 
00128 
00129                 static MObject inputForceComponents ;
00131                 static MObject inputForceCenters ;
00133                 static MObject deformationRadius ;
00135                 static MObject forceRadius ;
00137                 static MObject forceMag ;
00138 
00140 
00141                 MIntArray arrayDeformN ;
00143                 MIntArray arrayBoundaryN ;
00145                 MIntArray arrayForceN ;
00147                 MIntArray previousDefN  ;
00148 
00150 
00151                 MDoubleArray arrayU ;
00153                 MDoubleArray arrayV ;
00154 
00155                 // MFloatVectorArray to store the localPositions of the vertices
00157                 MDoubleArray arrayPx ;
00159                 MDoubleArray arrayPy ;
00161                 MDoubleArray arrayPz ;
00162 
00163                 // force components array
00165                 MDoubleArray forceComponentsArrayX ;
00167                 MDoubleArray forceComponentsArrayY ;
00169                 MDoubleArray forceComponentsArrayZ ;
00170 
00171                 // Velocity attributes
00173                 MDoubleArray Vtx ;
00175                 MDoubleArray Vty ;
00177                 MDoubleArray Vtz ;
00179                 MDoubleArray solvedVtx ;
00181                 MDoubleArray solvedVty ;
00183                 MDoubleArray solvedVtz ;
00184 
00185                 // Mesh data
00187                 MObject solvedMeshData ;
00189                 MObject finalMeshData ;
00191                 MObject inputMeshObject ;
00192 };
00193 
00194 #endif
00195 
00196 

Generated on Sun Oct 2 11:19:22 2005 for Physically based elastic deformations by doxygen1.2.15