Main Page | Namespace List | Class List | Directories | File List | Namespace Members | Class Members | File Members

iquadric_geo.h

Go to the documentation of this file.
00001 
00002 
00003 
00004 
00005 
00006 
00007 
00008 
00009 
00010 
00011 
00012 
00013 
00014 
00015 
00016 #ifndef _I_QUADRIC_GEO_H_
00017 #define _I_QUADRIC_GEO_H_
00018 
00019 // includes, maya
00020 #include <maya/MMatrix.h>
00021 #include <maya/MPxSurfaceShape.h>
00022 #include <maya/MFnTransform.h>
00023 #include <maya/MFnNumericAttribute.h>
00024 #include <maya/MFnEnumAttribute.h>
00025 
00026 // includes, GL
00027 #include <GL/gl.h>
00028 
00029 // includes, project
00030 #include <error_checker.h>
00031 
00032 
00036 class IQuadric : public MPxSurfaceShape {
00037 
00038   friend class IQuadricUI;
00039   
00040  public:
00041 
00043   IQuadric();
00044 
00045   // @brief Destructor
00046   virtual ~IQuadric();
00047 
00048  public:
00049 
00051   virtual void postConstructor();
00052 
00055   virtual MStatus compute( const MPlug& /*plug*/, MDataBlock& /*data_block*/);
00056 
00057  public:
00058 
00062   virtual bool getInternalValue( const MPlug& p, MDataHandle& data_block);
00063 
00067   virtual bool setInternalValue( const MPlug& p, MDataHandle& data_block);
00068 
00069  public:
00070 
00072   virtual bool isBounded() const;
00073 
00075   virtual MBoundingBox boundingBox() const;
00076 
00077  public:
00078 
00080   static void* creator();
00081 
00083   static MStatus initialize();
00084 
00087   MStatus updateValues( const MMatrix& transform);
00088 
00090   void updateGUIValues();
00091 
00095   //                   (returned)
00097   void getParameter( MMatrix& matrix, double& max_distance, bool& is_limited) const;
00098 
00099  private:
00100 
00101   // Internal data members
00102 
00104   static const unsigned int NumParameter = 10;
00105 
00108   float  parameter[NumParameter];
00109 
00112   MMatrix  params_ws;
00113 
00115   static MObject params_node[NumParameter];
00116 
00118   static MFnNumericAttribute params_gui[NumParameter];
00119 
00121   float max_distance;
00122 
00124   static MObject max_dist_node;
00125 
00127   static MFnNumericAttribute max_dist_gui;
00128 
00130   bool is_limited;
00131 
00133   static MObject is_limited_node;
00134 
00136   static MFnEnumAttribute is_limited_gui;
00137 
00138  public:
00139 
00140   // public data members
00141   static  MTypeId  id;
00142 };
00143 
00144 // variables, exported (extern)
00145 
00146 // functions, inlined (inline)
00147   
00148 // functions, exported (extern)
00149  
00150 #endif // #ifndef _I_QUADRIC_GEO_H_
00151 

Generated on Sat Dec 31 18:07:49 2005 for ICaster by  doxygen 1.4.4