HDK
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros 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 
37 public:
38 
39  CL_Sequence();
40  ~CL_Sequence();
41 
42  static int usesBias(CL_BlendFunction func);
43 
44  static int sequence(fpreal *&result, CL_TrackListC &source,
45  int blend_region, fpreal blend_bias,
46  fpreal step_factor, int mirror,
47  int blend_type, int iscycle,
48  fpreal cycle, CL_BlendFunction func,
49  fpreal partial_first = 1.0,
50  fpreal partial_last = 1.0,
51  int steady_segment = 0,
52  int *steady_index = 0);
53 
54  static int quatSequence(fpreal *&rx,fpreal *&ry,fpreal *&rz,
55  CL_TrackListC &sourcex,
56  CL_TrackListC &sourcey,
57  CL_TrackListC &sourcez,
58  int blend_region,fpreal blend_bias,
59  int blend_type,
60  fpreal stepx,fpreal stepy,fpreal stepz,
61  UT_XformOrder order,
62  CL_BlendFunction blend_function);
63 
64  static int transSequence(fpreal *&tx,fpreal *&ty, fpreal *&tz,
65  CL_TrackListC &sourcex,
66  CL_TrackListC &sourcey,
67  CL_TrackListC &sourcez,
68  int blend_region,
69  int blend_type);
70 
71 
72  static void getBlendValues(int nsamples,fpreal *data,fpreal bias,
73  CL_BlendFunction func);
74 
75  static void getCubicParms(fpreal off1,fpreal val1,fpreal slope1,
76  fpreal off2,fpreal val2,fpreal slope2,
77  UT_Vector4R &result);
78 
79  static void getCubic(int nsamples, fpreal *data,
80  fpreal off1,fpreal val1, fpreal slope1,
81  fpreal off2,fpreal val2, fpreal slope2);
82 
83  static void blendQuaternion(fpreal *rx,fpreal *ry,fpreal *rz,
84  fpreal rx1,fpreal ry1,fpreal rz1,
85  fpreal rx2,fpreal ry2,fpreal rz2,
86  fpreal ox, fpreal oy, fpreal oz,
87  int size, fpreal *blend, fpreal *base,
88  const UT_XformOrder &order,
89  const UT_XformOrder &order2);
90 
91  static fpreal blendTranslates(fpreal *trans,
92  fpreal tp1,fpreal tp2, fpreal tp3,
93  fpreal tn1,fpreal tn2, fpreal tn3,
94  int size);
95 
96 };
97 
98 #endif
99 
GLsizeiptr size
Definition: glcorearb.h:663
png_infop png_bytep * trans
Definition: png.h:2520
#define CL_API
Definition: CL_API.h:10
GLsizei GLsizei GLchar * source
Definition: glcorearb.h:802
GLboolean * data
Definition: glcorearb.h:130
double fpreal
Definition: SYS_Types.h:263
GLenum func
Definition: glcorearb.h:782
CL_BlendFunction
Definition: CL_Sequence.h:19