![]() |
ACloudViewer
3.9.4
A Modern Library for 3D Data Processing
|
Standard parameters for GL displays/viewports. More...
#include <ecvViewportParameters.h>


Public Member Functions | |
| ecvViewportParameters () | |
| Default constructor. More... | |
| ecvViewportParameters (const ecvViewportParameters ¶ms) | |
| Copy constructor. More... | |
| bool | isSerializable () const override |
| Returns whether object is serializable of not. More... | |
| bool | toFile (QFile &out, short dataVersion) const override |
| Saves data to binary stream. More... | |
| short | minimumFileVersion () const override |
| Returns the minimum file version required to save this instance. More... | |
| bool | fromFile (QFile &in, short dataVersion, int flags, LoadedIDMap &oldToNewIDMap) override |
| Loads data from binary stream. More... | |
| void | setPivotPoint (const CCVector3d &P, bool autoUpdateFocal=true) |
| Sets the pivot point (for object-centered view mode) More... | |
| const CCVector3d & | getPivotPoint () const |
| Returns the pivot point (for object-centered view mode) More... | |
| void | setCameraCenter (const CCVector3d &C, bool autoUpdateFocal=true) |
| Sets the camera center. More... | |
| const CCVector3d & | getCameraCenter () const |
| Returns the camera center. More... | |
| void | setFocalDistance (double distance) |
| Sets the 'focal' distance. More... | |
| double | getFocalDistance () const |
| Computes the 'focal' distance. More... | |
| ccGLMatrixd | computeViewMatrix () const |
| Computes the view matrix. More... | |
| ccGLMatrixd | computeScaleMatrix (const QRect &glViewport) const |
| Computes the scale matrix. More... | |
| CCVector3d | getViewDir () const |
| Returns the viewing direction. More... | |
| CCVector3d | getUpDir () const |
| Returns the up direction. More... | |
| const CCVector3d & | getRotationCenter () const |
| Returns the view rotation 'center'. More... | |
| double | computeDistanceToHalfWidthRatio () const |
| Computes the ratio 'distance to half width' (based on the current FOV) More... | |
| double | computeDistanceToWidthRatio () const |
| Computes the ratio 'distance to width' (based on the current FOV) More... | |
| double | computeWidthAtFocalDist () const |
| Computes the object 'width' at the 'focal' distance. More... | |
| double | computePixelSize (int glWidth) const |
| Computes the pixel size at the 'focal' distance. More... | |
Public Member Functions inherited from ccSerializableObject | |
| virtual | ~ccSerializableObject ()=default |
| Destructor. More... | |
Static Public Member Functions | |
| static double | IncrementToZNearCoef (int i, int iMax) |
| static int | ZNearCoefToIncrement (double coef, int iMax) |
Static Public Member Functions inherited from ccSerializableObject | |
| static bool | WriteError () |
| Sends a custom error message (write error) and returns 'false'. More... | |
| static bool | ReadError () |
| Sends a custom error message (read error) and returns 'false'. More... | |
| static bool | MemoryError () |
| Sends a custom error message (not enough memory) and returns 'false'. More... | |
| static bool | CorruptError () |
| Sends a custom error message (corrupted file) and returns 'false'. More... | |
Public Attributes | |
| ccGLMatrixd | viewMat |
| Visualization matrix (rotation only) More... | |
| float | defaultPointSize |
| Point size. More... | |
| float | defaultLineWidth |
| Line width. More... | |
| float | pixelSize |
| Current pixel size (in 'current unit'/pixel) More... | |
| float | zoom |
| Current zoom. More... | |
| bool | perspectiveView |
| Perspective view state. More... | |
| bool | objectCenteredView |
| double | zNearCoef |
| Theoretical perspective 'zNear' relative position. More... | |
| double | zNear |
| Actual perspective 'zNear' value. More... | |
| double | zFar |
| Actual perspective 'zFar' value. More... | |
| CCVector3d | focal |
| CCVector3d | up |
| float | fov_deg |
| Camera F.O.V. (field of view) in degrees. More... | |
| float | cameraAspectRatio |
| Camera aspect ratio. More... | |
Protected Attributes | |
| double | focalDistance |
| Focal distance. More... | |
| CCVector3d | pivotPoint |
| Rotation pivot point (for object-centered view modes) More... | |
| CCVector3d | cameraCenter |
| Camera center. More... | |
Additional Inherited Members | |
Public Types inherited from ccSerializableObject | |
| enum | DeserializationFlags { DF_POINT_COORDS_64_BITS , DF_SCALAR_VAL_32_BITS = 2 } |
| Deserialization flags (bit-field) More... | |
| typedef QMultiMap< unsigned, unsigned > | LoadedIDMap |
| Map of loaded unique IDs (old ID --> new ID) More... | |
Standard parameters for GL displays/viewports.
Definition at line 18 of file ecvViewportParameters.h.
| ecvViewportParameters::ecvViewportParameters | ( | ) |
Default constructor.
| ecvViewportParameters::ecvViewportParameters | ( | const ecvViewportParameters & | params | ) |
Copy constructor.
| double ecvViewportParameters::computeDistanceToHalfWidthRatio | ( | ) | const |
Computes the ratio 'distance to half width' (based on the current FOV)
Half width = ratio * distance = tan(fov / 2) * distance
Referenced by define_ccViewPortParameters().
| double ecvViewportParameters::computeDistanceToWidthRatio | ( | ) | const |
Computes the ratio 'distance to width' (based on the current FOV)
Width = ratio * distance = (2 * tan(fov / 2)) * distance
Referenced by define_ccViewPortParameters().
| double ecvViewportParameters::computePixelSize | ( | int | glWidth | ) | const |
Computes the pixel size at the 'focal' distance.
Referenced by define_ccViewPortParameters().
| ccGLMatrixd ecvViewportParameters::computeScaleMatrix | ( | const QRect & | glViewport | ) | const |
Computes the scale matrix.
| ccGLMatrixd ecvViewportParameters::computeViewMatrix | ( | ) | const |
Computes the view matrix.
Referenced by define_ccViewPortParameters(), and qAnimationDlg::init().
| double ecvViewportParameters::computeWidthAtFocalDist | ( | ) | const |
Computes the object 'width' at the 'focal' distance.
Referenced by define_ccViewPortParameters().
|
overridevirtual |
Loads data from binary stream.
| in | input file (already opened) |
| dataVersion | file version (for version-specific deserialization) |
| flags | deserialization flags (see ccSerializableObject::DeserializationFlags) |
| oldToNewIDMap | map to link old IDs with new IDs |
Note: When implementing, use dataVersion checks to handle differentversions:
Reimplemented from ccSerializableObject.
|
inline |
Returns the camera center.
Definition at line 46 of file ecvViewportParameters.h.
Referenced by define_ccViewPortParameters(), cloudViewer::ViewInterpolate::interpolate(), and ViewInterpolate::interpolate().
|
inline |
Computes the 'focal' distance.
Definition at line 54 of file ecvViewportParameters.h.
Referenced by define_ccViewPortParameters(), cloudViewer::ViewInterpolate::interpolate(), and ViewInterpolate::interpolate().
|
inline |
Returns the pivot point (for object-centered view mode)
Definition at line 39 of file ecvViewportParameters.h.
Referenced by define_ccViewPortParameters(), cloudViewer::ViewInterpolate::interpolate(), and ViewInterpolate::interpolate().
| const CCVector3d& ecvViewportParameters::getRotationCenter | ( | ) | const |
Returns the view rotation 'center'.
The rotation center is defined as:
Referenced by define_ccViewPortParameters().
| CCVector3d ecvViewportParameters::getUpDir | ( | ) | const |
Returns the up direction.
This is the vertical direction of the screen (pointing 'upward') in the world coordinate system.
Referenced by define_ccViewPortParameters().
| CCVector3d ecvViewportParameters::getViewDir | ( | ) | const |
Returns the viewing direction.
This is the direction normal to the screen (pointing 'forward') in the world coordinate system.
Referenced by define_ccViewPortParameters().
|
static |
Helper: converts an integer (increment) in [0 iMax] to a double (zNear) value in [0.001 1]
|
inlineoverridevirtual |
Returns whether object is serializable of not.
Reimplemented from ccSerializableObject.
Definition at line 27 of file ecvViewportParameters.h.
|
overridevirtual |
Returns the minimum file version required to save this instance.
To be overridden by subclasses to indicate their minimum required version. This enables the system to determine:
Implements ccSerializableObject.
| void ecvViewportParameters::setCameraCenter | ( | const CCVector3d & | C, |
| bool | autoUpdateFocal = true |
||
| ) |
Sets the camera center.
Referenced by define_ccViewPortParameters(), cloudViewer::ViewInterpolate::interpolate(), and ViewInterpolate::interpolate().
| void ecvViewportParameters::setFocalDistance | ( | double | distance | ) |
Sets the 'focal' distance.
Referenced by define_ccViewPortParameters(), cloudViewer::ViewInterpolate::interpolate(), and ViewInterpolate::interpolate().
| void ecvViewportParameters::setPivotPoint | ( | const CCVector3d & | P, |
| bool | autoUpdateFocal = true |
||
| ) |
Sets the pivot point (for object-centered view mode)
Referenced by define_ccViewPortParameters(), cloudViewer::ViewInterpolate::interpolate(), and ViewInterpolate::interpolate().
|
overridevirtual |
Saves data to binary stream.
| out | output file (already opened) |
| dataVersion | target file version (for forward/backward compatibility) |
Reimplemented from ccSerializableObject.
|
static |
Helper: converts a double (zNear) value in ]0 1] to integer increments in [0 iMax]
| float ecvViewportParameters::cameraAspectRatio |
Camera aspect ratio.
Definition at line 146 of file ecvViewportParameters.h.
Referenced by define_ccViewPortParameters(), cloudViewer::ViewInterpolate::interpolate(), and ViewInterpolate::interpolate().
|
protected |
Camera center.
Definition at line 156 of file ecvViewportParameters.h.
| float ecvViewportParameters::defaultLineWidth |
Line width.
Definition at line 112 of file ecvViewportParameters.h.
Referenced by define_ccViewPortParameters(), cloudViewer::ViewInterpolate::interpolate(), and ViewInterpolate::interpolate().
| float ecvViewportParameters::defaultPointSize |
Point size.
Definition at line 110 of file ecvViewportParameters.h.
Referenced by define_ccViewPortParameters(), cloudViewer::ViewInterpolate::interpolate(), and ViewInterpolate::interpolate().
| CCVector3d ecvViewportParameters::focal |
Definition at line 139 of file ecvViewportParameters.h.
|
protected |
Focal distance.
Definition at line 150 of file ecvViewportParameters.h.
| float ecvViewportParameters::fov_deg |
Camera F.O.V. (field of view) in degrees.
Definition at line 144 of file ecvViewportParameters.h.
Referenced by define_ccViewPortParameters(), cloudViewer::ViewInterpolate::interpolate(), and ViewInterpolate::interpolate().
| bool ecvViewportParameters::objectCenteredView |
Whether view is centered on displayed scene (true) or on the user eye (false) Always true for ortho. mode.
Definition at line 130 of file ecvViewportParameters.h.
Referenced by define_ccViewPortParameters().
| bool ecvViewportParameters::perspectiveView |
Perspective view state.
Definition at line 125 of file ecvViewportParameters.h.
Referenced by define_ccViewPortParameters(), ccPointPair::drawMeOnly(), and ccTrace::drawMeOnly().
|
protected |
Rotation pivot point (for object-centered view modes)
Definition at line 153 of file ecvViewportParameters.h.
| float ecvViewportParameters::pixelSize |
Current pixel size (in 'current unit'/pixel)
This scale is valid eveywhere in ortho. mode or at the focal distance in perspective mode. Warning: doesn't take current zoom into account!
Definition at line 119 of file ecvViewportParameters.h.
| CCVector3d ecvViewportParameters::up |
Definition at line 141 of file ecvViewportParameters.h.
| ccGLMatrixd ecvViewportParameters::viewMat |
Visualization matrix (rotation only)
Definition at line 107 of file ecvViewportParameters.h.
Referenced by define_ccViewPortParameters(), cloudViewer::ViewInterpolate::interpolate(), and ViewInterpolate::interpolate().
| double ecvViewportParameters::zFar |
Actual perspective 'zFar' value.
Definition at line 137 of file ecvViewportParameters.h.
Referenced by define_ccViewPortParameters(), ccPointPair::drawMeOnly(), ccTrace::drawMeOnly(), cloudViewer::ViewInterpolate::interpolate(), and ViewInterpolate::interpolate().
| double ecvViewportParameters::zNear |
Actual perspective 'zNear' value.
Definition at line 135 of file ecvViewportParameters.h.
Referenced by define_ccViewPortParameters(), cloudViewer::ViewInterpolate::interpolate(), and ViewInterpolate::interpolate().
| double ecvViewportParameters::zNearCoef |
Theoretical perspective 'zNear' relative position.
Definition at line 133 of file ecvViewportParameters.h.
Referenced by define_ccViewPortParameters(), cloudViewer::ViewInterpolate::interpolate(), and ViewInterpolate::interpolate().
| float ecvViewportParameters::zoom |
Current zoom.
Definition at line 122 of file ecvViewportParameters.h.