HDK
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
CL_Sequence.h
Go to the documentation of this file.
1 /*
2  * PROPRIETARY INFORMATION. This software is proprietary to
3  * Side Effects Software Inc., and is not to be reproduced,
4  * transmitted, or disclosed in any way without written permission.
5  *
6  * NAME: CL_Sequence.h ( Clip Library, C++)
7  *
8  * COMMENTS:
9  */
10 
11 #ifndef __CL_Sequence__
12 #define __CL_Sequence__
13 
14 #include "CL_API.h"
15 #include "CL_Track.h"
16 #include <UT/UT_VectorTypes.h>
17 #include <SYS/SYS_Types.h>
18 
26 };
27 
28 #define BLEND_PRESERVE 0
29 #define BLEND_OVERLAP 1
30 #define BLEND_INSERT 2
31 
32 class UT_XformOrder;
33 
35 {
36 public:
37 
38  static int usesBias(CL_BlendFunction func);
39 
40  static int sequence(fpreal *&result, CL_TrackListC &source,
41  int blend_region, fpreal blend_bias,
42  fpreal step_factor, int mirror,
43  int blend_type, int iscycle,
44  fpreal cycle, CL_BlendFunction func,
45  fpreal partial_first = 1.0,
46  fpreal partial_last = 1.0,
47  int steady_segment = 0,
48  int *steady_index = 0);
49 
50  static int quatSequence(fpreal *&rx,fpreal *&ry,fpreal *&rz,
51  CL_TrackListC &sourcex,
52  CL_TrackListC &sourcey,
53  CL_TrackListC &sourcez,
54  int blend_region,fpreal blend_bias,
55  int blend_type,
56  fpreal stepx,fpreal stepy,fpreal stepz,
58  CL_BlendFunction blend_function);
59 
60  static int transSequence(fpreal *&tx,fpreal *&ty, fpreal *&tz,
61  CL_TrackListC &sourcex,
62  CL_TrackListC &sourcey,
63  CL_TrackListC &sourcez,
64  int blend_region,
65  int blend_type);
66 
67 
68  static void getBlendValues(int nsamples,fpreal *data,fpreal bias,
69  CL_BlendFunction func);
70 
71  static void getCubicParms(fpreal off1,fpreal val1,fpreal slope1,
72  fpreal off2,fpreal val2,fpreal slope2,
73  UT_Vector4R &result);
74 
75  static void getCubic(int nsamples, fpreal *data,
76  fpreal off1,fpreal val1, fpreal slope1,
77  fpreal off2,fpreal val2, fpreal slope2);
78 
79  static void blendQuaternion(fpreal *rx,fpreal *ry,fpreal *rz,
80  fpreal rx1,fpreal ry1,fpreal rz1,
81  fpreal rx2,fpreal ry2,fpreal rz2,
82  fpreal ox, fpreal oy, fpreal oz,
83  int size, fpreal *blend, fpreal *base,
84  const UT_XformOrder &order,
85  const UT_XformOrder &order2);
86 
87  static fpreal blendTranslates(fpreal *trans,
88  fpreal tp1,fpreal tp2, fpreal tp3,
89  fpreal tn1,fpreal tn2, fpreal tn3,
90  int size);
91 
92 };
93 
94 #endif
95 
Transformation order of scales, rotates, and translates.
Definition: UT_XformOrder.h:23
**But if you need a result
Definition: thread.h:613
#define CL_API
Definition: CL_API.h:10
vint4 blend(const vint4 &a, const vint4 &b, const vbool4 &mask)
Definition: simd.h:4784
GA_API const UT_StringHolder trans
GLsizei GLsizei GLchar * source
Definition: glcorearb.h:803
GLdouble GLdouble GLint GLint order
Definition: glad.h:2676
GLsizeiptr size
Definition: glcorearb.h:664
GLenum func
Definition: glcorearb.h:783
fpreal64 fpreal
Definition: SYS_Types.h:277
Definition: format.h:895
CL_BlendFunction
Definition: CL_Sequence.h:19