xsi_controlpoint.h
Go to the documentation of this file.
00001 //*****************************************************************************
00011 //*****************************************************************************
00012 
00013 #if (_MSC_VER > 1000) || defined(SGI_COMPILER)
00014 #pragma once
00015 #endif
00016 
00017 #ifndef __XSICONTROLPOINT_H__
00018 #define __XSICONTROLPOINT_H__
00019 
00020 #include <xsi_point.h>
00021 
00022 namespace XSI {
00023 
00024 class CKnotArray;
00025 class CControlPointRefArray;
00026 class CNurbsSampleRefArray;
00027 
00028 
00029 //*****************************************************************************
00067 //*****************************************************************************
00068 
00069 class SICPPSDKDECL ControlPoint : public Point
00070 {
00071 public:
00073     ControlPoint();
00074 
00076     ~ControlPoint();
00077 
00081     ControlPoint(const CRef& in_ref);
00082 
00086     ControlPoint(const ControlPoint& in_obj);
00087 
00092     bool IsA( siClassID in_ClassID) const;
00093 
00097     siClassID GetClassID() const;
00098 
00104     ControlPoint& operator=(const ControlPoint& in_obj);
00105 
00111     ControlPoint& operator=(const CRef& in_ref);
00112 
00113 
00117     double GetX()const;
00118 
00125     CStatus PutX(double in_dX);
00126 
00130     double GetY()const;
00131 
00138     CStatus PutY(double in_dY);
00139 
00143     double GetZ()const;
00144 
00151     CStatus PutZ(double in_dZ);
00152 
00156     double GetW()const;
00157 
00164     CStatus PutW(double in_dW);
00165 
00170     bool GetIsBoundary()const;
00171 
00172     private:
00173     ControlPoint* operator&() const;
00174     ControlPoint* operator&();
00175 };
00176 
00177 //*****************************************************************************
00211 //*****************************************************************************
00212 class SICPPSDKDECL CControlPointRefArray :  public CPointRefArray
00213 {
00214 public:
00216     CControlPointRefArray();
00217 
00219     ~CControlPointRefArray();
00220 
00224     CControlPointRefArray( const CControlPointRefArray& in_array );
00225 
00230     CRef GetItem( LONG in_index ) const;
00231 
00236     CRef GetItem( const CString& in_name ) const;
00237 
00241     LONG GetCount() const;
00242 
00246     bool IsValid() const;
00247 
00253     CStatus GetArray(MATH::CVector4Array& out_vPositions)const;
00254 
00261     CStatus PutArray(MATH::CVector4Array& in_vPositions);
00262 
00270     CStatus Dimension
00271     (
00272         siNurbsDirection    in_siDirection,
00273         LONG&               out_lDimension
00274     )const;
00275 
00276     private:
00277     void* m_ptr;
00278 };
00279 
00280 };
00281 
00282 #endif // __XSICONTROLPOINT_H__