 |
OpendTect
6.6
|
Go to the documentation of this file.
14 #include "geometrymod.h"
25 int firstparam=0,
int step=1 );
57 {
return mCast(
int,(param-firstparam)/paramstep); }
76 if (
mIsZero(u,1e-3) )
return *p;
77 else if (
mIsEqual(u,1,1e-3) )
return p[3*di];
79 const float one_minus_u = 1-u;
80 Coord3 interpolpos1 = p[di]*one_minus_u+p[di*2] * u;
82 const Coord3 interpolpos0 = (*p*one_minus_u+p[di]*u) * one_minus_u +
85 interpolpos1 = interpolpos1 * one_minus_u +
86 (p[di*2]*one_minus_u+p[3*di]*u) * u;
88 return interpolpos0*one_minus_u+interpolpos1*u;
96 if (
mIsZero(u,1e-3) )
return p[di]-*p;
97 else if (
mIsEqual(u,1,1e-3) )
return p[3*di]-p[2*di];
99 const float one_minus_u = 1-u;
100 Coord3 interpolpos1 = p[di]*one_minus_u+p[2*di] * u;
102 const Coord3 interpolpos0 = (*p*one_minus_u+p[di]*u) * one_minus_u +
105 interpolpos1 = interpolpos1 * one_minus_u +
106 (p[2*di]*one_minus_u+p[3*di]*u) * u;
108 return interpolpos1-interpolpos0;
CubicBezierCurve(const Coord3 &, const Coord3 &, int firstparam=0, int step=1)
A cartesian coordinate in 3D space.
Definition: coord.h:72
int firstparam
Definition: cubicbeziercurve.h:61
int paramstep
Definition: cubicbeziercurve.h:62
Coord3 getPosition(GeomPosID) const
TypeSet< Coord3 > directions
Definition: cubicbeziercurve.h:64
mODTextTranslationClass(CubicBezierCurve)
#define mIsEqual(x, y, eps)
Definition: commondefs.h:67
Definition: arraytesselator.h:21
#define mExpClass(module)
Definition: commondefs.h:177
bool removePosition(GeomPosID)
A curve that is defined by regularly sampled positions.
Definition: parametriccurve.h:32
Coord3 computeTangent(GeomPosID) const
Coord3 getBezierVertex(GeomPosID, bool before) const
Coord3 getTangent(GeomPosID, bool computeifudf) const
bool isDefined(GeomPosID) const
bool isTangentDefined(GeomPosID) const
Coord3 cubicDeCasteljauTangent(const Coord3 *p, char i0, char di, float u)
Definition: cubicbeziercurve.h:92
float directioninfluence
Definition: cubicbeziercurve.h:65
Coord3 cubicDeCasteljau(const Coord3 *p, char i0, char di, float u)
Definition: cubicbeziercurve.h:73
void setTangentInfluence(float)
IntervalND< float > boundingBox(bool) const
TypeSet< Coord3 > positions
Definition: cubicbeziercurve.h:63
Coord3 computePosition(float) const
Class to store ranges in N dimensions.
Definition: ranges.h:214
bool setTangent(GeomPosID, const Coord3 &)
#define mIsZero(x, eps)
Definition: commondefs.h:66
CubicBezierCurve * clone() const
bool unsetPosition(GeomPosID)
bool insertPosition(GeomPosID, const Coord3 &)
#define mCast(tp, v)
Definition: commondefs.h:137
Definition: cubicbeziercurve.h:22
StepInterval< int > parameterRange() const
int getIndex(GeomPosID param) const
Definition: cubicbeziercurve.h:56
od_int64 GeomPosID
Definition: geomelement.h:20
bool iscircular
Definition: cubicbeziercurve.h:67
bool unsetTangent(GeomPosID)
Coord3 computeTangent(float) const
bool setCircular(bool yn)
bool setPosition(GeomPosID, const Coord3 &)
float directionInfluence() const
Generated at
for the OpendTect
seismic interpretation project.
Copyright (C): dGB Beheer B.V. 1995-2021