Unit CastleTransform
Description
Group and transform scenes (TCastleTransform).
Uses
- SysUtils
- Classes
- Math
- Generics.Collections
- Contnrs
- Kraft
- CastleVectors
- CastleFrustum
- CastleBoxes
- CastleClassUtils
- CastleKeysMouse
- CastleRectangles
- CastleUtils
- CastleTimeUtils
- CastleComponentSerialize
- CastleSoundEngine
- CastleCameras
- CastleTriangles
- CastleRenderOptions
Overview
Classes, Interfaces, Objects and Records
| Name | Description |
|---|---|
Class ECannotAddToAnotherWorld |
|
Class ETransformParentUndefined |
|
Class EMultipleReferencesInWorld |
|
Class ENotAddedToWorld |
|
Class EPhysicsError |
|
Class TBaseShadowVolumeRenderer |
Shadow volumes helper, not depending on OpenGL. |
Object TRayCollisionNode |
Information about ray collision with a single 3D object. |
Class TRayCollision |
Represents a ray collision with a 3D objects tree. |
Object TCollisionDetailsItem |
Detailed information about collision with a single 3D object. |
Class TCollisionDetails |
Represents a collision with a 3D objects tree. |
Record TPhysicsCollisionDetails |
|
Record TRenderStatistics |
Statistics about what was rendered during last frame. |
Class TRenderParams |
Information that a TCastleTransform object needs to render. |
Class TCastleBehavior |
Behaviors can be attached to TCastleTransform to perform specific logic, for example implement creature movement. |
Class TPrepareParams |
Information that a TCastleTransform object needs to prepare rendering. |
Class TCastleTransformList |
List of TCastleTransform instances. |
Class TCastleTransform |
Group and transform (move, rotate, scale) children objects. |
Class TCastleAbstractRootTransform |
Root of transformations and scenes (tree of TCastleTransform and TCastleScene). |
Class TPhysicsProperties |
Configure physics simulation calculation. |
Class TCollider |
Shape used for collision detection of a rigid body TRigidBody. |
Class TPlaneCollider |
Collide as an infinite plane. |
Class TBoxCollider |
Collide as a box. |
Class TSphereCollider |
Collide as a sphere. |
Class TRigidBody |
Rigid body properties for the physics engine, see TCastleTransform.RigidBody. |
Functions and Procedures
procedure TransformSave(const T: TCastleTransform; const Url: String); |
function TransformLoad(const Url: String; const Owner: TComponent): TCastleTransform; |
procedure TransformMatricesMult(var Transform, InverseTransform: TMatrix4; const Center: TVector3; const Rotation: TVector4; const Scale: TVector3; const ScaleOrientation: TVector4; const Translation: TVector3); deprecated 'use TTransformation.Multiply'; |
function StrToOrientationType(const S: String): TOrientationType; |
Types
TCastleTransformClass = class of TCastleTransform; |
TRenderFromViewFunction = procedure (const RenderingCamera: TRenderingCamera) of object; |
TVisibleChange = (...); |
TVisibleChanges = set of TVisibleChange; |
TVisibleChangeEvent = procedure (const Sender: TCastleTransform; const Changes: TVisibleChanges) of object; |
TPrepareResourcesOption = (...); |
TPrepareResourcesOptions = set of TPrepareResourcesOption; |
PRayCollisionNode = ˆTRayCollisionNode; |
PCollisionDetailsItem = ˆTCollisionDetailsItem; |
TRemoveType = (...); |
TUserRenderingPass = 0..2; |
TCastleBehaviorClass = class of TCastleBehavior; |
TOrientationType = (...); |
TSceneManagerWorld = TCastleAbstractRootTransform deprecated 'use TCastleRootTransform'; |
T3DCoord = 0..2; |
T3DCoords = set of T3DCoord; |
TOnCollision = procedure (const CollisionDetails: TPhysicsCollisionDetails) of object; |
TRigidBodyList = specialize TList<TRigidBody>; |
Constants
rfOffScreen = rfRenderedTexture deprecated 'use rfRenderedTexture'; |
Description
Functions and Procedures
procedure TransformSave(const T: TCastleTransform; const Url: String); |
|
Save / load TCastleTransform (or descendant) to a .castle-transform file. An example: { TransformSave and TransformLoad example. } uses SysUtils, Classes, CastleLog, CastleVectors, CastleTransform, CastleScene, CastleComponentSerialize; var Scene: TCastleScene; Transform: TCastleTransform; TransformOwner: TComponent; begin InitializeLog; { Create TCastleTransform instance, with a TCastleScene child. } Scene := TCastleScene.Create(nil); Scene.Name := 'MyScene'; // will enable to find it later with FindRequiredComponent Scene.Load('castle-data:/teapot.x3dv'); Transform := TCastleTransform.Create(nil); Transform.Translation := Vector3(1, 2, 3); Transform.Add(Scene); { Save it to file. } TransformSave(Transform, 'aaa.castle-transform'); { You can destroy the instances now. } FreeAndNil(Scene); FreeAndNil(Transform); { Create a component that will own all loaded instances, allowing to easily free them, and to use FindRequiredComponent. } TransformOwner := TComponent.Create(nil); { Now you can load them from file, and check that they are equal. } Transform := TransformLoad('aaa.castle-transform', TransformOwner); WritelnLog('Loaded transform, with translation %s, with %d children', [ Transform.ToString, Transform.Count ]); Scene := TransformOwner.FindRequiredComponent('MyScene') as TCastleScene; WritelnLog('Found scene in loaded transform, with url %s', [ Scene.Url ]); { Free loaded stuff. } FreeAndNil(TransformOwner); end. |
function TransformLoad(const Url: String; const Owner: TComponent): TCastleTransform; |
procedure TransformMatricesMult(var Transform, InverseTransform: TMatrix4; const Center: TVector3; const Rotation: TVector4; const Scale: TVector3; const ScaleOrientation: TVector4; const Translation: TVector3); deprecated 'use TTransformation.Multiply'; |
|
Warning: this symbol is deprecated: use TTransformation.Multiply |
function StrToOrientationType(const S: String): TOrientationType; |
Types
TCastleTransformClass = class of TCastleTransform; |
TRenderFromViewFunction = procedure (const RenderingCamera: TRenderingCamera) of object; |
TVisibleChange = (...); |
|
Describe what visible thing changed for TCastleTransform.VisibleChangeHere. Values
|
TVisibleChanges = set of TVisibleChange; |
TVisibleChangeEvent = procedure (const Sender: TCastleTransform; const Changes: TVisibleChanges) of object; |
TPrepareResourcesOption = (...); |
|
Various things that TCastleTransform.PrepareResources may prepare. Values
|
TPrepareResourcesOptions = set of TPrepareResourcesOption; |
PRayCollisionNode = ˆTRayCollisionNode; |
PCollisionDetailsItem = ˆTCollisionDetailsItem; |
TRemoveType = (...); |
Values
|
TUserRenderingPass = 0..2; |
|
Rendering pass, for user purposes. Useful to keep shaders cached when you render the same scene multiple times in the same frame (under different lighting conditions or other things that change shaders). |
TCastleBehaviorClass = class of TCastleBehavior; |
TOrientationType = (...); |
|
Orientation of the model is 3D world, determining where is the conceptual "up" direction of the model, and where is it facing. Used by the TCastleTransform.Orientation and TCastleTransform.DefaultOrientation. Values
|
TSceneManagerWorld = TCastleAbstractRootTransform deprecated 'use TCastleRootTransform'; |
|
Warning: this symbol is deprecated: use TCastleRootTransform |
T3DCoord = 0..2; |
T3DCoords = set of T3DCoord; |
TOnCollision = procedure (const CollisionDetails: TPhysicsCollisionDetails) of object; |
TRigidBodyList = specialize TList<TRigidBody>; |
Constants
rfOffScreen = rfRenderedTexture deprecated 'use rfRenderedTexture'; |
|
Warning: this symbol is deprecated: use rfRenderedTexture |
Generated by PasDoc 0.16.0.