xsi_controlpoint.h Source File
 
 
 
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__