IRayVariant_MAM.h 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. /**
  2. * File: IRayVariant.h
  3. *
  4. * Purpose: Definit data structs for common data type wrapper
  5. *
  6. *
  7. * @author Haitao.Ning
  8. * @version 1.0 2015/02/02
  9. *
  10. * Copyright (C) 2009, 2015, iRay Technology (Shanghai) Ltd.
  11. *
  12. */
  13. #ifndef _IRAY_VARIANT_H_
  14. #define _IRAY_VARIANT_H_
  15. #define IRAY_MAX_STR_LEN 512
  16. #pragma pack(push, 1)
  17. enum IRAY_VAR_TYPE
  18. {
  19. IVT_INT = 0,
  20. IVT_FLT = 1,
  21. IVT_STR = 2,
  22. };
  23. typedef struct _tagIRayVariant
  24. {
  25. enum IRAY_VAR_TYPE vt;
  26. struct
  27. {
  28. int nVal;
  29. float fVal;
  30. char strVal[IRAY_MAX_STR_LEN];
  31. }val;
  32. }IRayVariant;
  33. enum IRAY_PARAM_TYPE
  34. {
  35. IPT_VARIANT = 0,
  36. IPT_BLOCK = 100
  37. };
  38. typedef struct _tagIRayDataBlock
  39. {
  40. unsigned uBytes;
  41. void* pData;
  42. }IRayDataBlock;
  43. typedef struct _tagIRayCmdParam
  44. {
  45. enum IRAY_PARAM_TYPE pt;
  46. IRayVariant var;
  47. IRayDataBlock blc;
  48. }IRayCmdParam;
  49. typedef struct _tagIRayVariantMapItem
  50. {
  51. int nMapKey;
  52. IRayVariant varMapVal;
  53. }IRayVariantMapItem;
  54. typedef struct _tagIRayVariantMap
  55. {
  56. int nItemCount;
  57. IRayVariantMapItem* pItems;
  58. }IRayVariantMap;
  59. #pragma pack(pop)
  60. #endif