8 #ifndef PXR_BASE_TS_SPLINE_H
9 #define PXR_BASE_TS_SPLINE_H
82 TsSpline&
operator=(
const TsSpline &other);
100 template <
typename T>
174 std::string *reasonOut =
nullptr)
const;
289 template <
typename T>
294 template <
typename T>
299 template <
typename T>
304 template <
typename T>
309 template <
typename T>
314 template <
typename T>
339 template <
typename Vertex>
348 return _Sample(timeInterval, timeScale, valueScale, tolerance,
358 template <
typename Vertex>
367 return _Sample(timeInterval, timeScale, valueScale, tolerance,
415 std::pair<VtValue, VtValue> *rangeOut)
const;
418 template <
typename T>
421 std::pair<T, T> *rangeOut)
const;
434 TsTime startTime)
const;
439 TsTime startTime)
const;
453 template <
typename HashState>
458 h.Append(spline._data.get());
463 void _SetKnotUnchecked(
const TsKnot & knot);
465 template <
typename SampleHolder>
471 SampleHolder* splineSamples)
const;
490 template <
typename T>
502 std::shared_ptr<Ts_SplineData> _data;
514 void swap(TsSpline &lhs, TsSpline &rhs);
530 template <
typename T>
541 template <
typename T>
542 bool TsSpline::_Eval(
548 const std::optional<double>
result =
549 Ts_Eval(_GetData(), time, aspect, location);
556 *valueOut =
T(*result);
565 bool TsSpline::_Eval(
571 template <
typename T>
577 template <
typename T>
583 template <
typename T>
589 template <
typename T>
595 template <
typename T>
601 template <
typename T>
bool Sample(const GfInterval &timeInterval, double timeScale, double valueScale, double tolerance, TsSplineSamplesWithSources< Vertex > *splineSamples) const
void swap(ArAssetInfo &lhs, ArAssetInfo &rhs)
TS_API bool IsC0Continuous() const
Not yet implemented.
bool EvalHeld(TsTime time, T *valueOut) const
Evaluates the value of the TsSpline over the given time interval, typically for drawing.
TsSplineSamplesWithSources<Vertex> is a TsSplineSamples<Vertex> that also includes source information...
bool Eval(TsTime time, T *valueOut) const
Evaluates the value of the TsSpline over the given time interval, typically for drawing.
friend Ts_SplineData * Ts_GetSplineData(TsSpline &spline)
static TS_API bool IsSupportedValueType(TfType valueType)
TS_API TsExtrapolation GetPreExtrapolation() const
TS_API bool IsSegmentFlat(TsTime startTime) const
Not yet implemented.
GT_API const UT_StringHolder time
TS_API bool IsEmpty() const
Not yet implemented.
TS_API bool ClearRedundantKnots(VtValue defaultValue=VtValue(), const GfInterval &interval=GfInterval::GetFullInterval())
Not yet implemented.
TS_API bool BakeLoops(const GfInterval &interval)
Not yet implemented.
static TS_API TsAntiRegressionMode GetAntiRegressionAuthoringMode()
TS_API TsCurveType GetCurveType() const
TS_API bool HasRegressiveTangents() const
TS_API bool SetKnot(const TsKnot &knot, GfInterval *affectedIntervalOut=nullptr)
TS_API const TsKnotMap & GetKnotsWithLoopsBaked(const GfInterval &interval) const
Not yet implemented.
TS_API TfType GetValueType() const
TS_API bool DoSidesDiffer(TsTime time) const
Evaluates the value of the TsSpline over the given time interval, typically for drawing.
IMATH_HOSTDEVICE IMATH_CONSTEXPR14 Quat< T > spline(const Quat< T > &q0, const Quat< T > &q1, const Quat< T > &q2, const Quat< T > &q3, T t) IMATH_NOEXCEPT
static GfInterval GetFullInterval()
Returns the full interval (-inf, inf).
TS_API void SetKnots(const TsKnotMap &knots)
**But if you need a result
friend void TfHashAppend(HashState &h, const TsSpline &spline)
TS_API bool IsSegmentMonotonic(TsTime startTime) const
Not yet implemented.
TS_API bool IsC1Continuous() const
Not yet implemented.
GLenum const GLfloat * params
TS_API TsExtrapolation GetPostExtrapolation() const
TS_API bool AdjustRegressiveTangents()
TS_API bool GetValueRange(const GfInterval &timeSpan, std::pair< VtValue, VtValue > *rangeOut) const
Not yet implemented.
static TS_API void ApplyOffsetAndScale(TsSpline *spline, const TsTime offset, const double scale)
TS_API TsKnotMap GetKnots() const
TS_API bool GetKnot(TsTime time, TsKnot *knotOut) const
GA_API const UT_StringHolder scale
TS_API void SetInnerLoopParams(const TsLoopParams ¶ms)
TS_API void SetCurveType(TsCurveType curveType)
TS_API bool IsG1Continuous() const
Not yet implemented.
TS_API void SetPostExtrapolation(const TsExtrapolation &extrap)
TS_API bool HasExtrapolatingLoops() const
Not yet implemented.
bool EvalDerivative(TsTime time, T *valueOut) const
Evaluates the value of the TsSpline over the given time interval, typically for drawing.
TS_API bool HasLoops() const
Convenience for HasInnerLoops() || HasExtrapolatingLoops().
TS_API bool operator!=(const TsSpline &other) const
TS_API std::optional< double > Ts_Eval(const Ts_SplineData *data, TsTime time, Ts_EvalAspect aspect, Ts_EvalLocation location)
TS_API bool IsTimeValued() const
TS_API bool HasValueBlockAtTime(TsTime time) const
Not yet implemented.
TS_API bool IsKnotRedundant(TsTime time, VtValue defaultValue=VtValue()) const
Not yet implemented.
TS_API bool operator==(const TsSpline &other) const
GLfloat GLfloat GLfloat GLfloat h
TS_API const TsKnotMap & GetKnotsWithInnerLoopsBaked() const
Not yet implemented.
PXR_NAMESPACE_CLOSE_SCOPE PXR_NAMESPACE_OPEN_SCOPE
TS_API void RemoveKnot(TsTime time, GfInterval *affectedIntervalOut=nullptr)
TS_API TsLoopParams GetInnerLoopParams() const
#define PXR_NAMESPACE_CLOSE_SCOPE
TS_API bool IsLinear() const
Not yet implemented.
TS_API bool CanSetKnot(const TsKnot &knot, std::string *reasonOut=nullptr) const
bool EvalPreValue(TsTime time, T *valueOut) const
Evaluates the value of the TsSpline over the given time interval, typically for drawing.
TS_API std::ostream & operator<<(std::ostream &out, const TsSpline &spline)
Output a text representation of a spline to a stream.
TS_API bool HasInnerLoops() const
Not yet implemented.
TS_API bool HasValueBlocks() const
Not yet implemented.
TS_API bool IsVarying() const
Not yet implemented.
bool EvalPreValueHeld(TsTime time, T *valueOut) const
Evaluates the value of the TsSpline over the given time interval, typically for drawing.
TsSplineSamples<Vertex> holds a collection of piecewise linear polylines that approximate a TsSpline...
TS_API bool Split(TsTime time, GfInterval *affectedIntervalOut=nullptr)
TS_API void SetTimeValued(bool timeValued)
bool EvalPreDerivative(TsTime time, T *valueOut) const
Evaluates the value of the TsSpline over the given time interval, typically for drawing.
bool Sample(const GfInterval &timeInterval, double timeScale, double valueScale, double tolerance, TsSplineSamples< Vertex > *splineSamples) const
Evaluates the value of the TsSpline over the given time interval, typically for drawing.
TS_API TsSpline & operator=(const TsSpline &other)
TS_API void SetPreExtrapolation(const TsExtrapolation &extrap)