/** This class is to be derived to make any operation (transform) you may need in order to construct your transitions
*/ class Operation
{ public: virtual ~Operation(){}
Operation(const Operation&) = delete;
Operation& operator=(const Operation&) = delete;
protected: /** Should this operation be interpolated . If TRUE, the transform will smoothly move from making no difference from t = 0.0 to mnT0 to being completely transformed from t = mnT1 to 1. If FALSE, the transform will be ineffectual from t = 0 to mnT0, and completely transformed from t = mnT0 to 1.
*/ bool mbInterpolate;
/** time to begin the transformation
*/ double mnT0;
/** time to finish the transformation
*/ double mnT1; public: /** this is the function that is called to give the Operation to OpenGL.
/** this class is a generic CounterClockWise(CCW) rotation with an axis angle
*/ class SRotate: public Operation
{ public: virtualvoid interpolate(glm::mat4& matrix, double t, double SlideWidthScale, doubleSlideHeightScale) const override;
/** Same as SRotate, except the depth is scaled by the width of the slide divided by the width of the window.
*/ class RotateAndScaleDepthByWidth: public Operation
{ public: virtualvoid interpolate(glm::mat4& matrix, double t, double SlideWidthScale, doubleSlideHeightScale) const override;
/** Same as SRotate, except the depth is scaled by the width of the slide divided by the height of the window.
*/ class RotateAndScaleDepthByHeight: public Operation
{ public: virtualvoid interpolate(glm::mat4& matrix, double t, double SlideWidthScale, doubleSlideHeightScale) const override;
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.