Class TImageTextureNode

Unit

Declaration

type TImageTextureNode = class(TAbstractTexture2DNode)

Description

Texture image loaded from a file.

Hierarchy

Overview

Methods

Public constructor Create(const AX3DName: String = ''; const ABaseUrl: String = ''); override;
Public function TextureDescription: string; override;
Public procedure LoadFromStream(const Stream: TStream; const MimeType: String; const UpdateUrl: String);
Public procedure LoadFromImage(const Image: TEncodedImage; const TakeImageOwnership: Boolean; const UpdateUrl: String);
Public procedure CreateNode; override;
Public class function ClassX3DType: String; override;
Public procedure SetUrl(const Value: array of string); overload;
Public procedure SetUrl(const Value: TCastleStringList); overload;

Properties

Public property FdUrl: TMFString read FFdUrl;
Public property FdFlipVertically: TSFBool read FFdFlipVertically;
Public property FlipVertically: Boolean read GetFlipVertically write SetFlipVertically;

Description

Methods

Public constructor Create(const AX3DName: String = ''; const ABaseUrl: String = ''); override;

This item has no description. Showing description inherited from TX3DNode.Create.

Constructor. Initializes various properties:

  • Name, BaseUrl are initialized from given parameters.

  • The Fields, Events lists are filled in every descendant, to have all the fields/events defined by the specification.

  • DefaultContainerField, and other node-specific stuff, is filled in descendants. This is actually implemented in CreateNode, that is called at the end of this constructor.

Public function TextureDescription: string; override;

This item has no description. Showing description inherited from TAbstractTextureNode.TextureDescription.

Short description how texture is defined, is it inline or loaded from URL, is it video of simple image texture. "none" if it's not defined at all.

Calling this may not cause automatically loading the texture data (for exampe, from file in case of TAbstractTexture2DNode). So it cannot describe the actually loaded data.

In this class, simply returns X3DType. Override to say something more descriptive.

Public procedure LoadFromStream(const Stream: TStream; const MimeType: String; const UpdateUrl: String);

Load image contents from a stream.

If UpdateUrl is not empty, then this also sets the FdUrl field to the indicated value (without actually loading the image from this URL). This is useful if you later may serialize this TImageTextureNode: thus URL will represent this image in the output. Note: aside from normal URLs (file, http and such protocols), you can always set this URL to a "data URI" that would encode the image contents. See CGE example tools/to-data-uri/to-data-uri.lpr for an example.

Public procedure LoadFromImage(const Image: TEncodedImage; const TakeImageOwnership: Boolean; const UpdateUrl: String);

Load image contents from a ready TEncodedImage instance.

If TakeImageOwnership = True then we take given Image reference, and the lifetime of this Image object will be further managed by this TImageTextureNode class (so you should no longer free it yourself). If TakeImageOwnership = False then we only copy Image contents (this is slower, but it means that ownership and freeing of given Image instance remains on your side).

If UpdateUrl is not empty, then this also sets the FdUrl field to the indicated value (without actually loading the image from this URL). This is useful if you later may serialize this TImageTextureNode: thus URL will represent this image in the output. Note: aside from normal URLs (file, http and such protocols), you can always set this URL to a "data URI" that would encode the image contents. See CGE example tools/to-data-uri/to-data-uri.lpr for an example.

Public procedure CreateNode; override;

Create node fields and events.

Public class function ClassX3DType: String; override;

This item has no description. Showing description inherited from TX3DNode.ClassX3DType.

Node type name in VRML/X3D, for this class. Normal VRML/X3D node classes should override this to return something non-empty, and then X3DType automatically will return the same value.

Empty for classes that don't have a hardcoded VRML/X3D node name, like a special TX3DUnknownNode. Such special classes should override then X3DType to return actual non-empty name there.

You usually should call X3DType. The only use of this method is that it works on classes (it's "class function"), without needing at actual instance.

Public procedure SetUrl(const Value: array of string); overload;

This item has no description.

Public procedure SetUrl(const Value: TCastleStringList); overload;

This item has no description.

Properties

Public property FdUrl: TMFString read FFdUrl;

Internal wrapper for property Url. This wrapper API may change, we advise to access simpler Url instead, if it is defined (TODO: for now, some field types do not have a simpler counterpart).

Public property FdFlipVertically: TSFBool read FFdFlipVertically;

Internal wrapper for property FlipVertically. This wrapper API may change, we advise to access simpler FlipVertically instead, if it is defined (TODO: for now, some field types do not have a simpler counterpart).

Public property FlipVertically: Boolean read GetFlipVertically write SetFlipVertically;

This item has no description.


Generated by PasDoc 0.16.0-snapshot.