Browse Source

SceneGraph: no need to have virtual destructor in AbstractCamera.

Protected constructor and destructor is sufficient, AbstractCamera
itself isn't meant to be deleted (via pointer).
pull/278/head
Vladimír Vondruš 13 years ago
parent
commit
b7ff40554c
  1. 16
      src/SceneGraph/AbstractCamera.h
  2. 2
      src/SceneGraph/AbstractCamera.hpp

16
src/SceneGraph/AbstractCamera.h

@ -76,14 +76,6 @@ relevant sections in
*/
template<UnsignedInt dimensions, class T> class MAGNUM_SCENEGRAPH_EXPORT AbstractCamera: public AbstractFeature<dimensions, T> {
public:
/**
* @brief Constructor
* @param object Object holding the camera
*/
explicit AbstractCamera(AbstractObject<dimensions, T>* object);
virtual ~AbstractCamera() = 0;
/** @brief Aspect ratio policy */
AspectRatioPolicy aspectRatioPolicy() const { return _aspectRatioPolicy; }
@ -143,6 +135,14 @@ template<UnsignedInt dimensions, class T> class MAGNUM_SCENEGRAPH_EXPORT Abstrac
virtual void draw(DrawableGroup<dimensions, T>& group);
protected:
/**
* @brief Constructor
* @param object Object holding the camera
*/
explicit AbstractCamera(AbstractObject<dimensions, T>* object);
~AbstractCamera();
/** Recalculates camera matrix */
void cleanInverted(const typename DimensionTraits<dimensions, T>::MatrixType& invertedAbsoluteTransformationMatrix) override {
_cameraMatrix = invertedAbsoluteTransformationMatrix;

2
src/SceneGraph/AbstractCamera.hpp

@ -72,7 +72,7 @@ template<UnsignedInt dimensions, class T> AbstractCamera<dimensions, T>::Abstrac
AbstractFeature<dimensions, T>::setCachedTransformations(CachedTransformation::InvertedAbsolute);
}
template<UnsignedInt dimensions, class T> AbstractCamera<dimensions, T>::~AbstractCamera() {}
template<UnsignedInt dimensions, class T> AbstractCamera<dimensions, T>::~AbstractCamera() = default;
template<UnsignedInt dimensions, class T> AbstractCamera<dimensions, T>* AbstractCamera<dimensions, T>::setAspectRatioPolicy(AspectRatioPolicy policy) {
_aspectRatioPolicy = policy;

Loading…
Cancel
Save