This is the Nurbs Surface Class. More...
 Inheritance diagram for Dtk_NurbsSurface:Public Member Functions | |
| virtual Dtk_ErrorStatus | _ComputeAnyDerivative (Dtk_Double64 inUvalue, Dtk_Double64 inVvalue, int inUdiff, int inVdiff, Dtk_dir &outdir, int exttype) const | 
| virtual Dtk_ErrorStatus | _ComputeMultipleDerivative (Dtk_Double64 inUvalue, Dtk_Double64 inVvalue, int inUmaxdiff, int inVmaxdiff, int inUVdiffsummax, Dtk_dir *outdirs, int exttype) const | 
| Dtk_bool | _HasInternalNurbs () const | 
| Dtk_ErrorStatus | _KnotInsertion (const Dtk_Double64 &inParameter, const Dtk_Size_t &inOccurence, const Dtk_bool &inUSplit, Dtk_Double64 inTolerance=DTK_TOLERANCE) | 
| int | _KnotRemoval (const Dtk_Double64 &inParameter, const int &inOccurence, const Dtk_bool &inUSplit, const Dtk_Double64 &inTolerance) | 
| virtual Dtk_ErrorStatus | _Store (void *) | 
| Dtk_ErrorStatus | ComputeBoundingBox (Dtk_pnt &outMin, Dtk_pnt &outMax) const | 
| Set Surface Parametrisation : Umin = inDomain[0] Umax = inDomain[1] Vmin = inDomain[2] Vmax = inDomain[3].  More... | |
| virtual Dtk_ErrorStatus | ComputeNormal (const Dtk_Double64 &inUValue, const Dtk_Double64 &inVValue, Dtk_dir &outDir) const | 
| Compute Normal on UV point.  More... | |
| virtual Dtk_ErrorStatus | ComputeUDerivative (const Dtk_Double64 &inUValue, const Dtk_Double64 &inVValue, Dtk_dir &outdir) const | 
| virtual Dtk_ErrorStatus | ComputeUVPoint (const Dtk_Double64 &inUValue, const Dtk_Double64 &inVValue, Dtk_pnt &outpnt) const | 
| Compute 3D point.  More... | |
| Dtk_ErrorStatus | ComputeUVto3DFirstDerivative (const Dtk_Double64 &inUValue, const Dtk_Double64 &inVValue, const Dtk_dir &inUVFirstDerivative, Dtk_dir &out3DFirstDerivative) const | 
| Compute 3D first derivative on UV point according to UV derivative.  More... | |
| Dtk_ErrorStatus | ComputeUVto3DSecondDerivative (const Dtk_Double64 &inUValue, const Dtk_Double64 &inVValue, const Dtk_dir &inUVFirstDerivative, const Dtk_dir &inUVSecondDerivative, Dtk_dir &out3DSecondDerivative) const | 
| Compute 3D second derivative on UV point according to UV derivatives.  More... | |
| virtual Dtk_ErrorStatus | ComputeVDerivative (const Dtk_Double64 &inUValue, const Dtk_Double64 &inVValue, Dtk_dir &outdir) const | 
| void | DeleteCorrespondingNurbs () | 
| int | DtkDynamicType (const int &inId) | 
| virtual void | dump (FILE *file=stdout) | 
| Dtk_NurbsSurfacePtr | ForceG1Continuity (Dtk_Double64 tolerance_to_remove=0.0005) const | 
| Dtk_InfoPtr | get_info () const | 
| type_detk | get_type_detk () const | 
| virtual Dtk_ErrorStatus | GetDomain (Dtk_Double64 outDomain[]) const | 
| Get Surface Parametrisation : Umin = outDomain[0] Umax = outDomain[1] Vmin = outDomain[2] Vmax = outDomain[3].  More... | |
| const Dtk_ID & | GetID () const | 
| Get Internal UniqueID.  More... | |
| Dtk_Size_t | GetNumKnotsU () const | 
| Dtk_Size_t | GetNumKnotsV () const | 
| Dtk_Size_t | GetNumPointsU () const | 
| Dtk_Size_t | GetNumPointsV () const | 
| virtual Dtk_Size_t | GetSize () const | 
| Dtk_ErrorStatus | GetTrimUVBox (Dtk_Double64 outTrimValues[]) const | 
| Get Surface Trim Box : Umin = outTrimValues[0] Umax = outTrimValues[1] Vmin = outTrimValues[2] Vmax = outTrimValues[3].  More... | |
| type_detk | GetTypeBeforeConversion () const | 
| Dtk_UInt32 | GetUDegree () const | 
| Dtk_UInt32 | GetUKnotMultiplicity (const Dtk_Size_t &inIndex) const | 
| Dtk_Double64 | GetUKnotValue (const Dtk_Size_t &inIndex) const | 
| Dtk_Double64 * | GetUnpackedUKnot () const | 
| Dtk_Double64 * | GetUnpackedVKnot () const | 
| Dtk_UInt32 | GetVDegree () const | 
| Dtk_UInt32 | GetVKnotMultiplicity (const Dtk_Size_t &inIndex) const | 
| Dtk_Double64 | GetVKnotValue (const Dtk_Size_t &inIndex) const | 
| Dtk_Double64 | GetWeight (const Dtk_Size_t &inUIndex, const Dtk_Size_t &inVIndex) const | 
| Dtk_InfoPtr & | info () | 
| Dtk_bool | IsBezier () const | 
| Dtk_bool | IsPlane () const | 
| Dtk_bool | IsRationnal () const | 
| Dtk_bool | IsTrimmed () const | 
| Return DTK_TRUE if Surface Is trimmed by parameter value.  More... | |
| Dtk_bool | IsUniform () const | 
| virtual Dtk_bool | IsUPeriodic () const | 
| return DTK_TRUE if nurbs is periodic in U  More... | |
| virtual Dtk_bool | IsVPeriodic () const | 
| return DTK_TRUE if nurbs is periodic in V  More... | |
| Dtk_pnt & | Point (const Dtk_Size_t &inUIndex, const Dtk_Size_t &inVIndex) | 
| const Dtk_pnt & | Point (const Dtk_Size_t &inUIndex, const Dtk_Size_t &inVIndex) const | 
| virtual void | PrepareTransfo () | 
| virtual Dtk_ErrorStatus | Reparam (Dtk_Double64 inDomain[]) | 
| void | SetIsUPeriodic (Dtk_bool inPeriodicFlag) | 
| void | SetIsVPeriodic (Dtk_bool inPeriodicFlag) | 
| virtual Dtk_ErrorStatus | SetTrimUVBox (Dtk_Double64 inTrimValues[]) | 
| Set Surface Trim Box : Umin = inTrimValues[0] Umax = inTrimValues[1] Vmin = inTrimValues[2] Vmax = inTrimValues[3].  More... | |
| void | SetTypeBeforeConversion (type_detk type) | 
| Dtk_ErrorStatus | Split (Dtk_Double64 inTrimDom[4], Dtk_Double64 inTolerance=DTK_TOLERANCE) | 
| Dtk_ErrorStatus | SplitAt (const Dtk_Double64 &inParameter, const Dtk_bool &inUSplit, const Dtk_bool &inKeepLeft, Dtk_NurbsSurfacePtr &outOtherPart, Dtk_Double64 inTolerance=DTK_TOLERANCE) | 
| virtual Dtk_NurbsSurfacePtr | ToNurbs (const Dtk_Double64 *inTrimDomain=NULL) const | 
| Convert a surface into a Nurbs, keeping the parametrisation of the initial surface.  More... | |
| virtual Dtk_ErrorStatus | Transform (const Dtk_transfo &inTransfo) | 
Static Public Member Functions | |
| static Dtk_NurbsSurfacePtr | Create (const Dtk_NurbsSurface &in) | 
| Calls copy constructor to allocate a new object.  More... | |
| static Dtk_SurfacePtr | Create (const Dtk_Surface &in) | 
| static Dtk_NurbsSurfacePtr | Create (const Dtk_tab< Dtk_SurfacePtr > &inSurfacesToMerge, Dtk_Double64 stichtol=DTK_TOLERANCE) | 
| Calls full featured constructor to allocate a new object.  More... | |
| static Dtk_NurbsSurfacePtr | Create (const Dtk_UInt32 &inUDegree, const Dtk_UInt32 &inVDegree, const Dtk_tab< Dtk_Double64 > &inUKnots, const Dtk_tab< Dtk_Double64 > &inVKnots, const Dtk_tab< Dtk_pnt > &inControlPoints, const Dtk_tab< Dtk_Double64 > &inWeights=Dtk_tab< Dtk_Double64 >(), type_detk inSurfaceType=DTK_TYPE_NURBS_SURFACE) | 
| Calls full featured constructor to allocate a new object.  More... | |
| static Dtk_NurbsSurfacePtr | Create (const Dtk_UInt32 &inUDegree, const Dtk_UInt32 &inVDegree, const Dtk_tab< Dtk_Double64 > &inUKnotsValues, const Dtk_tab< Dtk_Double64 > &inVKnotsValues, const Dtk_tab< Dtk_UChar8 > &inUKnotsMultiplicities, const Dtk_tab< Dtk_UChar8 > &inVKnotsMultiplicities, const Dtk_tab< Dtk_tab< Dtk_pnt > > &inControlPoints, const Dtk_tab< Dtk_tab< Dtk_Double64 > > &inWeights=Dtk_tab< Dtk_tab< Dtk_Double64 > >(), type_detk inSurfaceType=DTK_TYPE_NURBS_SURFACE, const Dtk_UInt32 &inTargetUDegree=0, const Dtk_UInt32 &inTargetVDegree=0) | 
| Calls full featured constructor to allocate a new object.  More... | |
| static Dtk_NurbsSurface * | DtkDynamicCast (Dtk_Object *s) | 
Protected Types | |
| enum | { _typeID = DTK_TYPE_OBJECT } | 
| enum | { _typeID = DTK_TYPE_ENTITY } | 
| enum | { _typeID = DTK_TYPE_NURBS_SURFACE } | 
| enum | { _typeID = DTK_TYPE_SURFACE } | 
Protected Member Functions | |
| void | _copy (const Dtk_Entity &s) | 
| void | _init () | 
| void | _reset () | 
| virtual Dtk_Object * | Clone () | 
| Dtk_NurbsSurface () | |
| Dtk_NurbsSurface (const Dtk_NurbsSurface &inSurfaceToCopy) | |
| Dtk_NurbsSurface (const Dtk_tab< Dtk_SurfacePtr > &inSurfacesToMerge, Dtk_Double64 stichtol) | |
| Dtk_NurbsSurface (const Dtk_UInt32 &inUDegree, const Dtk_UInt32 &inVDegree, const Dtk_tab< Dtk_Double64 > &inUKnots, const Dtk_tab< Dtk_Double64 > &inVKnots, const Dtk_tab< Dtk_pnt > &inControlPoints, const Dtk_tab< Dtk_Double64 > &inWeights=Dtk_tab< Dtk_Double64 >(), type_detk inSurfaceType=DTK_TYPE_NURBS_SURFACE) | |
| Dtk_NurbsSurface (const Dtk_UInt32 &inUDegree, const Dtk_UInt32 &inVDegree, const Dtk_tab< Dtk_Double64 > &inUKnotsValues, const Dtk_tab< Dtk_Double64 > &inVKnotsValues, const Dtk_tab< Dtk_UChar8 > &inUKnotsMultiplicities, const Dtk_tab< Dtk_UChar8 > &inVKnotsMultiplicities, const Dtk_tab< Dtk_tab< Dtk_pnt > > &inControlPoints, const Dtk_tab< Dtk_tab< Dtk_Double64 > > &inWeights=Dtk_tab< Dtk_tab< Dtk_Double64 > >(), type_detk inSurfaceType=DTK_TYPE_NURBS_SURFACE) | |
| virtual | ~Dtk_NurbsSurface () | 
Protected Attributes | |
| Dtk_Handle * | _Private | 
| unsigned long | count_ | 
This is the Nurbs Surface Class.
      
  | 
  protected | 
      
  | 
  protected | 
      
  | 
  protected | 
      
  | 
  protected | 
      
  | 
  protected | 
      
  | 
  protectedvirtual | 
      
  | 
  virtual | 
Reimplemented from Dtk_Surface.
      
  | 
  virtual | 
Reimplemented from Dtk_Surface.
      
  | 
  protectedinherited | 
      
  | 
  inherited | 
      
  | 
  protectedinherited | 
| Dtk_ErrorStatus Dtk_NurbsSurface::_KnotInsertion | ( | const Dtk_Double64 & | inParameter, | 
| const Dtk_Size_t & | inOccurence, | ||
| const Dtk_bool & | inUSplit, | ||
| Dtk_Double64 | inTolerance = DTK_TOLERANCE  | 
        ||
| ) | 
| int Dtk_NurbsSurface::_KnotRemoval | ( | const Dtk_Double64 & | inParameter, | 
| const int & | inOccurence, | ||
| const Dtk_bool & | inUSplit, | ||
| const Dtk_Double64 & | inTolerance | ||
| ) | 
      
  | 
  protectedinherited | 
      
  | 
  virtual | 
Reimplemented from Dtk_Surface.
      
  | 
  protectedvirtual | 
Implements Dtk_Surface.
      
  | 
  inherited | 
Set Surface Parametrisation : Umin = inDomain[0] Umax = inDomain[1] Vmin = inDomain[2] Vmax = inDomain[3].
Compute Bounding Box
      
  | 
  virtual | 
Compute Normal on UV point.
Reimplemented from Dtk_Surface.
      
  | 
  virtual | 
      
  | 
  virtual | 
Compute 3D point.
Implements Dtk_Surface.
      
  | 
  inherited | 
Compute 3D first derivative on UV point according to UV derivative.
      
  | 
  inherited | 
Compute 3D second derivative on UV point according to UV derivatives.
      
  | 
  virtual | 
      
  | 
  static | 
Calls copy constructor to allocate a new object.
| in | Object to copy from. | 
      
  | 
  staticinherited | 
      
  | 
  static | 
Calls full featured constructor to allocate a new object.
      
  | 
  static | 
Calls full featured constructor to allocate a new object.
Calls full featured constructor to allocate a new object.
      
  | 
  static | 
Calls full featured constructor to allocate a new object.
      
  | 
  inherited | 
      
  | 
  static | 
      
  | 
  virtual | 
Reimplemented from Dtk_Surface.
      
  | 
  virtualinherited | 
| Dtk_NurbsSurfacePtr Dtk_NurbsSurface::ForceG1Continuity | ( | Dtk_Double64 | tolerance_to_remove = 0.0005 | ) | const | 
      
  | 
  inherited | 
      
  | 
  virtual | 
Implements Dtk_Entity.
      
  | 
  virtual | 
Get Surface Parametrisation : Umin = outDomain[0] Umax = outDomain[1] Vmin = outDomain[2] Vmax = outDomain[3].
Implements Dtk_Surface.
      
  | 
  inherited | 
Get Internal UniqueID.
| Dtk_Size_t Dtk_NurbsSurface::GetNumKnotsU | ( | ) | const | 
| Dtk_Size_t Dtk_NurbsSurface::GetNumKnotsV | ( | ) | const | 
| Dtk_Size_t Dtk_NurbsSurface::GetNumPointsU | ( | ) | const | 
| Dtk_Size_t Dtk_NurbsSurface::GetNumPointsV | ( | ) | const | 
      
  | 
  virtual | 
Reimplemented from Dtk_Surface.
      
  | 
  inherited | 
Get Surface Trim Box : Umin = outTrimValues[0] Umax = outTrimValues[1] Vmin = outTrimValues[2] Vmax = outTrimValues[3].
| type_detk Dtk_NurbsSurface::GetTypeBeforeConversion | ( | ) | const | 
| Dtk_UInt32 Dtk_NurbsSurface::GetUDegree | ( | ) | const | 
| Dtk_UInt32 Dtk_NurbsSurface::GetUKnotMultiplicity | ( | const Dtk_Size_t & | inIndex | ) | const | 
| Dtk_Double64 Dtk_NurbsSurface::GetUKnotValue | ( | const Dtk_Size_t & | inIndex | ) | const | 
| Dtk_Double64* Dtk_NurbsSurface::GetUnpackedUKnot | ( | ) | const | 
| Dtk_Double64* Dtk_NurbsSurface::GetUnpackedVKnot | ( | ) | const | 
| Dtk_UInt32 Dtk_NurbsSurface::GetVDegree | ( | ) | const | 
| Dtk_UInt32 Dtk_NurbsSurface::GetVKnotMultiplicity | ( | const Dtk_Size_t & | inIndex | ) | const | 
| Dtk_Double64 Dtk_NurbsSurface::GetVKnotValue | ( | const Dtk_Size_t & | inIndex | ) | const | 
| Dtk_Double64 Dtk_NurbsSurface::GetWeight | ( | const Dtk_Size_t & | inUIndex, | 
| const Dtk_Size_t & | inVIndex | ||
| ) | const | 
      
  | 
  inherited | 
| Dtk_bool Dtk_NurbsSurface::IsBezier | ( | ) | const | 
| Dtk_bool Dtk_NurbsSurface::IsPlane | ( | ) | const | 
| Dtk_bool Dtk_NurbsSurface::IsRationnal | ( | ) | const | 
      
  | 
  inherited | 
Return DTK_TRUE if Surface Is trimmed by parameter value.
| Dtk_bool Dtk_NurbsSurface::IsUniform | ( | ) | const | 
      
  | 
  virtual | 
return DTK_TRUE if nurbs is periodic in U
Reimplemented from Dtk_Surface.
      
  | 
  virtual | 
return DTK_TRUE if nurbs is periodic in V
Reimplemented from Dtk_Surface.
| Dtk_pnt& Dtk_NurbsSurface::Point | ( | const Dtk_Size_t & | inUIndex, | 
| const Dtk_Size_t & | inVIndex | ||
| ) | 
| const Dtk_pnt& Dtk_NurbsSurface::Point | ( | const Dtk_Size_t & | inUIndex, | 
| const Dtk_Size_t & | inVIndex | ||
| ) | const | 
      
  | 
  virtualinherited | 
Reimplemented in Dtk_OffsetSurface.
      
  | 
  virtual | 
| void Dtk_NurbsSurface::SetIsUPeriodic | ( | Dtk_bool | inPeriodicFlag | ) | 
| void Dtk_NurbsSurface::SetIsVPeriodic | ( | Dtk_bool | inPeriodicFlag | ) | 
      
  | 
  virtualinherited | 
Set Surface Trim Box : Umin = inTrimValues[0] Umax = inTrimValues[1] Vmin = inTrimValues[2] Vmax = inTrimValues[3].
Reimplemented in Dtk_StandardRevolutionSurface, and Dtk_RevolutionSurface.
| void Dtk_NurbsSurface::SetTypeBeforeConversion | ( | type_detk | type | ) | 
| Dtk_ErrorStatus Dtk_NurbsSurface::Split | ( | Dtk_Double64 | inTrimDom[4], | 
| Dtk_Double64 | inTolerance = DTK_TOLERANCE  | 
        ||
| ) | 
| Dtk_ErrorStatus Dtk_NurbsSurface::SplitAt | ( | const Dtk_Double64 & | inParameter, | 
| const Dtk_bool & | inUSplit, | ||
| const Dtk_bool & | inKeepLeft, | ||
| Dtk_NurbsSurfacePtr & | outOtherPart, | ||
| Dtk_Double64 | inTolerance = DTK_TOLERANCE  | 
        ||
| ) | 
      
  | 
  virtual | 
Convert a surface into a Nurbs, keeping the parametrisation of the initial surface.
Implements Dtk_Surface.
      
  | 
  virtual | 
Implements Dtk_Entity.
      
  | 
  protected | 
      
  | 
  protectedinherited |