00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00028 #ifndef CREATE_VRML_H
00029 #define CREATE_VRML_H
00030
00031 #ifdef WINDOWS
00032 #define extern __declspec (dllexport)
00033 #endif
00034
00035
00036 #include <stdio.h>
00037 #include <stdlib.h>
00038
00039 #define TRUE 1
00040 #define FALSE 0
00041
00042
00046 struct VRMLFeatures {
00047 int useJava;
00050 int nbSamples;
00051 double dt;
00052 int nbJoints;
00053 double *jointsRot;
00056 double *jointsPos;
00059 char **jointsNames;
00060 char *geomFilename;
00062 char *outputFilename;
00064 int nbPhysVec;
00066 char **physVecNames;
00068 double *physVecRGB;
00071 double *physVecRot;
00074 double *physVecPos;
00077 double *physVecScale;
00081 };
00082
00083 struct MatList {
00084 char name[64];
00085 struct MatList *next;
00086
00087 };
00088
00089
00090
00091
00092 enum InterpType {
00093 POSITION,
00094 ORIENTATION,
00095 COLOR,
00096 SCALE
00097 };
00098
00099 void InitVRMLFeatures();
00100
00101 void ResetVRMLFeatures();
00102
00103 int SetUpVRMLFile(char *outputFilename, int useJava);
00104
00105 int SetUpVRMLInterpolation( int nbS,
00106 double dt);
00107
00108 int SetUpVRMLCharacter( char *geomFilename,
00109 int nb,
00110 char **names,
00111 double *rot,
00112 double *pos);
00113
00114 int SetUpVRMLPhysVec(int nb,
00115 char **names,
00116 double *rot,
00117 double *pos,
00118 double *scale,
00119 double *RGB);
00120
00121
00129 int WriteVRMLPhysVec(FILE *f,
00130 int index,
00131 char *name,
00132 double *data);
00133
00145 int WriteVRMLInterpolator(FILE *f,
00146 enum InterpType type,
00147 int index,
00148 char *name,
00149 int nbItems,
00150 int nbSamples,
00151 double *data);
00152
00153
00154
00155
00162 int CreateVRML( );
00163
00171 extern void
00172 HAnimPosition(double *Pos, double*q);
00173
00174
00182 extern void
00183 HAnimOrientations(double *Or, double *q);
00184
00195 extern void
00196 HAnimVPos(double *VPOS, double *Lambda, double *q);
00197
00207 extern void
00208 HAnimVScale(double *VScale, double *Lambda, double *q);
00209
00219 extern void
00220 HAnimVRot(double *VRot, double *Lambda, double *q);
00221
00222 #endif // CREATE_VRML_H
00223
00224
00225
00226
00227
00228
00229
00230
00231
00232
00233
00234
00235
00236
00237
00238