# CSLNurbsSurface Class Reference

`#include <NurbsSurface.h>`

Inheritance diagram for CSLNurbsSurface:

List of all members.

## Public Types
enum | EParametrizationType { SI_UNIFORM, SI_NON_UNIFORM, SI_CHORD_LENGTH, SI_CENTRIPETAL }
typedef CSLArrayProxy< SI_Float, SI_Float, 1 > | CSLFloatArray
typedef CSLArrayProxy< CSIBCVector4D, SI_Float, 4 > | CSLVector4DArray
## Public Member Functions
| CSLNurbsSurface (CSLScene *in_pScene, CSLModel *in_pModel, CdotXSITemplate *in_pTemplate)
virtual | ~CSLNurbsSurface ()
virtual SI_Error | Fix ()
virtual SI_Error | Synchronize ()
virtual ETemplateType | Type ()
SI_Int | GetUDegree ()
SI_Void | SetUDegree (SI_Int in_nValue)
SI_Int | GetVDegree ()
SI_Void | SetVDegree (SI_Int in_nValue)
SI_Bool | GetUClosedFlag ()
SI_Void | SetUClosedFlag (SI_Bool in_nValue)
SI_Bool | GetVClosedFlag ()
SI_Void | SetVClosedFlag (SI_Bool in_nValue)
EParametrizationType | GetParametrization ()
SI_Void | SetParametrization (EParametrizationType in_Type)
SI_Int | GetUKnotCount ()
CSLFloatArray * | GetUKnotList ()
SI_Float * | GetUKnotListPtr ()
SI_Int | GetVKnotCount ()
CSLFloatArray * | GetVKnotList ()
SI_Float * | GetVKnotListPtr ()
SI_Int | GetUControlPointCount ()
SI_Void | SetUControlPointCount (SI_Int in_nValue)
SI_Int | GetVControlPointCount ()
SI_Void | SetVControlPointCount (SI_Int in_nValue)
SI_Int | GetControlPointCount ()
CSLVector4DArray * | GetControlPointList ()
CSIBCVector4D * | GetControlPointListPtr ()
CSLNurbsProjection * | AddNurbsProjection ()
SI_Error | RemoveNurbsProjection (SI_Int in_nIndex)
SI_Error | RemoveNurbsProjection (CSLNurbsProjection *in_pToRemove)
SI_Error | ClearNurbsProjections ()
CSLNurbsProjection * | ConnectNurbsProjection (CSLNurbsProjection *in_pToConnect)
CSLNurbsProjection ** | GetNurbsProjections ()
SI_Int | GetNurbsProjectionCount ()
CSLNurbsProjection * | FindNurbsProjection (SI_Char *in_szNurbsProjectionName)
CSLNurbsTrim * | AddNurbsTrim ()
SI_Error | RemoveNurbsTrim (SI_Int in_nIndex)
SI_Error | RemoveNurbsTrim (CSLNurbsTrim *in_pToRemove)
SI_Error | ClearNurbsTrims ()
CSLNurbsTrim * | ConnectNurbsTrim (CSLNurbsTrim *in_pToConnect)
CSLNurbsTrim ** | GetNurbsTrims ()
SI_Int | GetNurbsTrimCount ()
CSLNurbsTrim * | FindNurbsTrim (SI_Char *in_szNurbsTrimName)

## Detailed Description

Describes a single NURBS surface (see the SI_NurbsSurface template reference).

## Member Typedef Documentation

typedef CSLArrayProxy<SI_Float, SI_Float, 1> CSLFloatArray

Proxy class that allows modifying a list of SI_Float like an array.

typedef CSLArrayProxy<CSIBCVector4D, SI_Float, 4> CSLVector4DArray

Proxy class that allows modifying a list of CSIBCVector4D objects like an array.

## Member Enumeration Documentation

enum EParametrizationType

The EParametrizationType enum contains possible types for knot parametrization

Enumerator:

  SI_UNIFORM | Uniform parametrization.
  SI_NON_UNIFORM | Non-uniform parametrization.
  SI_CHORD_LENGTH | Chord length parametrization.
  SI_CENTRIPETAL | Centripetal parametrization.

## Constructor & Destructor Documentation

CSLNurbsSurface | ( | CSLScene * | in_pScene,
|  | CSLModel * | in_pModel,
|  | CdotXSITemplate * | in_pTemplate |
| ) |  |  |

Constructor

Parameters:

  | in_pScene | Parent scene
  | in_pModel | Parent model
  | in_pTemplate | Refered template

Returns:
  an instance of CSLNurbsSurface

virtual ~CSLNurbsSurface | ( |  | ) | `[virtual]`

Destructor

## Member Function Documentation

virtual SI_Error Fix | ( |  | ) | `[virtual]`

Validates the content of this NURBS surface and fixes it if necessary

Returns:
  SI_Error whether the fix has been successful

Reimplemented from CSLTemplate.

virtual SI_Error Synchronize | ( |  | ) | `[virtual]`

Synchronizes this NURBS surface instance with its IO layer representation

Returns:
  SI_Error

Return values:

  | SI_SUCCESS | this function always returns SI_SUCCESS

Reimplemented from CSLGeometry.

virtual ETemplateType Type | ( |  | ) | `[inline, virtual]`

Get the template type

Returns:
  ETemplateType the template type of the NURBS surface

Implements CSLTemplate.

SI_Int GetUDegree | ( |  | ) |

Return the degree of the surface in the U direction.

Returns:
  SI_Int Degree value in U.

SI_Void SetUDegree | ( | SI_Int | in_nValue | ) |

Change the degree of the surface in the U direction.

Parameters:

  | SI_Int | New degree value in U.

Returns:
  SI_Void

SI_Int GetVDegree | ( |  | ) |

Return the degree of the surface in the V direction.

Returns:
  SI_Int Degree value in V.

SI_Void SetVDegree | ( | SI_Int | in_nValue | ) |

Change the degree of the surface in the V direction.

Parameters:

  | SI_Int | New degree value in V.

Returns:
  SI_Void

SI_Bool GetUClosedFlag | ( |  | ) |

Return the closed flag of the surface in the U direction.

Returns:
  SI_Bool Closed flag in U.

SI_Void SetUClosedFlag | ( | SI_Bool | in_nValue | ) |

Change the closed flag of the surface in the U direction.

Parameters:

  | SI_Bool | New closed flag in U.

Returns:
  SI_Void

SI_Bool GetVClosedFlag | ( |  | ) |

Return the closed flag of the surface in the V direction.

Returns:
  SI_Bool Closed flag in V.

SI_Void SetVClosedFlag | ( | SI_Bool | in_nValue | ) |

Change the closed flag of the surface in the V direction.

Parameters:

  | SI_Bool | New closed flag in V.

Returns:
  SI_Void

EParametrizationType GetParametrization | ( |  | ) |

Return the parametrization type of the surface.

Returns:
  EParametrizationType Parametrization type.

SI_Void SetParametrization | ( | EParametrizationType | in_Type | ) |

Change the parametrization type of the surface.

Parameters:

  | EParametrizationType | New parametrization type.

Returns:
  SI_Void

SI_Int GetUKnotCount | ( |  | ) |

Return the number of knots of the surface in the U direction.

Returns:
  SI_Int Number of knots in U.

CSLFloatArray* GetUKnotList | ( |  | ) |

Return the knot values array proxy in the U direction.

Returns:
  CSLFloatArray* Pointer to an array proxy of knots values in U.

SI_Float* GetUKnotListPtr | ( |  | ) |

Returns an array of SI_Float containing the knot values in the U direction.

Returns:
  SI_Float* Array of knots values in U.

SI_Int GetVKnotCount | ( |  | ) |

Return the number of knots of the surface in the V direction.

Returns:
  SI_Int Number of knots in V.

CSLFloatArray* GetVKnotList | ( |  | ) |

Return the knot values array proxy in the V direction.

Returns:
  CSLFloatArray* Pointer to an array proxy of knots values in V.

SI_Float* GetVKnotListPtr | ( |  | ) |

Returns an array of SI_Float containing the knot values in the V direction.

Returns:
  SI_Float* Array of knots values in V.

SI_Int GetUControlPointCount | ( |  | ) |

Return the number of control points of the surface in the U direction.

Returns:
  SI_Int Number of control points in U.

SI_Void SetUControlPointCount | ( | SI_Int | in_nValue | ) |

Change the number of control points of the surface in the U direction.

Parameters:

  | EParametrizationType | New number of control points in U.

Returns:
  SI_Void.

SI_Int GetVControlPointCount | ( |  | ) |

Return the number of control points of the surface in the V direction.

Returns:
  SI_Int Number of control points in V.

SI_Void SetVControlPointCount | ( | SI_Int | in_nValue | ) |

Change the number of control points of the surface in the V direction.

Parameters:

  | EParametrizationType | New number of control points in V.

Returns:
  SI_Void.

SI_Int GetControlPointCount | ( |  | ) |

Return the total number of control points of the surface.

Returns:
  SI_Int Number of knots.

CSLVector4DArray* GetControlPointList | ( |  | ) |

Return the control point values array proxy.

Returns:
  CSLVector4DArray* Pointer to an array proxy of indexed normals.

CSIBCVector4D* GetControlPointListPtr | ( |  | ) |

Returns an array of SI_Float containing the control point values.

Returns:
  SI_Float* Array of control point values.

CSLNurbsProjection* AddNurbsProjection | ( |  | ) |

Adds an nurbs projection to the nurbs surface

Returns:
  CSLNurbsProjection Pointer to the newly added nurbs projection

Note:
  The scene must support 3.6 to add a nurbs projection

SI_Error RemoveNurbsProjection | ( | SI_Int | in_nIndex | ) |

Removes a nurbs projection from the nurbs surface

Parameters:

  | in_nIndex | Index of the nurbs projection to remove

Returns:
  SI_Error Whether or not the nurbs projection could be removed

SI_Error RemoveNurbsProjection | ( | CSLNurbsProjection * | in_pToRemove | ) |

Removes an nurbs projection from the nurbs surface

Parameters:

  | in_pToRemove | Pointer to the nurbs projection to remove

Returns:
  SI_Error Whether or not the nurbs projection could be removed

SI_Error ClearNurbsProjections | ( |  | ) |

Removes all nurbs projections from the nurbs surface

Returns:
  SI_Error Whether or not the list could be cleared

CSLNurbsProjection* ConnectNurbsProjection | ( | CSLNurbsProjection * | in_pToConnect | ) |

Adds an exisiting nurbs projection to the nurbs surface

Parameters:

  | in_pToConnect | Pointer to the nurbs projection to add

Returns:
  The added nurbs projection or null if it already exists in the list

CSLNurbsProjection** GetNurbsProjections | ( |  | ) |

Gets an array of all nurbs projection contained on this nurbs surface

Returns:
  CSLNurbsProjection Pointer to the list

Note:
  The scene must support 3.6 to add a nurbs projection

SI_Int GetNurbsProjectionCount | ( |  | ) |

Gets the total number of nurbs projections

Returns:
  SI_Int Number of nurbs projections

CSLNurbsProjection* FindNurbsProjection | ( | SI_Char * | in_szNurbsProjectionName | ) |

Searches for a given nurbs projection

Parameters:

  | in_szNurbsProjectionName | Name of the nurbs projection to look for

Returns:
  CSLNurbsProjection Pointer to the nurbs projection or null if it cannot be found

CSLNurbsTrim* AddNurbsTrim | ( |  | ) |

Adds an nurbs trim to the nurbs surface

Returns:
  CSLNurbsTrimList Pointer to the newly added nurbs trim

SI_Error RemoveNurbsTrim | ( | SI_Int | in_nIndex | ) |

Removes a nurbs trim from the nurbs surface

Parameters:

  | in_nIndex | Index of the nurbs trim to remove

Returns:
  SI_Error Whether or not the nurbs trim could be removed

Note:
  The scene must support 3.6 to add a nurbs trim

SI_Error RemoveNurbsTrim | ( | CSLNurbsTrim * | in_pToRemove | ) |

Removes an nurbs trim from the nurbs surface

Parameters:

  | in_pToRemove | Pointer to the nurbs trim to remove

Returns:
  SI_Error Whether or not the nurbs trim could be removed

SI_Error ClearNurbsTrims | ( |  | ) |

Removes all nurbs trims from the nurbs surface

Returns:
  SI_Error Whether or not the list could be cleared

CSLNurbsTrim* ConnectNurbsTrim | ( | CSLNurbsTrim * | in_pToConnect | ) |

Adds an exisiting nurbs trim to the nurbs surface

Parameters:

  | in_pToConnect | Pointer to the nurbs trim to add

Returns:
  The added nurbs trim or null if it already exists in the list

CSLNurbsTrim** GetNurbsTrims | ( |  | ) |

Gets an array of all nurbs trims contained on this nurbs surface

Returns:
  CSLNurbsTrim Pointer to the list

Note:
  The scene must support 3.6 to add a nurbs trim

SI_Int GetNurbsTrimCount | ( |  | ) |

Gets the total number of nurbs trims

Returns:
  SI_Int Number of nurbs trims

CSLNurbsTrim* FindNurbsTrim | ( | SI_Char * | in_szNurbsTrimName | ) |

Searches for a given nurbs trim

Parameters:

  | in_szNurbsTrimName | Name of the nurbs trim to look for

Returns:
  CSLNurbsTrim Pointer to the nurbs trim or null if it cannot be found

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

- NurbsSurface.h