40#ifndef _GLS_EYEPOINT_H
41#define _GLS_EYEPOINT_H
57 GLS_EYEPOINT_FOV = GLS_LAST_INITIALIZER + 1,
58 GLS_EYEPOINT_ORTHOGRAPHIC,
59 GLS_EYEPOINT_ORTHO_SIZE,
60 GLS_EYEPOINT_FOV_IS_HORIZONTAL,
62 GLS_EYEPOINT_NEAR_CLIP,
63 GLS_EYEPOINT_FAR_CLIP,
64 GLS_EYEPOINT_MAINTAIN_ASPECT,
65 GLS_EYEPOINT_VIEW_VECTORS
82 virtual void Call(
int viewWidth,
int viewHeight,
GlsEyePoint* thisEye,
double& rval1,
double& rval2 ) = 0;
90 typedef void ( T::*
MethodType )(
int viewWidth,
int viewHeight,
GlsEyePoint* thisEye,
double& rval1,
double& rval2 );
119 DISTI_DEPRECATED(
"This identifier is forbidden by the C++ standard. Use BaseClass instead." )
122 friend class GlsEyePointEditor;
128 FOV_CONSTRAINT_GREATER,
130 FOV_CONSTRAINT_EXACTLY
134 static bool _drawDebugGeometry;
204 bool fovIsHorizontal,
206 double otherOrthoSize,
432 bool _getModelViewMatrixIncludeEyeToWorld;
438 int _getProjectionMatrixWidth;
439 int _getProjectionMatrixHeight;
Definition: disti_metadata.h:87
virtual void Rotate(float angle, int axis=Z_AXIS)
Definition: disti_metadata.h:1021
void(containerClass::* SetMethodType)(GlsEyePoint::FovConstraintType)
Typedef for the set method function pointer.
Definition: disti_metadata.h:1023
GlsEyePoint::FovConstraintType(containerClass::* GetMethodType)()
Typedef for the get method function pointer.
Definition: disti_metadata.h:1024
The DistiAttributeFovConstraintTypeEnum class.
Definition: gls_eyepoint.h:451
std::string Type() const override
DistiAttributeFovConstraintTypeEnum(GlsEyePoint *frame, SetMethodType setMethod, GetMethodType getMethod, const AttributeName &name)
Definition: dynamic_array.h:79
The EyePointCalcViewCallbackBase class.
Definition: gls_eyepoint.h:72
virtual void Call(int viewWidth, int viewHeight, GlsEyePoint *thisEye, double &rval1, double &rval2)=0
The EyePointCalcViewCallback class.
Definition: gls_eyepoint.h:88
void Call(int viewWidth, int viewHeight, GlsEyePoint *thisEye, double &rval1, double &rval2) override
Definition: gls_eyepoint.h:104
void(T::* MethodType)(int viewWidth, int viewHeight, GlsEyePoint *thisEye, double &rval1, double &rval2)
Typedef for the callback function pointer.
Definition: gls_eyepoint.h:90
EyePointCalcViewCallback(T *container, MethodType method)
Definition: gls_eyepoint.h:98
T * _container
The object which contains the method to call.
Definition: gls_eyepoint.h:92
MethodType _method
The callback method function pointer.
Definition: gls_eyepoint.h:93
Definition: gls_eyepoint.h:117
static void DrawDebugGeometry(bool draw)
Definition: gls_eyepoint.h:163
virtual void CalcPerspectiveView(int viewWidth, int viewHeight, GlsEyePoint *thisEye, double &fovY, double &aspect)
void VerticalConstraint(FovConstraintType val)
virtual DisplayObject * CloneObject(bool generateNames=false) override
virtual void SetFromGloData(GlsGloFileAttribute &data) override
FovConstraintType _verticalConstraint
Definition: gls_eyepoint.h:144
EyePointCalcViewCallbackBase * _alternateCalcPerspectiveView
Definition: gls_eyepoint.h:150
double _orthoSize
Definition: gls_eyepoint.h:140
float Roll(const Vector upVector=Vector(0, 1, 0))
double _otherFov
Definition: gls_eyepoint.h:138
virtual void Rotate(const Vector &orig, float angle, const Vector &axis) override
virtual void SetAvailableAttributes(unsigned int value) override
bool _orthographic
Definition: gls_eyepoint.h:139
EyePointCalcViewCallbackBase * _alternateCalcOrthographicView
Definition: gls_eyepoint.h:149
void Orthographic(bool val)
virtual void SetValue(int spec, va_list &args) override
bool _fovIsHorizontal
Definition: gls_eyepoint.h:142
void NearClip(double val)
Vector _viewVectors[3]
Definition: gls_eyepoint.h:147
void OrthoSize(double val)
FovConstraintType _horizontalConstraint
Definition: gls_eyepoint.h:143
static void SetAlternateCalcPerspectiveView(GlsEyePoint *eye, T *container, typename EyePointCalcViewCallback< T >::MethodType method)
Definition: gls_eyepoint.h:418
virtual void CopyProperties(DisplayObject *src) override
virtual void GetModelViewMatrix(GlsMatrixType &modelview, bool includeEyeToWorld=true)
double _fov
Definition: gls_eyepoint.h:137
static void SetAlternateCalcOrthographicView(GlsEyePoint *eye, T *container, typename EyePointCalcViewCallback< T >::MethodType method)
Definition: gls_eyepoint.h:404
virtual void CalcOrthographicView(int viewWidth, int viewHeight, GlsEyePoint *thisEye, double &fovY, double &aspect)
void Orientation(const Vector &direction, float roll, const Vector &upVector=Vector(0, 1, 0))
FovConstraintType VerticalConstraint()
FovConstraintType HorizontalConstraint()
virtual void Draw() override
void OtherOrthoSize(double val)
void FovIsHorizontal(bool val)
virtual void GetProjectionMatrix(GlsMatrixType &proj, int viewW, int viewH)
double _otherOrthoSize
Definition: gls_eyepoint.h:141
void GetViewVectors(Vector &x, Vector &y, Vector &z)
void SetViewVectors(const Vector &x, const Vector &y, const Vector &z)
void HorizontalConstraint(FovConstraintType val)
FovConstraintType
The FovConstraintType enum. Defines view constraint behavior.
Definition: gls_eyepoint.h:126
void OtherFOV(double fovDeg)
virtual void ApplyViewMatrices(GlsMatrixType &proj, GlsMatrixType &modelView, int width, int height)
virtual void CopyGeometry(DisplayObject *src) override
double _farClip
Definition: gls_eyepoint.h:146
double _nearClip
Definition: gls_eyepoint.h:145
Definition: gls_glo_file.h:1243
The disti::DisplayObject class and global enumerations.
The Color class: Implements a 4 component RGBA color.
Macros and helper code to determine what subset of C++11/14/17 is available.
#define DISTI_SPECIAL_MEM_FUN_DELETE
Macro to wrap function deletion, removed on compilers that don't support it.
Definition: gls_cpp_lang_support.h:246
#define DISTI_DEPRECATED(msg)
Defines whether this compiler supports the C++14 deprecated attribute.
Definition: gls_cpp_lang_support.h:488
#define DISTI_METHOD_OVERRIDE
Macro to wrap the override keyword, removed on compilers that don't support it.
Definition: gls_cpp_lang_support.h:222
A file for all GL Studio files to include.
#define GLS_EXPORT
Macro denoting which functions should be visible from the runtime library.
Definition: gls_include.h:52
Definition: bmpimage.h:47
VertexNoColor Vector
Definition: gls_font_base.h:69
GLS_EyePoint_Initializers
Definition: gls_eyepoint.h:56