- type
- // ***************************************************************
- // Welt Position, Normale Vector
- // Tangente, BiNormale Vector
- // Light und HalfAngle Vector (endgültiger bumplight vector)
- // Texture Koordinaten array, meinstens immer Length = 1 bei einer decal texture
- // ***************************************************************
- TR3DVertex = record
- Position,
- Normal,
- Tangent,
- Binormal,
- Light,
- HalfAngle : TR3DVector;
- Texcoords : array of TR3DTexcoord;
- end;
- // ***************************************************************
- // Start Index im Face Array
- // End Index im Face Array
- // Position, Rotation, Skalierung
- // AABB Index im AABB Array
- // Schatten für das Objekt aktiviert ?
- // ***************************************************************
- TR3DObject = record
- StartFaceIndex,
- EndFaceIndex : Integer;
- Position,
- Rotation,
- Scale : TR3DVector;
- AABBIndex : Integer;
- DrawShadows : Boolean;
- end;
- // ***************************************************************
- // StartIndex im Vertices Array
- // Der Name unseres Shaders
- // Der Absolute Index unseres Shaders (mit diesem wird gearbeitet)
- // Tangente, BiNormal und Poly Normale
- // ***************************************************************
- TR3DFace = record
- VerticeIndex : Integer;
- ShaderID : String;
- ShaderIDX : Integer;
- Basis : TR3DOrthoNormalBasis;
- end;
- // ******************
- // Unsere Welt Klasse
- // ******************
- TR3DWorld = class(TObject)
- private
- fPointLights : array of TR3DPointLight; // Punktlichter
- fSpotLights : array of TR3DSpotLight; // Spotlichter
- fShaders : array of TR3DShader; // Shaders
- fVertices : array of TR3DVertex; // Vertices (Vectors)
- fFaces : array of TR3DFace; // Faces
- fObjects : array of TR3DObject; // Objekte
- fTextures : TR3DTextureManager; // Texture Library
- fAABBs : array of TR3DAxisAlignBoundingBox; // Bounding Boxes
- end;