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__