Class TFontStyleNode

Unit

Declaration

type TFontStyleNode = class(TAbstractFontStyleNode)

Description

Defines the size, family, style and other properties used for TTextNode.

Hierarchy

Overview

Nested Types

Published TFontEvent = procedure (const FontStyle: TFontStyleNode; var Font: TTextureFontData) of object;

Fields

Public nested const DefaultSize = 1.0;
Public nested const DefaultSpacing = 1.0;
Public nested const DefaultFamily = ffSerif;
Public nested const DefaultBold = false;
Public nested const DefaultItalic = false;
Public nested const DefaultJustify = fjBegin;
Public nested const DefaultJustifyMinor = fjFirst;
Public nested const DefaultBlending = true;
Public class var OnFont: TFontEvent deprecated 'use TFontStyleNode.CustomFont or TCastleText.CustomFont';

Methods

Public constructor Create(const AX3DName: string = ''; const ABaseUrl: string = ''); override;
Public destructor Destroy; override;
Public class function ForVRMLVersion(const Version: TX3DVersion): boolean; override;
Public function Font: TTextureFontData;
Public procedure CreateNode; override;
Public class function ClassX3DType: string; override;

Properties

Public property Family: TX3DFontFamily read GetFamily write SetFamily;
Public property Justify: TX3DFontJustify read GetJustify write SetJustify;
Public property JustifyMinor: TX3DFontJustify read GetJustifyMinor write SetJustifyMinor;
Public property Bold: boolean read GetBold write SetBold;
Public property Italic: boolean read GetItalic write SetItalic;
Public property CustomFont: TCastleFont read FCustomFont write SetCustomFont;
Public property FdFamily: TMFString read FFdFamily;
Public property FdHorizontal: TSFBool read FFdHorizontal;
Public property Horizontal: Boolean read GetHorizontal write SetHorizontal;
Public property FdJustify: TMFString read FFdJustify;
Public property FdLanguage: TSFString read FFdLanguage;
Public property Language: String read GetLanguage write SetLanguage;
Public property FdLeftToRight: TSFBool read FFdLeftToRight;
Public property LeftToRight: Boolean read GetLeftToRight write SetLeftToRight;
Public property FdSize: TSFFloat read FFdSize;
Public property Size: Single read GetSize write SetSize;
Public property FdSpacing: TSFFloat read FFdSpacing;
Public property Spacing: Single read GetSpacing write SetSpacing;
Public property FdStyle: TSFStringEnum read FFdStyle;
Public property Style: TX3DFontStyle read GetStyle write SetStyle;
Public property FdTopToBottom: TSFBool read FFdTopToBottom;
Public property TopToBottom: Boolean read GetTopToBottom write SetTopToBottom;
Public property FdBlending: TSFBool read FFdBlending;
Public property Blending: Boolean read GetBlending write SetBlending;

Description

Nested Types

Published TFontEvent = procedure (const FontStyle: TFontStyleNode; var Font: TTextureFontData) of object;

This item has no description.

Fields

Public nested const DefaultSize = 1.0;

This item has no description.

Public nested const DefaultSpacing = 1.0;

This item has no description.

Public nested const DefaultFamily = ffSerif;

This item has no description.

Public nested const DefaultBold = false;

This item has no description.

Public nested const DefaultItalic = false;

This item has no description.

Public nested const DefaultJustify = fjBegin;

This item has no description.

Public nested const DefaultJustifyMinor = fjFirst;

This item has no description.

Public nested const DefaultBlending = true;

This item has no description.

Public class var OnFont: TFontEvent deprecated 'use TFontStyleNode.CustomFont or TCastleText.CustomFont';

Warning: this symbol is deprecated: use TFontStyleNode.CustomFont or TCastleText.CustomFont

Adjust the font. Assign here a callback which can modify a font. You can look at any font style properties to decide how to adjust the font, like Bold, Italic, Family.

You can always decide to leave the given "Font" instance at the default value, or to modify it.

The font instance set here is a TTextureFontData instance. You can load it from a TTF file by TTextureFontData.Create, or you can assign here a TTextureFontData instance defined by a unit generated by texture-font-to-pascal. See https://castle-engine.io/manual_text.php about using texture-font-to-pascal. In the first case, remember that it is your resposibility to free this font later, but only after all possible Text nodes using this font are destroyed.

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 destructor Destroy; override;

This item has no description.

Public class function ForVRMLVersion(const Version: TX3DVersion): boolean; override;

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

Some nodes are present only in specific VRML/X3D version. This functions decides it.

For example some nodes can only work in VRML < 2.0, some others only in VRML >= 2.0. There are even some pairs of nodes: for example TConeNode_1 works with VRML < 2.0, TConeNode works with VRML >= 2.0.

NodesManager will use this.

Default implementation of this function returns always True. Generally, I don't try to set this too aggresively — in other words, for all cases when it's sensible, I allow nodes to be used in every VRML/X3D version, even when official specification doesn't. This means that when reading VRML 1.0 files actually a large part of VRML 2.0 is allowed too, and also while reading VRML 2.0 many constructs from VRML 1.0 (officially no longer present in VRML 2.0) are allowed too. I'm trying to support what I call a "sum of VRML 1.0 and 2.0".

In practice I only use this function when various VRML/X3D versions specify the same node name but

  • With different fields.

    For example Cone and Cylinder have slightly different fields, due to the fact that VRML 2.0 resigned from using TSFBitMask fields.

  • With different behavior.

    For example definitions of Sphere for VRML 1.0 and 2.0 are practically equal. However, the behavior from where to take texture and material info is different — in VRML 1.0 we take last Texture2, Material etc. nodes, while in VRML 2.0 we look in parent Shape's "appearance" field. So once again two different Sphere classes are needed.

Public function Font: TTextureFontData;

Font used by this node, determined by our fields (like Bold) and OnFont.

Public procedure CreateNode; override;

This item has no description. Showing description inherited from TAbstractFontStyleNode.CreateNode.

Automatically generated node properties.

Do not edit this file manually! To add new properties: - add them to the text files in tools/internal/x3d-nodes-to-pascal/nodes-specification/ , - and regenerate include files by running x3d-nodes-to-pascal

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.

Properties

Public property Family: TX3DFontFamily read GetFamily write SetFamily;

This item has no description.

Public property Justify: TX3DFontJustify read GetJustify write SetJustify;

This item has no description.

Public property JustifyMinor: TX3DFontJustify read GetJustifyMinor write SetJustifyMinor;

This item has no description.

Public property Bold: boolean read GetBold write SetBold;

This item has no description.

Public property Italic: boolean read GetItalic write SetItalic;

This item has no description.

Public property CustomFont: TCastleFont read FCustomFont write SetCustomFont;

Adjust the font.

TODO: Currently this only allows TCastleFont. In the future it should allow any TCastleAbstractFont, like TCastleFontFamily (thus have different options for bold/italic variants) or TCastleBitmapFont.

Public property FdFamily: TMFString read FFdFamily;

Internal wrapper for property Family. This wrapper API may change, we advise to access simpler Family instead.

Public property FdHorizontal: TSFBool read FFdHorizontal;

Internal wrapper for property Horizontal. This wrapper API may change, we advise to access simpler Horizontal instead.

Public property Horizontal: Boolean read GetHorizontal write SetHorizontal;

This item has no description.

Public property FdJustify: TMFString read FFdJustify;

Internal wrapper for property Justify. This wrapper API may change, we advise to access simpler Justify instead.

Public property FdLanguage: TSFString read FFdLanguage;

Internal wrapper for property Language. This wrapper API may change, we advise to access simpler Language instead.

Public property Language: String read GetLanguage write SetLanguage;

This item has no description.

Public property FdLeftToRight: TSFBool read FFdLeftToRight;

Internal wrapper for property LeftToRight. This wrapper API may change, we advise to access simpler LeftToRight instead.

Public property LeftToRight: Boolean read GetLeftToRight write SetLeftToRight;

This item has no description.

Public property FdSize: TSFFloat read FFdSize;

Internal wrapper for property Size. This wrapper API may change, we advise to access simpler Size instead.

Public property Size: Single read GetSize write SetSize;

This item has no description.

Public property FdSpacing: TSFFloat read FFdSpacing;

Internal wrapper for property Spacing. This wrapper API may change, we advise to access simpler Spacing instead.

Public property Spacing: Single read GetSpacing write SetSpacing;

This item has no description.

Public property FdStyle: TSFStringEnum read FFdStyle;

Internal wrapper for property Style. This wrapper API may change, we advise to access simpler Style instead.

Public property Style: TX3DFontStyle read GetStyle write SetStyle;

This item has no description.

Public property FdTopToBottom: TSFBool read FFdTopToBottom;

Internal wrapper for property TopToBottom. This wrapper API may change, we advise to access simpler TopToBottom instead.

Public property TopToBottom: Boolean read GetTopToBottom write SetTopToBottom;

This item has no description.

Public property FdBlending: TSFBool read FFdBlending;

Internal wrapper for property Blending. This wrapper API may change, we advise to access simpler Blending instead.

Public property Blending: Boolean read GetBlending write SetBlending;

This item has no description.


Generated by PasDoc 0.16.0.