00001 00015 #ifndef ELASTICFORCENODE_H 00016 #define ELASTICFORCENODE_H 00017 00018 #include <maya/MPxLocatorNode.h> 00019 #include <maya/MFnNumericAttribute.h> 00020 #include <maya/MPointArray.h> 00021 #include <maya/MTypeId.h> 00022 00023 00024 class elasticForceNode : public MPxLocatorNode 00025 { 00026 00027 public: 00029 elasticForceNode(); 00031 ~elasticForceNode() ; 00032 00034 00035 static MStatus initialize() ; 00037 static void* creator() ; 00039 virtual void draw( M3dView & view, 00040 const MDagPath & path, 00041 M3dView::DisplayStyle style, 00042 M3dView::DisplayStatus status ); 00044 virtual bool isBounded() const ; 00046 virtual MBoundingBox boundingBox() const ; 00047 00049 00050 static const MTypeId id ; 00052 static const MString typeName; 00053 00054 private: 00056 static MObject deformationRadius ; 00058 static MObject forceRadius ; 00060 static MObject magnitude ; 00062 static MObject forceVector ; 00063 00064 00066 00067 bool getDeformCircleX( MPointArray &pts ) const; 00069 bool getDeformCircleY( MPointArray &pts ) const; 00071 bool getDeformCircleZ( MPointArray &pts ) const; 00072 00074 00075 bool getForceCircleX( MPointArray &pts ) const; 00077 bool getForceCircleY( MPointArray &pts ) const; 00079 bool getForceCircleZ( MPointArray &pts ) const; 00080 00081 }; 00082 00083 00084 #endif