OpendTect  7.0
Public Member Functions | Protected Member Functions | List of all members
Geometry::ParametricCurve Class Referenceabstract

A curve that is defined by regularly sampled positions.
More...

Inheritance diagram for Geometry::ParametricCurve:
[legend]

Public Member Functions

 ~ParametricCurve ()
 
virtual Coord3 computePosition (float) const =0
 
virtual Coord3 computeTangent (float) const =0
 
IteratorcreateIterator () const override
 
virtual bool findClosestIntersection (float &p, const Plane3 &, float eps=1e-2) const
 
virtual bool findClosestPosition (float &p, const Coord3 &, float eps=1e-2) const
 
void getPosIDs (TypeSet< GeomPosID > &, bool=true) const override
 
virtual bool insertPosition (GeomPosID, const Coord3 &)=0
 
virtual bool isCircular () const
 
virtual StepInterval< int > parameterRange () const =0
 
- Public Member Functions inherited from Geometry::Element
 Element ()
 
virtual ~Element ()
 
void blockCallBacks (bool yn, bool flush=true)
 
bool blocksCallBacks () const
 
virtual IntervalND< float > boundingBox (bool approx) const
 
virtual Elementclone () const =0
 
virtual uiString errMsg () const
 
virtual Coord3 getPosition (GeomPosID) const =0
 
virtual bool isChanged () const
 
virtual bool isDefined (GeomPosID) const =0
 
virtual void resetChangedFlag ()
 
virtual bool setPosition (GeomPosID, const Coord3 &)=0
 
virtual void trimUndefParts ()
 
- Public Member Functions inherited from CallBacker
 CallBacker ()
 
 CallBacker (const CallBacker &)
 
virtual ~CallBacker ()
 
bool attachCB (const NotifierAccess &, const CallBack &, bool onlyifnew=false) const
 
bool attachCB (const NotifierAccess *notif, const CallBack &cb, bool onlyifnew=false) const
 
void detachAllNotifiers () const
 Call from the destructor of your inherited object. More...
 
void detachCB (const NotifierAccess &, const CallBack &) const
 
void detachCB (const NotifierAccess *notif, const CallBack &cb) const
 
virtual bool isCapsule () const
 
bool isNotifierAttached (const NotifierAccess *) const
 Only for debugging purposes, don't use. More...
 
void stopReceivingNotifications () const
 
virtual CallBackertrueCaller ()
 

Protected Member Functions

 ParametricCurve ()
 
- Protected Member Functions inherited from Geometry::Element
uiStringerrmsg ()
 
void triggerMovement ()
 
void triggerMovement (const GeomPosID &)
 
void triggerMovement (const TypeSet< GeomPosID > &)
 
void triggerNrPosCh ()
 
void triggerNrPosCh (const GeomPosID &)
 
void triggerNrPosCh (const TypeSet< GeomPosID > &)
 

Additional Inherited Members

- Static Public Member Functions inherited from CallBacker
static void createReceiverForCurrentThread ()
 
static void removeReceiverForCurrentThread ()
 
- Public Attributes inherited from Geometry::Element
CNotifier< Element, const TypeSet< GeomPosID > * > movementnotifier
 
CNotifier< Element, const TypeSet< GeomPosID > * > nrpositionnotifier
 
- Protected Attributes inherited from Geometry::Element
bool blockcbs_
 
bool ischanged_
 
TypeSet< GeomPosID > movementbuffer_
 
TypeSet< GeomPosID > nrposchbuffer_
 

Detailed Description

A curve that is defined by regularly sampled positions.

The curve's behaviour between the positions is determined by a function of a parameter u: (x(u), y(u), z(u)). The samplerange is determined by parameterRange(). The curve is guaranteed to be continious within its parameter range, and if isCircular() returns true, it connects between parameterRange().stop and parameterRange().start.

<>

Constructor & Destructor Documentation

◆ ~ParametricCurve()

Geometry::ParametricCurve::~ParametricCurve ( )

◆ ParametricCurve()

Geometry::ParametricCurve::ParametricCurve ( )
protected

Member Function Documentation

◆ computePosition()

virtual Coord3 Geometry::ParametricCurve::computePosition ( float  ) const
pure virtual

Computes the position between two samples

Implemented in Geometry::CubicBezierCurve.

◆ computeTangent()

virtual Coord3 Geometry::ParametricCurve::computeTangent ( float  ) const
pure virtual
Note
the tangent is scaled so the components (x, y, z) forms the derivatives: (dx/du, dy/du, dz/du ).

Implemented in Geometry::CubicBezierCurve.

◆ createIterator()

Iterator* Geometry::ParametricCurve::createIterator ( ) const
overridevirtual

Implements Geometry::Element.

◆ findClosestIntersection()

virtual bool Geometry::ParametricCurve::findClosestIntersection ( float &  p,
const Plane3 ,
float  eps = 1e-2 
) const
virtual

Iterates over the curve to find the closest intersection.

Parameters
epsthe allowed error in parameter space
pThe initial position and the returned intersection. If undef on start, the closest defined position will be used as start

◆ findClosestPosition()

virtual bool Geometry::ParametricCurve::findClosestPosition ( float &  p,
const Coord3 ,
float  eps = 1e-2 
) const
virtual

Iterates over the curve to find the closest position

Parameters
epsthe allowed error in parameter space
pThe initial position and the returned best position. If undef on start, the closest defined position will be used as start

◆ getPosIDs()

void Geometry::ParametricCurve::getPosIDs ( TypeSet< GeomPosID > &  ,
bool  = true 
) const
overridevirtual

Returns a list with all defined positions.

Reimplemented from Geometry::Element.

◆ insertPosition()

virtual bool Geometry::ParametricCurve::insertPosition ( GeomPosID  ,
const Coord3  
)
pure virtual

Implemented in Geometry::CubicBezierCurve.

◆ isCircular()

virtual bool Geometry::ParametricCurve::isCircular ( ) const
inlinevirtual

If true, the curve is connected between parameterRange().stop and parameterRange().start.

Reimplemented in Geometry::CubicBezierCurve.

◆ parameterRange()

virtual StepInterval<int> Geometry::ParametricCurve::parameterRange ( ) const
pure virtual

Implemented in Geometry::CubicBezierCurve.


Generated at for the OpendTect seismic interpretation project. Copyright (C): dGB Beheer B.V. 1995-2024