CControlPointRefArray Class Reference



Your Ad Here

Related Scripting Object: ControlPointCollection

An array of ControlPoint object references representing the NurbsCurve or NurbsSurface control points. More...

#include <xsi_controlpoint.h>

Inheritance diagram for CControlPointRefArray:

CPointRefArray CRefArray List of all members.

Public Member Functions

  CControlPointRefArray ()
  ~CControlPointRefArray ()
  CControlPointRefArray (const CControlPointRefArray &in_array)
CRef  GetItem (LONG in_index) const
CRef  GetItem (const CString &in_name) const
LONG  GetCount () const
bool  IsValid () const
CStatus  GetArray (MATH::CVector4Array &out_vPositions) const
CStatus  PutArray (MATH::CVector4Array &in_vPositions)
CStatus  Dimension (siNurbsDirection in_siDirection, LONG &out_lDimension) const

Detailed Description

An array of ControlPoint object references representing the NurbsCurve or NurbsSurface control points.

Warning:
This specialized array is returned by NurbsCurve::GetControlPoints and NurbsSurface::GetControlPoints, it is not meant to be created and modified in user-defined functions. If you want to add and remove arbitrary items to a collection, you must use a CRefArray instead.
See also:
NurbsCurve::GetControlPoints, NurbsSurface::GetControlPoints, ControlPoint, CNurbsCurveData, CNurbsSurfaceData
Example:
        using namespace XSI;
        using namespace MATH;
        Application app;
        Model root = app.GetActiveSceneRoot();

        X3DObject circle;
        root.AddGeometry(L"Circle",L"NurbsCurve",L"",circle);

        NurbsCurveList curveList = circle.GetActivePrimitive().GetGeometry();

        NurbsCurve curve = curveList.GetCurves().GetItem(0);

        CControlPointRefArray cpArray = curve.GetControlPoints();

        CNurbsCurveData curveData;
        cpArray.GetArray(curveData.m_aControlPoints);

        curveData.m_bClosed = true;

        X3DObject circleCopyWithoutKnots;
        root.AddNurbsCurve(curveData,siSINurbs,L"",circleCopyWithoutKnots);


Constructor & Destructor Documentation

CControlPointRefArray (  ) 

Default constructor.

~CControlPointRefArray (  ) 

Default destructor.

CControlPointRefArray ( const CControlPointRefArray in_array  ) 

Copy constructor.

Parameters:
in_array  constant CControlPointRefArray reference object.


Member Function Documentation

CRef GetItem ( LONG  in_index  )  const [virtual]

Returns the NurbsCurve object at a specified index in the array.

Parameters:
in_index  The index of the NurbsCurve.
Returns:
A reference to the NurbsCurve object.

Reimplemented from CPointRefArray.

CRef GetItem ( const CString in_name  )  const [virtual]

Returns the NurbsCurve object in the array matching the specified name.

Parameters:
in_name  The name of the NurbsCurve.
Returns:
A reference to the NurbsCurve object.

Reimplemented from CPointRefArray.

LONG GetCount (  )  const [virtual]

Returns the number of NurbsSurface objects in the array.

Returns:
The number of NurbsSurface objects.

Reimplemented from CPointRefArray.

bool IsValid (  )  const [virtual]

Returns whether this array is a valid object.

Returns:
true if valid, false otherwise.

Reimplemented from CPointRefArray.

CStatus GetArray ( MATH::CVector4Array out_vPositions  )  const

Returns an array of control points for this nurbs component.

Return values:
out_vPositions  An array of positions for the control points.
Returns:
CStatus::OK success.

CStatus::Fail other failure.

CStatus PutArray ( MATH::CVector4Array in_vPositions  ) 

Sets an array of control points for this nurbs component. This function can only be used within a compiled operator or if no operators are attach to this geometry.

Parameters:
in_vPositions  The new positions for the control points.
Returns:
CStatus::OK success.

CStatus::CStatus::AccessDenied function used outside of a plug-in operator context.

CStatus Dimension ( siNurbsDirection  in_siDirection,
LONG &  out_lDimension  
) const

Returns the size of the ControlPoint reference array in a particular direction. For NurbsCurves use siUDirection.

Parameters:
in_siDirection  Direction of dimension required (one of the siNurbsDirection values).
Return values:
out_lDimension  The actual dimension.
Returns:
CStatus::OK success.

CStatus::InvalidArgument if the direction is invalid for this type of component (for example, siVDirection for a NurbsCurve).


The documentation for this class was generated from the following file:

Return to Softimage XSI Index


Your Ad Here