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:1005
void(containerClass::* SetMethodType)(GlsEyePoint::FovConstraintType)
Typedef for the set method function pointer.
Definition: disti_metadata.h:1007
GlsEyePoint::FovConstraintType(containerClass::* GetMethodType)()
Typedef for the get method function pointer.
Definition: disti_metadata.h:1008
The DistiAttributeFovConstraintTypeEnum class.
Definition: gls_eyepoint.h:451
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
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
virtual InterfaceListType * GetCppInterfaceDescription(InterfaceListType *addToThisList) override
virtual void GetCppInterfaceDescriptionFree(InterfaceListType *list) 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 DrawFrustum(bool selected, bool orthographic, bool fovIsHorizontal, double orthoSize, double otherOrthoSize, double fov, double otherFov, FovConstraintType horizontalConstraint, FovConstraintType verticalConstraint, double farClip, double nearClip)
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()
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:235
#define DISTI_DEPRECATED(msg)
Defines whether this compiler supports the C++14 deprecated attribute.
Definition: gls_cpp_lang_support.h:457
#define DISTI_METHOD_OVERRIDE
Macro to wrap the override keyword, removed on compilers that don't support it.
Definition: gls_cpp_lang_support.h:214
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
Force inclusion of the DirectShow library.
Definition: bmpimage.h:47
VertexNoColor Vector
Definition: gls_font_base.h:69
GLS_EyePoint_Initializers
Definition: gls_eyepoint.h:56