00001
00017 #ifndef CREATE_VRML_H
00018 #define CREATE_VRML_H
00019
00020
00021 #include <stdio.h>
00022 #include <stdlib.h>
00023
00024 #define TRUE 1
00025 #define FALSE 0
00026
00027 #define NMARKER 28
00028
00029
00033 struct VRMLFeatures {
00034 int useJava;
00037 int nbSamples;
00038 double dt;
00039 int nbJoints;
00040 double *jointsRot;
00043 double *jointsPos;
00046 char **jointsNames;
00047 char *geomFilename;
00049 char *outputFilename;
00051 int nbPhysVec;
00053 char **physVecNames;
00055 double *physVecRGB;
00058 double *physVecRot;
00061 double *physVecPos;
00064 double *physVecScale;
00068 int nbMarker;
00070 char **markerNames;
00072 double *markerPos;
00075 double markerColor[3];
00078 };
00079
00080 struct MatList {
00081 char name[64];
00082 struct MatList *next;
00083
00084 };
00085
00086
00087
00088
00089 enum InterpType {
00090 POSITION,
00091 ORIENTATION,
00092 COLOR,
00093 SCALE
00094 };
00095
00096 void InitVRMLFeaturesWithMarkers();
00097
00098 void ResetVRMLFeaturesWithMarkers();
00099
00100 int SetUpVRMLFile(char *outputFilename, int useJava);
00101
00102 int SetUpVRMLInterpolation( int nbS,
00103 double dt);
00104
00105 int SetUpVRMLCharacter( char *geomFilename,
00106 int nb,
00107 char **names,
00108 double *rot,
00109 double *pos);
00110
00111 int SetUpVRMLPhysVec(int nb,
00112 char **names,
00113 double *rot,
00114 double *pos,
00115 double *scale,
00116 double *RGB);
00117
00118 int SetUpVRMLMarkers(int nb,
00119 char **names,
00120 double *pos,
00121 double *col);
00122
00123
00131 int WriteVRMLPhysVec(FILE *f,
00132 int index,
00133 char *name,
00134 double *data);
00135
00143 int WriteVRMLMarker(FILE *f,
00144 char *name,
00145 double *col);
00146
00158 int WriteVRMLInterpolator(FILE *f,
00159 enum InterpType type,
00160 int index,
00161 char *name,
00162 int nbItems,
00163 int nbSamples,
00164 double *data);
00165
00166
00167
00168
00169
00176 int CreateVRMLWithMarkers( );
00177
00185 extern void
00186 HAnimPosition(double *Pos, double *q, double *L);
00187
00195 extern void
00196 HAnimOrientations(double *Or, double *q);
00197
00210 extern void
00211 HAnimVPos(double *VPOS, double *Lambda, double *q, double *L, double *AddL);
00212
00221 extern void
00222 HAnimVScale(double *VScale, double *Lambda);
00223
00232 extern void
00233 HAnimVRot(double *VRot, double *Lambda);
00234
00235
00236 #endif // CREATE_VRML_H
00237
00238
00239
00240
00241
00242
00243
00244
00245
00246
00247
00248
00249
00250
00251
00252