STRUCT.H

Go to the documentation of this file.
00001 /* FILE struct.h pointers to main data structures and elements */
00002 
00003 typedef double vector[3];
00004 typedef long   point[3];
00005 typedef long   twoLongs[2];
00006 
00014 typedef struct VECTOR4_design_tag {
00015  double x,y,z,w;
00016  BOOL   selected;
00017 } vector4;
00018 
00026 typedef struct Designer_VERTEX_tag {
00027  struct Designer_SKELETON_tag *sp;   
00028  char   status,status_undo;   
00029  char   gp;                   
00030  long   id;                    
00031  float  x,y;                  
00032  long   xyz[3],xyz_undo[3]; 
00033 } vertex;
00034 
00042 typedef struct Designer_EDGE_tag {
00043  long V[2];   
00044 } edge;
00045 
00056 typedef struct Designer_FACE_tag {
00057  long V[3];      
00058  BOOL bSmooth;   
00059  unsigned char color[3];  
00060  short material;    
00061  short imagemap;     
00062  float x[3],y[3];    
00063  BOOL gp;            
00064 } face;
00065 
00074 typedef struct Designer_SKELETON_tag {
00075  struct Designer_SKELETON_tag *at,     
00076                        *next,*last;    
00077  long   id,offset;
00078  vector u,v,w;                   
00079  double t[4][4],tr[4][4];     
00080  point  xyz_last,xyz,xyz_undo,tp,bx[8],bx_undo[8];
00081  char   name[16];
00082  LPARAM lParam;
00083  double wrange,wzone;    // range (in % of length of bone influence)
00084  double weight,r_scale;  // bone influence weight
00085  double l,len,len_last,r_dist;  // used by rubber bones
00086  vector d,d_last,r;      // direction and offaxis position used by rubber bones
00087 } skel;
00088 
00098 typedef struct Designer_NURBSSurfSample_tag {
00099     vector point, normal;    
00100     double normLen;          
00101     double u, v;             
00102 } NurbsSurfSample;
00103 
00111 typedef struct Designer_NURBSProperties_tag {
00112  char name[32];            
00113  long GranularityMax,      
00114       GranularityMin;      
00115  long     u_scale,
00116           v_scale;         
00117  long     shader,          
00118           map,
00119           axis,
00120           param,
00121           smoothing,
00122           shiny,
00123           brilliance,
00124           reflectivity,
00125           transparency,
00126           glasstype,
00127           maptiled,
00128           mapshaded,
00129           mapdecal;
00130  long     pad[4];
00131  unsigned char colour[3],
00132           material_colour[3];
00133  char     hidden;
00134  char     padc[5];         
00135 } NurbsProperties;
00136 
00153 typedef struct Designer_NURBS_tag {
00154  struct Designer_NURBS_tag *next,*last;
00155  struct Designer_SKELETON_tag *sp;
00156  long numU, numV;          
00157  long orderU, orderV;      
00158  double * kvU, * kvV;      
00159  vector4 **points;         
00160  BOOL selected;            
00161  NurbsProperties properties;
00162  /* These fields are added to support subdivision                     */
00163  BOOL strV0, strVn,        
00164       strU0, strUn;
00165  BOOL flatV, flatU;        
00166  NurbsSurfSample c00, c0n,
00167                  cn0, cnn; 
00168 } nurbs;
00169 
00179 typedef struct Designer_RAMIMAGE_tag {  
00180 long version;  
00181 long in_use;   
00182 long size;     
00183 char *filename; 
00184 unsigned char *data; 
00185 short thumbx,thumby; 
00186 unsigned char *thumb;  
00187 } RAMIMAGE;
00188 
00197 typedef struct Designer_IMAGEMAP_tag {
00198 short    in_use;                  
00199 long     version;
00200 char     N[32],*S,*R,*B,*T;       
00201 char     s,r,b,t;                 
00202 RAMIMAGE si,ri,bi,ti;             
00203 short    sp,rp,bp,tp;             
00204 char     Type,TypeR,TypeB,TypeT,  
00205          Map,                     
00206          Lock,Key;               
00207 short    Angle;                          
00208 BOOL     bTiled,bShaded,bDecal;
00209 point    P,X,Y;                   
00210 long     Vlock[3];
00211 unsigned char d_colour[3],s_colour[3],a_colour[3],t_colour[3],k_colour[3];
00212 short    AnimFF,AnimDL,AnimLF;  
00213 short    AnimFFr,AnimDLr,AnimLFr;  
00214 short    AnimFFb,AnimDLb,AnimLFb;  
00215 short    AnimFFt,AnimDLt,AnimLFt;  
00216 } IMAGEMAP;
00217 
00218 
00227 typedef struct Designer_WIREFRAME_tag {
00228  long Np,Ne;       
00229  twoLongs *e;      
00230  point *p;         
00231 } wireframe;
00232 
00240 typedef struct Designer_MATERIALAXIS_tag {
00241  point   P,X,Y;  
00242 } MATERIALAXIS;
00243 
00251 typedef struct Designer_XSHADER_tag {
00252   BOOL bActive;       
00253   long version;
00254   long in_use;        
00255   unsigned char mixx; 
00256   char *xname,        
00257        *parameters;   
00258 } XSHADER;
00259 
00267 typedef struct Designer_SURFACEMATERIAL_tag {
00268   long version;
00269   char name[32];                         
00270   unsigned char mcolour1[3],mcolour2[3]; 
00271   unsigned char acolour[3],scolour[3];   
00272   unsigned char xcolour[3],ycolour[3],zcolour[3]; 
00273   unsigned char gloss;
00274   unsigned char refl;
00275   unsigned char transp;
00276   long refractive_index;  
00277   BOOL bInternalShader; int internalShaderID; 
00278   struct Designer_MATERIALAXIS_tag ax;        
00279   struct Designer_XSHADER_tag Shader[4];      
00280   BOOL bSmooth,bShiny,bClear,bGlassEdge,bUseSurfaceMapping;
00281   unsigned char params[16];                   
00282   long pad[16]; 
00283   unsigned char other_properties[512]; 
00284   double mmw[16];       
00285   char   mmw_brdf[256]; 
00286 } SURFACEMATERIAL;
00287 
00288 
00300 typedef struct X__STRUCTUREtag {
00301   unsigned long *Nvert,   
00302                 *Nedge,   
00303                 *Nface,   
00304                 *Nskel,   
00305                 *NvertSelect,    
00306                 *NvertDeselect,  
00307                 *NvertG; 
00308   int    *nImaps,   
00309          *nMats;    
00310   struct Designer_VERTEX_tag   **MainVp; 
00311   struct Designer_EDGE_tag     **MainEp; 
00312   struct Designer_FACE_tag     **MainFp; 
00313   struct Designer_SKELETON_tag **MainSp, 
00314                                **FirstSp; 
00315   struct Designer_IMAGEMAP_tag        *iMap; 
00316   struct Designer_SURFACEMATERIAL_tag *iMat; 
00317   struct Designer_XSHADER_tag      *xShaders;  // will have to go
00318   long   *NpointerX,*NpointerY,*NpointerZ, 
00319          *TVpointX, *TVpointY, *TVpointZ,  
00320          *TVsizeX,  *TVsizeY,  *TVsizeZ;   
00321   double *ruler;    
00322   long   *rulerx,*rulery,*rulerz,
00323          *orulerx,*orulery,*orulerz;
00324   long   *ActiveView;  
00325   struct Designer_WIREFRAME_tag *w_frame;  
00326   long   version;                 
00327   struct Designer_NURBS_tag  **MainNp; 
00328   unsigned long    *Nnurbs;      
00329   long   *dummyv[60];            
00330   void   (*fpDA)(short);         
00331   void   (*fpCV)(void);
00332   void   (*fpCE)(long, long);
00333   void   (*fpCF)(long, long, long);
00334   void   (*fpCS)(struct Designer_SKELETON_tag *);
00335   BOOL   (*fpUVH)(long);
00336   BOOL   (*fpUEH)(long);
00337   BOOL   (*fpUFH)(long);
00338   void   (*fpTool_UP)(void);
00339   void   (*fpTool_RD)(void);
00340   BOOL   (*fpTool_CP)(int);
00341   int    (*fpTool_FC)(int,int,int,double,double);
00342   BOOL   (*fpTool_AC)(int);
00343   void   (*fpChooseColour)(unsigned char [], char *, HWND);
00344   int    (*fpChooseFile)(int, char *, char *, char *, char *, HWND);
00345   void   (*fpCentreDlgOnC)(HWND);
00346   void   (*fpCentreDlgOnS)(HWND);
00347   void   (*fpCopyFaceProp)(struct Designer_FACE_tag *, struct Designer_FACE_tag *);
00348   void   (*fpZeroSkeletonBoundingBox)(struct Designer_SKELETON_tag *);
00349   void   (*fpGetSkeletonBoundBox)(struct Designer_SKELETON_tag *, int);
00350   int    (*fpEraseVertex)(int);
00351   void   (*fpEraseVertexMapping)(void);
00352   short  (*fpEraseSkeleton)(struct Designer_SKELETON_tag *);
00353   long   (*fpGetClosestVertex)(void);
00354   int    (*fpConnected)(long, long);
00355   int    (*fpNormalize)(vector);
00356   void   (*fpArbitraryRotate)(double, point, point, double [4][4]);
00357   void   (*fpOrientateFaceNormals)(long, long, long *);
00358   void   (*fpReverseFaceOrientation)(long, long *);
00359   BOOL   (*fpIsFOSame)(long, long, long, long, long, long);
00360   void   (*fpOrientateSelectedFaces)(void);
00361   void   (*fpAppendFileExtension)(char *, char *);
00362   void   (*fpEraseAllNurbs)(void);
00363   void   (*fpEraseNurbs)(struct Designer_NURBS_tag *);
00364   void   (*fpCreateNurbs)(void);
00365   void   (*fpClearNurbsSkeleton)(struct Designer_SKELETON_tag *);
00366   BOOL   (*fpAllocNurbs)(struct Designer_NURBS_tag *, double *, double *);
00367   BOOL   (*fpCloneNurbs)(struct Designer_NURBS_tag *, struct Designer_NURBS_tag *);
00368   void   (*fpReleaseNurbs)(struct Designer_NURBS_tag *);  
00369 
00370   int    (*fpCreateMaterial)(BOOL ask);
00371   int    (*fpCreateImageMap)(void);
00372 
00373   void   *dummyf[50]; 
00374 } X__STRUCTURE;

Generated on Sun Apr 27 14:20:11 2014 for OpenFX by  doxygen 1.5.6