Formats.X.hpp 6.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220
  1. // CodeGear C++Builder
  2. // Copyright (c) 1995, 2024 by Embarcadero Technologies, Inc.
  3. // All rights reserved
  4. // (DO NOT EDIT: machine generated header) 'Formats.X.pas' rev: 36.00 (Windows)
  5. #ifndef Formats_XHPP
  6. #define Formats_XHPP
  7. #pragma delphiheader begin
  8. #pragma option push
  9. #if defined(__BORLANDC__) && !defined(__clang__)
  10. #pragma option -w- // All warnings off
  11. #pragma option -Vx // Zero-length empty class member
  12. #endif
  13. #pragma pack(push,8)
  14. #include <System.hpp>
  15. #include <SysInit.hpp>
  16. #include <System.Classes.hpp>
  17. #include <System.SysUtils.hpp>
  18. #include <Stage.VectorTypes.hpp>
  19. #include <Stage.VectorGeometry.hpp>
  20. #include <GLS.VectorLists.hpp>
  21. #include <GLS.PersistentClasses.hpp>
  22. #include <Stage.Utils.hpp>
  23. //-- user supplied -----------------------------------------------------------
  24. namespace Formats
  25. {
  26. namespace X
  27. {
  28. //-- forward type declarations -----------------------------------------------
  29. struct TDXFileHeader;
  30. class DELPHICLASS TDXNode;
  31. class DELPHICLASS TDXMaterial;
  32. class DELPHICLASS TDXMaterialList;
  33. class DELPHICLASS TDXFrame;
  34. class DELPHICLASS TDXMesh;
  35. class DELPHICLASS TDXFile;
  36. //-- type declarations -------------------------------------------------------
  37. struct DECLSPEC_DRECORD TDXFileHeader
  38. {
  39. public:
  40. System::StaticArray<char, 4> Magic;
  41. System::StaticArray<char, 2> Major;
  42. System::StaticArray<char, 2> Minor;
  43. System::StaticArray<char, 4> FileType;
  44. System::StaticArray<char, 4> FloatType;
  45. };
  46. #pragma pack(push,4)
  47. class PASCALIMPLEMENTATION TDXNode : public System::Classes::TList
  48. {
  49. typedef System::Classes::TList inherited;
  50. private:
  51. System::UnicodeString FName;
  52. System::UnicodeString FTypeName;
  53. TDXNode* FOwner;
  54. TDXNode* __fastcall GetItem(int index);
  55. public:
  56. __fastcall TDXNode(TDXNode* AOwner);
  57. __fastcall virtual TDXNode();
  58. virtual void __fastcall Clear();
  59. __property System::UnicodeString Name = {read=FName, write=FName};
  60. __property System::UnicodeString TypeName = {read=FTypeName, write=FTypeName};
  61. __property TDXNode* Owner = {read=FOwner};
  62. __property TDXNode* Items[int index] = {read=GetItem};
  63. public:
  64. /* TList.Destroy */ inline __fastcall virtual ~TDXNode() { }
  65. };
  66. #pragma pack(pop)
  67. #pragma pack(push,4)
  68. class PASCALIMPLEMENTATION TDXMaterial : public Gls::Persistentclasses::TGLPersistentObject
  69. {
  70. typedef Gls::Persistentclasses::TGLPersistentObject inherited;
  71. private:
  72. Stage::Vectortypes::TVector4f FDiffuse;
  73. float FSpecPower;
  74. Stage::Vectortypes::TVector3f FSpecular;
  75. Stage::Vectortypes::TVector3f FEmissive;
  76. System::UnicodeString FTexture;
  77. public:
  78. __fastcall TDXMaterial(TDXMaterialList* AOwner);
  79. __property Stage::Vectortypes::TVector4f Diffuse = {read=FDiffuse, write=FDiffuse};
  80. __property float SpecPower = {read=FSpecPower, write=FSpecPower};
  81. __property Stage::Vectortypes::TVector3f Specular = {read=FSpecular, write=FSpecular};
  82. __property Stage::Vectortypes::TVector3f Emissive = {read=FEmissive, write=FEmissive};
  83. __property System::UnicodeString Texture = {read=FTexture, write=FTexture};
  84. public:
  85. /* TGLPersistentObject.Create */ inline __fastcall virtual TDXMaterial() : Gls::Persistentclasses::TGLPersistentObject() { }
  86. /* TGLPersistentObject.CreateFromFiler */ inline __fastcall TDXMaterial(Gls::Persistentclasses::TGLVirtualReader* reader) : Gls::Persistentclasses::TGLPersistentObject(reader) { }
  87. /* TGLPersistentObject.Destroy */ inline __fastcall virtual ~TDXMaterial() { }
  88. };
  89. #pragma pack(pop)
  90. #pragma pack(push,4)
  91. class PASCALIMPLEMENTATION TDXMaterialList : public TDXNode
  92. {
  93. typedef TDXNode inherited;
  94. private:
  95. TDXMaterial* __fastcall GetMaterial(int index);
  96. public:
  97. __property TDXMaterial* Items[int index] = {read=GetMaterial};
  98. public:
  99. /* TDXNode.CreateOwned */ inline __fastcall TDXMaterialList(TDXNode* AOwner) : TDXNode(AOwner) { }
  100. /* TDXNode.Create */ inline __fastcall virtual TDXMaterialList() : TDXNode() { }
  101. public:
  102. /* TList.Destroy */ inline __fastcall virtual ~TDXMaterialList() { }
  103. };
  104. #pragma pack(pop)
  105. #pragma pack(push,4)
  106. class PASCALIMPLEMENTATION TDXFrame : public TDXNode
  107. {
  108. typedef TDXNode inherited;
  109. private:
  110. Stage::Vectortypes::TGLMatrix FMatrix;
  111. public:
  112. __fastcall virtual TDXFrame();
  113. Stage::Vectortypes::TGLMatrix __fastcall GlobalMatrix();
  114. __property Stage::Vectortypes::TGLMatrix Matrix = {read=FMatrix, write=FMatrix};
  115. public:
  116. /* TDXNode.CreateOwned */ inline __fastcall TDXFrame(TDXNode* AOwner) : TDXNode(AOwner) { }
  117. public:
  118. /* TList.Destroy */ inline __fastcall virtual ~TDXFrame() { }
  119. };
  120. #pragma pack(pop)
  121. #pragma pack(push,4)
  122. class PASCALIMPLEMENTATION TDXMesh : public TDXNode
  123. {
  124. typedef TDXNode inherited;
  125. private:
  126. Gls::Vectorlists::TGLAffineVectorList* FVertices;
  127. Gls::Vectorlists::TGLAffineVectorList* FNormals;
  128. Gls::Vectorlists::TGLAffineVectorList* FTexCoords;
  129. Gls::Vectorlists::TGLIntegerList* FVertexIndices;
  130. Gls::Vectorlists::TGLIntegerList* FNormalIndices;
  131. Gls::Vectorlists::TGLIntegerList* FMaterialIndices;
  132. Gls::Vectorlists::TGLIntegerList* FVertCountIndices;
  133. TDXMaterialList* FMaterialList;
  134. public:
  135. __fastcall virtual TDXMesh();
  136. __fastcall virtual ~TDXMesh();
  137. __property Gls::Vectorlists::TGLAffineVectorList* Vertices = {read=FVertices};
  138. __property Gls::Vectorlists::TGLAffineVectorList* Normals = {read=FNormals};
  139. __property Gls::Vectorlists::TGLAffineVectorList* TexCoords = {read=FTexCoords};
  140. __property Gls::Vectorlists::TGLIntegerList* VertexIndices = {read=FVertexIndices};
  141. __property Gls::Vectorlists::TGLIntegerList* NormalIndices = {read=FNormalIndices};
  142. __property Gls::Vectorlists::TGLIntegerList* MaterialIndices = {read=FMaterialIndices};
  143. __property Gls::Vectorlists::TGLIntegerList* VertCountIndices = {read=FVertCountIndices};
  144. __property TDXMaterialList* MaterialList = {read=FMaterialList};
  145. public:
  146. /* TDXNode.CreateOwned */ inline __fastcall TDXMesh(TDXNode* AOwner) : TDXNode(AOwner) { }
  147. };
  148. #pragma pack(pop)
  149. #pragma pack(push,4)
  150. class PASCALIMPLEMENTATION TDXFile : public System::TObject
  151. {
  152. typedef System::TObject inherited;
  153. private:
  154. TDXNode* FRootNode;
  155. TDXFileHeader FHeader;
  156. protected:
  157. void __fastcall ParseText(System::Classes::TStream* Stream);
  158. void __fastcall ParseBinary(System::Classes::TStream* Stream);
  159. public:
  160. __fastcall TDXFile();
  161. __fastcall virtual ~TDXFile();
  162. void __fastcall LoadFromStream(System::Classes::TStream* Stream);
  163. __property TDXFileHeader Header = {read=FHeader};
  164. __property TDXNode* RootNode = {read=FRootNode};
  165. };
  166. #pragma pack(pop)
  167. //-- var, const, procedure ---------------------------------------------------
  168. } /* namespace X */
  169. } /* namespace Formats */
  170. #if !defined(DELPHIHEADER_NO_IMPLICIT_NAMESPACE_USE) && !defined(NO_USING_NAMESPACE_FORMATS_X)
  171. using namespace Formats::X;
  172. #endif
  173. #if !defined(DELPHIHEADER_NO_IMPLICIT_NAMESPACE_USE) && !defined(NO_USING_NAMESPACE_FORMATS)
  174. using namespace Formats;
  175. #endif
  176. #pragma pack(pop)
  177. #pragma option pop
  178. #pragma delphiheader end.
  179. //-- end unit ----------------------------------------------------------------
  180. #endif // Formats_XHPP