DATAKIT SDK  V2026.4
Dtk_OffsetSurface Class Reference

This is the Offset Surface Class. More...

+ Inheritance diagram for Dtk_OffsetSurface:

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_ErrorStatus _ComputeMultipleDerivative_withbasis (const Dtk_Double64 &inUvalue, const Dtk_Double64 &inVvalue, int inUmaxdiff, int inVmaxdiff, int inUVdiffsummax, Dtk_dir *outdirs, Dtk_dir *outdirsbasis, int exttype) const
 
Dtk_bool _HasInternalNurbs () const
 
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...
 
Dtk_SurfacePtr ComputeOffsetedSurface () const
 Compute the result Surface with the offset applied. For some surfaces, their type can be conserved, otherwise it returns a NurbsSurface. More...
 
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...
 
void DeleteCorrespondingNurbs ()
 
int DtkDynamicType (const int &inId)
 
virtual void dump (FILE *file=stdout)
 
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_Double64 GetOffset () const
 
virtual Dtk_Size_t GetSize () const
 
Dtk_SurfacePtr GetSurface () 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...
 
Dtk_InfoPtr & info ()
 
Dtk_bool IsTrimmed () const
 Return DTK_TRUE if Surface Is trimmed by parameter value. More...
 
virtual Dtk_bool IsUPeriodic () const
 Return DTK_TRUE If Periodic following U parameter. More...
 
virtual Dtk_bool IsVPeriodic () const
 Return DTK_TRUE If Periodic following V parameter. More...
 
virtual void PrepareTransfo ()
 
virtual Dtk_ErrorStatus SetTrimUVBox (Dtk_Double64 inTrimValues[])
 Set Surface Trim Box : Umin = inTrimValues[0] Umax = inTrimValues[1] Vmin = inTrimValues[2] Vmax = inTrimValues[3]. More...
 
virtual Dtk_NurbsSurfacePtr ToNurbs (const Dtk_Double64 *inTrimDomain=NULL) const
 Convert a surface into a Nurbs, keeping the parametrisation of the initial surface. More...
 
Dtk_ErrorStatus Transform (const Dtk_transfo &inTransfo)
 

Static Public Member Functions

static Dtk_OffsetSurfacePtr Create (const Dtk_OffsetSurface &in)
 Calls copy constructor to allocate a new object. More...
 
static Dtk_OffsetSurfacePtr Create (const Dtk_SurfacePtr &inSurf, const Dtk_Double64 &inOffset)
 Create an offset surface following surface normal. More...
 
static Dtk_OffsetSurface * DtkDynamicCast (Dtk_Object *s)
 

Protected Types

enum  { _typeID = DTK_TYPE_OBJECT }
 
enum  { _typeID = DTK_TYPE_ENTITY }
 
enum  { _typeID = DTK_TYPE_OFFSET_SURFACE }
 
enum  { _typeID = DTK_TYPE_SURFACE }
 

Protected Member Functions

virtual Dtk_Object * Clone ()
 
 Dtk_OffsetSurface ()
 
 Dtk_OffsetSurface (const Dtk_OffsetSurface &)
 
 Dtk_OffsetSurface (const Dtk_SurfacePtr &inSurf, const Dtk_Double64 &inOffset)
 
 Dtk_OffsetSurface (Dtk_OffsetSurface &&) DTK_NOEXCEPT
 
virtual ~Dtk_OffsetSurface ()
 

Protected Attributes

std::unique_ptr< Dtk_Handle > _Private
 
unsigned long count_
 

Detailed Description

This is the Offset Surface Class.

U parametrisation : like basis surface

V parametrisation : like basis surface

See also
Use Dtk_OffsetSurfacePtr class to handle it.

U parametrisation : like basis surface

V parametrisation : like basis surface

See also
Use Dtk_OffsetSurfacePtr class to handle it.

Member Enumeration Documentation

◆ anonymous enum

anonymous enum
protectedinherited
Enumerator
_typeID 

◆ anonymous enum

anonymous enum
protectedinherited
Enumerator
_typeID 

◆ anonymous enum

anonymous enum
protected
Enumerator
_typeID 

◆ anonymous enum

anonymous enum
protectedinherited
Enumerator
_typeID 

Constructor & Destructor Documentation

◆ Dtk_OffsetSurface() [1/4]

Dtk_OffsetSurface::Dtk_OffsetSurface ( )
protected

◆ Dtk_OffsetSurface() [2/4]

Dtk_OffsetSurface::Dtk_OffsetSurface ( const Dtk_OffsetSurface &  )
protected

◆ Dtk_OffsetSurface() [3/4]

Dtk_OffsetSurface::Dtk_OffsetSurface ( Dtk_OffsetSurface &&  )
protected

◆ Dtk_OffsetSurface() [4/4]

Dtk_OffsetSurface::Dtk_OffsetSurface ( const Dtk_SurfacePtr &  inSurf,
const Dtk_Double64 &  inOffset 
)
protected

◆ ~Dtk_OffsetSurface()

virtual Dtk_OffsetSurface::~Dtk_OffsetSurface ( )
protectedvirtual

Member Function Documentation

◆ _ComputeAnyDerivative()

virtual Dtk_ErrorStatus Dtk_OffsetSurface::_ComputeAnyDerivative ( Dtk_Double64  inUvalue,
Dtk_Double64  inVvalue,
int  inUdiff,
int  inVdiff,
Dtk_dir &  outdir,
int  exttype 
) const
virtual

Reimplemented from Dtk_Surface.

◆ _ComputeMultipleDerivative()

virtual Dtk_ErrorStatus Dtk_OffsetSurface::_ComputeMultipleDerivative ( Dtk_Double64  inUvalue,
Dtk_Double64  inVvalue,
int  inUmaxdiff,
int  inVmaxdiff,
int  inUVdiffsummax,
Dtk_dir *  outdirs,
int  exttype 
) const
virtual

Reimplemented from Dtk_Surface.

◆ _ComputeMultipleDerivative_withbasis()

Dtk_ErrorStatus Dtk_OffsetSurface::_ComputeMultipleDerivative_withbasis ( const Dtk_Double64 &  inUvalue,
const Dtk_Double64 &  inVvalue,
int  inUmaxdiff,
int  inVmaxdiff,
int  inUVdiffsummax,
Dtk_dir *  outdirs,
Dtk_dir *  outdirsbasis,
int  exttype 
) const

◆ _HasInternalNurbs()

Dtk_bool Dtk_Surface::_HasInternalNurbs ( ) const
inherited

◆ _Store()

virtual Dtk_ErrorStatus Dtk_OffsetSurface::_Store ( void *  )
virtual

Reimplemented from Dtk_Surface.

◆ Clone()

virtual Dtk_Object* Dtk_OffsetSurface::Clone ( )
protectedvirtual

Implements Dtk_Surface.

1495 { return new Dtk_OffsetSurface(*this); }

◆ ComputeBoundingBox()

Dtk_ErrorStatus Dtk_Surface::ComputeBoundingBox ( Dtk_pnt &  outMin,
Dtk_pnt &  outMax 
) const
inherited

Set Surface Parametrisation : Umin = inDomain[0] Umax = inDomain[1] Vmin = inDomain[2] Vmax = inDomain[3].

Compute Bounding Box

◆ ComputeNormal()

virtual Dtk_ErrorStatus Dtk_OffsetSurface::ComputeNormal ( const Dtk_Double64 &  inUValue,
const Dtk_Double64 &  inVValue,
Dtk_dir &  outDir 
) const
virtual

Compute Normal on UV point.

Reimplemented from Dtk_Surface.

◆ ComputeOffsetedSurface()

Dtk_SurfacePtr Dtk_OffsetSurface::ComputeOffsetedSurface ( ) const

Compute the result Surface with the offset applied. For some surfaces, their type can be conserved, otherwise it returns a NurbsSurface.

◆ ComputeUVPoint()

virtual Dtk_ErrorStatus Dtk_OffsetSurface::ComputeUVPoint ( const Dtk_Double64 &  inUValue,
const Dtk_Double64 &  inVValue,
Dtk_pnt &  outpnt 
) const
virtual

Compute 3D point.

Implements Dtk_Surface.

◆ ComputeUVto3DFirstDerivative()

Dtk_ErrorStatus Dtk_Surface::ComputeUVto3DFirstDerivative ( const Dtk_Double64 &  inUValue,
const Dtk_Double64 &  inVValue,
const Dtk_dir &  inUVFirstDerivative,
Dtk_dir &  out3DFirstDerivative 
) const
inherited

Compute 3D first derivative on UV point according to UV derivative.

◆ ComputeUVto3DSecondDerivative()

Dtk_ErrorStatus Dtk_Surface::ComputeUVto3DSecondDerivative ( const Dtk_Double64 &  inUValue,
const Dtk_Double64 &  inVValue,
const Dtk_dir &  inUVFirstDerivative,
const Dtk_dir &  inUVSecondDerivative,
Dtk_dir &  out3DSecondDerivative 
) const
inherited

Compute 3D second derivative on UV point according to UV derivatives.

◆ Create() [1/2]

static Dtk_OffsetSurfacePtr Dtk_OffsetSurface::Create ( const Dtk_OffsetSurface &  in)
static

Calls copy constructor to allocate a new object.

Parameters
inObject to copy from.

◆ Create() [2/2]

static Dtk_OffsetSurfacePtr Dtk_OffsetSurface::Create ( const Dtk_SurfacePtr &  inSurf,
const Dtk_Double64 &  inOffset 
)
static

Create an offset surface following surface normal.

Parameters
[in]inSurf: Surface to be offset
[in]inOffset: Size of offset
Returns
Dtk_OffsetSurfacePtr created surface

◆ DeleteCorrespondingNurbs()

void Dtk_Surface::DeleteCorrespondingNurbs ( )
inherited

◆ DtkDynamicCast()

static Dtk_OffsetSurface* Dtk_OffsetSurface::DtkDynamicCast ( Dtk_Object *  s)
static

◆ DtkDynamicType()

int Dtk_OffsetSurface::DtkDynamicType ( const int &  inId)
virtual

Reimplemented from Dtk_Surface.

◆ dump()

virtual void Dtk_Object::dump ( FILE *  file = stdout)
virtualinherited

◆ get_info()

Dtk_InfoPtr Dtk_Entity::get_info ( ) const
inherited

◆ get_type_detk()

type_detk Dtk_OffsetSurface::get_type_detk ( ) const
virtual

Implements Dtk_Entity.

◆ GetDomain()

virtual Dtk_ErrorStatus Dtk_OffsetSurface::GetDomain ( Dtk_Double64  outDomain[]) const
virtual

Get Surface Parametrisation : Umin = outDomain[0] Umax = outDomain[1] Vmin = outDomain[2] Vmax = outDomain[3].

Implements Dtk_Surface.

◆ GetID()

const Dtk_ID& Dtk_Entity::GetID ( ) const
inherited

Get Internal UniqueID.

Returns
InternalID

◆ GetOffset()

Dtk_Double64 Dtk_OffsetSurface::GetOffset ( ) const

◆ GetSize()

virtual Dtk_Size_t Dtk_OffsetSurface::GetSize ( ) const
virtual

Reimplemented from Dtk_Surface.

◆ GetSurface()

Dtk_SurfacePtr Dtk_OffsetSurface::GetSurface ( ) const

◆ GetTrimUVBox()

Dtk_ErrorStatus Dtk_Surface::GetTrimUVBox ( Dtk_Double64  outTrimValues[]) const
inherited

Get Surface Trim Box : Umin = outTrimValues[0] Umax = outTrimValues[1] Vmin = outTrimValues[2] Vmax = outTrimValues[3].

◆ info()

Dtk_InfoPtr& Dtk_Entity::info ( )
inherited

◆ IsTrimmed()

Dtk_bool Dtk_Surface::IsTrimmed ( ) const
inherited

Return DTK_TRUE if Surface Is trimmed by parameter value.

◆ IsUPeriodic()

virtual Dtk_bool Dtk_Surface::IsUPeriodic ( ) const
virtualinherited

Return DTK_TRUE If Periodic following U parameter.

Reimplemented in Dtk_SphericalSurface, Dtk_ToroidalSurface, Dtk_LinearExtrusionSurface, and Dtk_NurbsSurface.

◆ IsVPeriodic()

virtual Dtk_bool Dtk_Surface::IsVPeriodic ( ) const
virtualinherited

Return DTK_TRUE If Periodic following V parameter.

Reimplemented in Dtk_SphericalSurface, Dtk_ToroidalSurface, Dtk_LinearExtrusionSurface, and Dtk_NurbsSurface.

◆ PrepareTransfo()

virtual void Dtk_OffsetSurface::PrepareTransfo ( )
virtual

Reimplemented from Dtk_Entity.

◆ SetTrimUVBox()

virtual Dtk_ErrorStatus Dtk_Surface::SetTrimUVBox ( Dtk_Double64  inTrimValues[])
virtualinherited

Set Surface Trim Box : Umin = inTrimValues[0] Umax = inTrimValues[1] Vmin = inTrimValues[2] Vmax = inTrimValues[3].

Reimplemented in Dtk_StandardRevolutionSurface, and Dtk_RevolutionSurface.

◆ ToNurbs()

virtual Dtk_NurbsSurfacePtr Dtk_OffsetSurface::ToNurbs ( const Dtk_Double64 *  inTrimDomain = NULL) const
virtual

Convert a surface into a Nurbs, keeping the parametrisation of the initial surface.

Implements Dtk_Surface.

◆ Transform()

Dtk_ErrorStatus Dtk_OffsetSurface::Transform ( const Dtk_transfo &  inTransfo)
virtual

Implements Dtk_Entity.

Field Documentation

◆ _Private

std::unique_ptr<Dtk_Handle> Dtk_OffsetSurface::_Private
protected

◆ count_

unsigned long Dtk_Object::count_
protectedinherited
Dtk_OffsetSurface::Dtk_OffsetSurface
Dtk_OffsetSurface()
DTK_TYPE_ENTITY
@ DTK_TYPE_ENTITY
Definition: define.h:457
Dtk_Surface::_typeID
@ _typeID
Definition: util_geom_dtk.hpp:720
DTK_TYPE_OBJECT
@ DTK_TYPE_OBJECT
Definition: define.h:455
DTK_TYPE_SURFACE
@ DTK_TYPE_SURFACE
Definition: define.h:105
Dtk_OffsetSurface::_typeID
@ _typeID
Definition: util_geom_dtk.hpp:1490
Dtk_Entity::_typeID
@ _typeID
Definition: util_ent_dtk.hpp:371
Dtk_Object::_typeID
@ _typeID
Definition: dtk_object.hpp:10
DTK_TYPE_OFFSET_SURFACE
@ DTK_TYPE_OFFSET_SURFACE
Definition: define.h:106