Loading...
Searching...
No Matches
tsTest_TsEvaluator.h
1//
2// Copyright 2024 Pixar
3//
4// Licensed under the terms set forth in the LICENSE.txt file available at
5// https://openusd.org/license.
6//
7
8#ifndef PXR_BASE_TS_TS_TEST_TS_EVALUATOR_H
9#define PXR_BASE_TS_TS_TEST_TS_EVALUATOR_H
10
11#include "pxr/pxr.h"
12#include "pxr/base/ts/api.h"
13#include "pxr/base/ts/types.h"
14#include "pxr/base/ts/tsTest_Types.h"
15
16#include "pxr/base/tf/type.h"
17
18PXR_NAMESPACE_OPEN_SCOPE
19
20class TsTest_SplineData;
21class TsTest_SampleTimes;
22class TsSpline;
23class GfInterval;
24
25// Perform test evaluation using Ts.
26//
27class TsTest_TsEvaluator
28{
29public:
31 // EVALUATION
32
33 // Evaluate at specified times.
34 TS_API
35 TsTest_SampleVec Eval(
36 const TsTest_SplineData &splineData,
37 const TsTest_SampleTimes &sampleTimes) const;
38
39 // Produce bulk samples for drawing. Sample times are determined adaptively
40 // and cannot be controlled.
41 template <typename SampleData>
42 bool Sample(
43 const TsTest_SplineData &splineData,
44 const GfInterval& timeInterval,
45 double timeScale,
46 double valueScale,
47 double tolerance,
48 SampleData* splineSamples) const;
49
51 // CONVERSION
52
53 // Convert a TsSpline into TsTest's SplineData form.
54 TS_API
55 TsTest_SplineData SplineToSplineData(
56 const TsSpline &spline) const;
57
58 // Convert SplineData to a TsSpline with double values
59 TS_API
60 TsSpline SplineDataToSpline(
61 const TsTest_SplineData &splineData) const;
62
63 // Convert SplineData to a TsSpline with valueType values
64 TS_API
65 TsSpline SplineDataToSpline(
66 const TsTest_SplineData &splineData,
67 const TfType& valueType) const;
68
70 // TEST DATA TRANSFORMATION
71
72 // Produce a copy of splineData with inner loops, if any, baked out into
73 // ordinary knots.
74 /*
75 TS_API
76 TsTest_SplineData BakeInnerLoops(
77 const TsTest_SplineData &splineData) const;
78 */
79};
80
81PXR_NAMESPACE_CLOSE_SCOPE
82
83#endif
A basic mathematical interval class.
Definition: interval.h:33
TfType represents a dynamic runtime type.
Definition: type.h:48
A mathematical description of a curved function from time to value.
Definition: spline.h:59