Class TViewpointNode

DescriptionHierarchyFieldsMethodsProperties

Unit

Declaration

type TViewpointNode = class(TAbstractX3DViewpointNode)

Description

Viewpoint that provides a perspective view of the scene.

Hierarchy

Overview

Methods

Public procedure CreateNode; override;
Public class function ClassX3DType: string; override;
Public class function URNMatching(const URN: string): boolean; 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;
Public property FieldOfView: Single read GetFieldOfView write SetFieldOfView;

Description

Methods

Public procedure CreateNode; override;
 
Public class function ClassX3DType: string; override;
 
Public class function URNMatching(const URN: string): boolean; 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 fieldOfView. 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;
 
Public property FieldOfView: Single read GetFieldOfView write SetFieldOfView;
 

Generated by PasDoc 0.14.0.