lwcustobj.h 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. /*
  2. * LWSDK Header File
  3. * Copyright 1999, NewTek, Inc.
  4. *
  5. * LWCUSTOBJ.H -- LightWave Custom Objects
  6. */
  7. #ifndef LWSDK_CUSTOBJ_H
  8. #define LWSDK_CUSTOBJ_H
  9. #include <lwrender.h>
  10. #define LWCUSTOMOBJ_HCLASS "CustomObjHandler"
  11. #define LWCUSTOMOBJ_ICLASS "CustomObjInterface"
  12. #define LWCUSTOMOBJ_VERSION 5
  13. typedef struct st_LWCustomObjAccess {
  14. int view;
  15. int flags;
  16. void *dispData;
  17. void (*setColor) (void *, float rgba[4]);
  18. void (*setPattern) (void *, int lpat);
  19. void (*setTexture) (void *, int, unsigned char *);
  20. void (*setUVs) (void *, double[2], double[2], double[2], double[2]);
  21. void (*point) (void *, double[3], int csys);
  22. void (*line) (void *, double[3], double[3], int csys);
  23. void (*triangle) (void *, double[3], double[3], double[3], int csys);
  24. void (*quad) (void *, double[3], double[3], double[3], double[3], int csys);
  25. void (*circle) (void *, double[3], double, int csys);
  26. void (*text) (void *, double[3], const char *, int just, int csys);
  27. LWDVector viewPos, viewDir;
  28. } LWCustomObjAccess;
  29. #define LWVIEW_ZY 0
  30. #define LWVIEW_XZ 1
  31. #define LWVIEW_XY 2
  32. #define LWVIEW_PERSP 3
  33. #define LWVIEW_LIGHT 4
  34. #define LWVIEW_CAMERA 5
  35. #define LWVIEW_SCHEMA 6
  36. #define LWCOFL_SELECTED (1<<0)
  37. #define LWLPAT_SOLID 0
  38. #define LWLPAT_DOT 1
  39. #define LWLPAT_DASH 2
  40. #define LWLPAT_LONGDOT 3
  41. #define LWCSYS_WORLD 0
  42. #define LWCSYS_OBJECT 1
  43. #define LWCSYS_ICON 2
  44. typedef struct st_LWCustomObjHandler {
  45. LWInstanceFuncs *inst;
  46. LWItemFuncs *item;
  47. LWRenderFuncs *rend;
  48. void (*evaluate) (LWInstance, const LWCustomObjAccess *);
  49. unsigned int (*flags) (LWInstance);
  50. } LWCustomObjHandler;
  51. #define LWCOF_SCHEMA_OK 1
  52. #endif