📄 head.h
字号:
typedef struct TAG { int poly ; /* an index to a tagged polygon */ int vert ; /* an index to the tagged vertex */} TAG ;typedef struct EXPRESSION { char name[80] ; /* name of the expression */ float m[20] ; /* an expression vector */ float bias ; /* an bias control for the muscles */} EXPRESSION ;typedef struct MUSCLE { int active ; /* activity switch for the muscle */ float head[3] ; /* head of the muscle vector */ float tail[3] ; /* tail of the muscle vector */ float zone, /* zone of influence */ fs, fe, mval ; /* zone, start, end, contraction */ char name[80] ; /* name of the muscle */ float clampv ; /* clamping value */ float mstat ; /* current contraction value */ } MUSCLE ;typedef struct VERTEX { float xyz[3] ; /* x,y,z of the vertex (modified) */ float nxyz[3] ; /* x,y,z of the vertex (never modified) */ int np ; /* number of polygons associated with node */ int plist[30] ; /* list of polygons associated with node */ float norm[3] ; /* polygon vertex normal */} VERTEX ;typedef struct POLYGON { VERTEX *vertex[3] ; /* pointer to an array of three vertices */} POLYGON ;typedef struct HEAD { int npindices ; /* number of polygon indices */ int *indexlist ; /* integer index list of size npindices*4 */ int npolylinenodes ; /* number of nodes in the poly line */ float *polyline ; /* xyz nodes in the poly line */ int npolygons ; /* total number of polygons */ POLYGON **polygon ; /* pointer to the polygon list */ int neyelidtags ; /* number of eyelid tags */ TAG **eyelidtag ; /* pointer to the eyelid tags */ float eyelidang ; /* rotation of the eyelids */ int njawtags ; /* number of jaw tags */ TAG **jawtag ; /* pointer to the eyelid tags */ float jawang ; /* rotation of the jaw */ int nmuscles ; /* number of muscles in the face */ MUSCLE **muscle ; /* pointer to the muscle list */ int nexpressions ; /* number of expressions in the */ EXPRESSION **expression ; /* point to an expression vector */} HEAD ;/* main.c */extern int verbose;/* make_face.c */HEAD *create_face ( char *, char * ) ;void averaged_vertex_normals ( HEAD *face, int p, float *n1, float *n2, float *n3 ) ; void face_reset ( HEAD *face );void expressions ( HEAD *face, int e );void data_struct ( HEAD *face );/* display.c */void paint_polyline ( HEAD *face ) ;void paint_polygons ( HEAD *face, int type, int normals ) ;void calculate_polygon_vertex_normal ( HEAD *face );void paint_muscles ( HEAD *face );/* muscle.c */void activate_muscle (HEAD *face, float *vt, float *vh, float fstart, float fin, float ang, float val);/* fileio.c */void read_polygon_indices ( char *FileName, HEAD *face );void read_polygon_line ( char *FileName , HEAD *face );void read_muscles ( char *FileName , HEAD *face );void read_expression_vectors ( char *FileName , HEAD *face );
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -