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
16PXR_NAMESPACE_OPEN_SCOPE
17
18class TsTest_SplineData;
19class TsTest_SampleTimes;
20class TsSpline;
21class GfInterval;
22
23// Perform test evaluation using Ts.
24//
25class TsTest_TsEvaluator
26{
27public:
29 // EVALUATION
30
31 // Evaluate at specified times.
32 TS_API
33 TsTest_SampleVec Eval(
34 const TsTest_SplineData &splineData,
35 const TsTest_SampleTimes &sampleTimes) const;
36
37 // Produce bulk samples for drawing. Sample times are determined adaptively
38 // and cannot be controlled.
39 template <typename SampleData>
40 bool Sample(
41 const TsTest_SplineData &splineData,
42 const GfInterval& timeInterval,
43 double timeScale,
44 double valueScale,
45 double tolerance,
46 SampleData* splineSamples) const;
47
49 // CONVERSION
50
51 // Convert a TsSpline into TsTest's SplineData form.
52 TS_API
53 TsTest_SplineData SplineToSplineData(
54 const TsSpline &spline) const;
55
56 // Convert SplineData to a TsSpline.
57 TS_API
58 TsSpline SplineDataToSpline(
59 const TsTest_SplineData &splineData) const;
60
62 // TEST DATA TRANSFORMATION
63
64 // Produce a copy of splineData with inner loops, if any, baked out into
65 // ordinary knots.
66 /*
67 TS_API
68 TsTest_SplineData BakeInnerLoops(
69 const TsTest_SplineData &splineData) const;
70 */
71};
72
73PXR_NAMESPACE_CLOSE_SCOPE
74
75#endif
A basic mathematical interval class.
Definition: interval.h:33
A mathematical description of a curved function from time to value.
Definition: spline.h:59