This is the Nurbs Surface Class. It is part of the Dtk_NurbsSurface entity. More...
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 &s) |
static Dtk_SurfacePtr | Create (const Dtk_Surface &s) |
Create Surface by copy. More... | |
static Dtk_NurbsSurfacePtr | Create (const Dtk_tab< Dtk_SurfacePtr > &inSurfacesToMerge, Dtk_Double64 stichtol=DTK_TOLERANCE) |
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) |
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) |
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 | _copy (const Dtk_Object &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_ |
Friends | |
class | Dtk_SmartPtr< Dtk_NurbsSurface > |
This is the Nurbs Surface Class. It is part of the Dtk_NurbsSurface entity.
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protectedvirtual |
|
virtual |
Reimplemented from Dtk_Surface.
|
virtual |
Reimplemented from Dtk_Surface.
|
protectedinherited |
|
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 |
|
staticinherited |
Create Surface by copy.
|
static |
|
static |
|
static |
|
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.
|
friend |
|
protected |
|
protectedinherited |