Class TViewpointNode

DescriptionHierarchyFieldsMethodsProperties

Unit

Declaration

type TViewpointNode = class(TAbstractX3DViewpointNode)

Description

no description available, TAbstractX3DViewpointNode description follows
no description available, TAbstractViewpointNode description follows

Common ancestor for both VRML 1.0 camera nodes and VRML/X3D >= 2.0 viewpoint nodes.

Hierarchy

Overview

Methods

Public procedure CreateNode; override;
Public class function ClassNodeTypeName: string; override;
Public class function URNMatching(const URN: string): boolean; override;
Public function Position: TSFVec3f; override;
Public class function ProjectionType: TProjectionType; override;
Public function AngleOfView(const ThisToOtherSizeRatio: Single): Single;
Public class function ViewpointAngleOfView( FieldOfView: Single; const ThisToOtherSizeRatio: Single): Single;
Public function ProjectionMatrix: TMatrix4Single; override;

Properties

Public property FdFieldOfView: TSFFloat read FFdFieldOfView;
Public property FdPosition: TSFVec3f read FFdPosition;

Description

Methods

Public procedure CreateNode; override;
 
Public class function ClassNodeTypeName: string; override;
 
Public class function URNMatching(const URN: string): boolean; override;
 
Public function Position: TSFVec3f; override;
 
Public class function ProjectionType: TProjectionType; override;
 
Public function AngleOfView(const ThisToOtherSizeRatio: Single): Single;

This calculates proper angle of view for typical rectangular display, based on given fieldOfView field value. Result is in radians (just like fieldOfView VRML field).

If you want to calculate horizontal angle of view then pass as ThisToOtherSizeRatio your window's width / height. If you want to calculate vertical angle of view then pass as ThisToOtherSizeRatio your window's height / width. For this method it doesn't really matter which is horizontal and which is vertical, both are treated the same.

This works following VRML spec. So the angle of view for smaller window size is set to fieldOfViee. The other angle can always be calculated by AdjustViewAngleRadToAspectRatio (this implements the same equation that is mentioned in VRML spec). The larger angle cannot be larger than Pi, and may force the smaller angle to be smaller than fieldOfView.

Public class function ViewpointAngleOfView( FieldOfView: Single; const ThisToOtherSizeRatio: Single): Single;

This is like AngleOfView, but it allows you to specify FieldOfView as a parameter.

Public function ProjectionMatrix: TMatrix4Single; override;
 

Properties

Public property FdFieldOfView: TSFFloat read FFdFieldOfView;
 
Public property FdPosition: TSFVec3f read FFdPosition;
 

Generated by PasDoc 0.12.1 on 2013-02-04 20:26:55