Class TAbstractTexture2DNode

Unit

Declaration

type TAbstractTexture2DNode = class(TAbstractTextureNode)

Description

VRML/X3D texture that is 2D and can be loaded (from file or some other stream).

For X3D, this descends from X3DTextureNode and is an ancestor for X3DTexture2DNode, so X3D hierarchy is nicely preserved.

Hierarchy

Overview

Methods

Public procedure CreateNode; override;
Public destructor Destroy; override;
Public function TextureImage: TEncodedImage;
Public function IsTextureImage: boolean;
Public function TextureComposite: TCompositeImage;
Public function TextureVideo: TVideo;
Public function IsTextureVideo: boolean;

Properties

Public property IsTextureLoaded: boolean read FIsTextureLoaded write SetIsTextureLoaded;
Public property RepeatS: boolean read GetRepeatS write SetRepeatS;
Public property RepeatT: boolean read GetRepeatT write SetRepeatT;
Public property TextureUsedFullUrl: string read FTextureUsedFullUrl;
Public property FdTextureProperties: TSFNode read FFdTextureProperties;
Public property TextureProperties: TTexturePropertiesNode read GetTextureProperties write SetTextureProperties;

Description

Methods

Public procedure CreateNode; override;
 
Public destructor Destroy; override;
 
Public function TextureImage: TEncodedImage;

TextureImage, TextureComposite and TextureVideo contain actual texture data. TextureImage may come from inline VRML texture or could be loaded from file (including from some URL), this doesn't concern you here.

Calls to TextureImage, TextureVideo, IsTextureImage, IsTextureVideo, TextureComposite will automatically load the data, so in simple situations you really don't need to do anything. Just check and use them when you want, and things will just work. See IsTextureLoaded for more control about loading / unloading.

Note that either one of TextureImage or TextureVideo may be Nil, if the other one is loaded. Or when loading failed (warning will be reported by WritelnWarning). IsTextureImage checks that TextureImage is non-nil (so it's successfully loaded) and additionally that texture size is not zero. Similar for IsTextureVideo.

TextureImage may have any class allowed by LoadTextureImage.

Public function IsTextureImage: boolean;
 
Public function TextureComposite: TCompositeImage;
 
Public function TextureVideo: TVideo;
 
Public function IsTextureVideo: boolean;
 

Properties

Public property IsTextureLoaded: boolean read FIsTextureLoaded write SetIsTextureLoaded;

Is the texture data already loaded. Since the texture will be loaded automatically, you're usually not interested in this property. You can read it to e.g. predict if next TextureImage / TextureVideo call may take a long time. (You know that if IsTextureLoaded = True then TextureImage just returns ready image instantly).

You can also set IsTextureLoaded. Setting to True means that you request the texture to be loaded now, if it's not loaded already. Setting to False may be useful if you want to release resources (e.g. when you want to keep TTextureNode instance loaded but you know that you will not need TextureImage / TextureComposite / TextureVideo anymore). You can also set it to False and then back to True if you want to request reloading the texture from URL (e.g. if you suspect that the URL contents changed).

Note that IsTextureLoaded is set to True, even if actual loading failed. You still have to check afterwards IsTextureImage and IsTextureVideo to know if loading was actually successful. This is deliberate — it means that each call to TextureImage etc. will not unnecessarily read the disk (or even connect to internet) when the file does not exist. Also, the loading errors reported by WritelnWarning will not be repeated — they will occur only once, when IsTextureLoaded changes from False to True.

Public property RepeatS: boolean read GetRepeatS write SetRepeatS;

Whether the texture repeats or clamps in given direction. Getting or setting this is the most comfortable way to change underlying node fields, setting this automatically does all necessary (sends events etc., see TVRMLField.Send).

Public property RepeatT: boolean read GetRepeatT write SetRepeatT;
 
Public property TextureUsedFullUrl: string read FTextureUsedFullUrl;

Once the texture data (image or video) is loaded, this is set to the URL that was used to load, or '' if no URL was used. "No URL was used" may mean that no URL was valid, or inlined image was used.

This is always a full, expanded (i.e. not relative) URL.

In case of data: URLs, this doesn't contain actual data (it would be too long then, and TextureUsedFullUrl is mainly for showing to the user), it's cutted.

Public property FdTextureProperties: TSFNode read FFdTextureProperties;
 
Public property TextureProperties: TTexturePropertiesNode read GetTextureProperties write SetTextureProperties;
 

Generated by PasDoc 0.15.0.