Castle Game EngineIntroduction Units Class Hierarchy Classes, Interfaces, Objects and Records Types Variables Constants Functions and Procedures Identifiers |
Unit CastleFrustum
Description
Frustum object (TFrustum) and helpers.
Uses
Overview
Classes, Interfaces, Objects and Records
Object TFrustum |
Viewing frustum, defined as 6 plane equations. |
Types
Constants
FrustumPointsQuadsIndexes: array[TFrustumPlane, 0..3]of LongWord =
( (0, 3, 7, 4),
(1, 2, 6, 5),
(2, 3, 7, 6),
(0, 1, 5, 4),
(0, 1, 2, 3),
(4, 5, 6, 7) ); |
FrustumPointsLinesIndexes: array[0..11, 0..1]of LongWord =
( (0, 1), (1, 2), (2, 3), (3, 0),
(4, 5), (5, 6), (6, 7), (7, 4),
(0, 4), (1, 5), (2, 6), (3, 7)
); |
Description
Types
TFrustumPointsSingle = packed array [0..7] of packed record
case Integer of
0: (XYZ: TVector3Single; W: Single);
1: (XYZW: TVector4Single);
end; |
|
TFrustumPointsDouble = packed array [0..7] of packed record
case Integer of
0: (XYZ: TVector3Double; W: Double);
1: (XYZW: TVector4Double);
end; |
|
TFrustumCollisionPossible = (...); |
See TFrustum.SphereCollisionPossible for description what each value of this type means.
Values
-
fcNoCollision:
-
fcSomeCollisionPossible:
-
fcInsideFrustum:
|
Constants
FrustumPointsQuadsIndexes: array[TFrustumPlane, 0..3]of LongWord =
( (0, 3, 7, 4),
(1, 2, 6, 5),
(2, 3, 7, 6),
(0, 1, 5, 4),
(0, 1, 2, 3),
(4, 5, 6, 7) ); |
|
FrustumPointsLinesIndexes: array[0..11, 0..1]of LongWord =
( (0, 1), (1, 2), (2, 3), (3, 0),
(4, 5), (5, 6), (6, 7), (7, 4),
(0, 4), (1, 5), (2, 6), (3, 7)
); |
Useful if you want to draw frustum obtained from TFrustum.CalculatePoints.
It's guaranteed that the first 4 items touch only the first 4 (near plane) points of the frustum — useful if you want to draw only the near plane rect. For ZFarInfinity, other points may be in infinity.
|
|