xsi_nurbscurvelist.h Source File
 
 
 
xsi_nurbscurvelist.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 __XSINURBSCURVELIST_H__
00018 #define __XSINURBSCURVELIST_H__
00019 
00020 #include <xsi_geometry.h>
00021 #include <xsi_nurbsdata.h>
00022 
00023 namespace XSI {
00024 
00025 class CControlPointRefArray;
00026 class CNurbsCurveRefArray;
00027 class NurbsCurve;
00028 class CKnotArray;
00029 
00030 //*****************************************************************************
00065 //*****************************************************************************
00066 
00067 class SICPPSDKDECL NurbsCurveList : public Geometry
00068 {
00069 public:
00071         NurbsCurveList();
00072 
00074         ~NurbsCurveList();
00075 
00079         NurbsCurveList(const CRef& in_ref);
00080 
00084         NurbsCurveList(const NurbsCurveList& in_obj);
00085 
00089         NurbsCurveList(const Geometry& in_obj);
00090 
00095         bool IsA( siClassID in_ClassID) const;
00096 
00100         siClassID GetClassID() const;
00101 
00107         NurbsCurveList& operator=(const NurbsCurveList& in_obj);
00108 
00114         NurbsCurveList& operator=(const Geometry& in_geom);
00115 
00121         NurbsCurveList& operator=(const CRef& in_ref);
00122 
00128         CStatus GetClosed(bool& out_bClosed) const;
00129 
00133         CNurbsCurveRefArray GetCurves()const;
00134 
00138         CControlPointRefArray GetControlPoints()const;
00139 
00146         CStatus GetLength(double& out_dLength)const;
00147 
00157         CStatus GetClosestCurvePosition
00158         (
00159                 MATH::CVector3&         in_vPosition,
00160                 LONG&                                   out_lCurveIndex,
00161                 double&                                 out_dSquaredDistance,
00162                 double&                                 out_dUValue,
00163                 MATH::CVector3&                 out_vPosition
00164         )const;
00165 
00172         CStatus Get
00173         (
00174                 siNurbsFormat                           in_siNurbsFormat,
00175                 CNurbsCurveDataArray&           out_curves
00176         )const;
00177 
00186         CStatus Set
00187         (
00188                 const CNurbsCurveDataArray&     in_curves,
00189                 siNurbsFormat                           in_siNurbsFormat = siSINurbs
00190         );
00191 
00199         CStatus AddCurve
00200         (
00201                 const CNurbsCurveData&          in_curve,
00202                 siNurbsFormat                           in_siNurbsFormat,
00203                 NurbsCurve&                                     out_NurbsCurve
00204         );
00205 
00206         private:
00207         NurbsCurveList * operator&() const;
00208         NurbsCurveList * operator&();
00209 };
00210 
00211 };
00212 
00213 #endif // __XSINURBSCURVELIST_H__