summaryrefslogtreecommitdiffstats
path: root/libdimensionxx/dimensionxx/camera.hpp
diff options
context:
space:
mode:
authorTavian Barnes <tavianator@gmail.com>2009-10-04 19:04:59 +0000
committerTavian Barnes <tavianator@gmail.com>2009-10-04 19:04:59 +0000
commitc35d5af1c2845ad072525e69f3f7be01994bcc2f (patch)
treec4bc69e26814cc32332340faf29a3e09a6bd1eb5 /libdimensionxx/dimensionxx/camera.hpp
parentf8bd4dda645fda617bf37e180d35e4ef82c88e40 (diff)
downloaddimension-c35d5af1c2845ad072525e69f3f7be01994bcc2f.tar.xz
Purge test suite and C++ wrapper - for now.
Diffstat (limited to 'libdimensionxx/dimensionxx/camera.hpp')
-rw-r--r--libdimensionxx/dimensionxx/camera.hpp96
1 files changed, 0 insertions, 96 deletions
diff --git a/libdimensionxx/dimensionxx/camera.hpp b/libdimensionxx/dimensionxx/camera.hpp
deleted file mode 100644
index 81952d1..0000000
--- a/libdimensionxx/dimensionxx/camera.hpp
+++ /dev/null
@@ -1,96 +0,0 @@
-/*************************************************************************
- * Copyright (C) 2009 Tavian Barnes <tavianator@gmail.com> *
- * *
- * This file is part of The Dimension Library. *
- * *
- * The Dimension Library is free software; you can redistribute it and/ *
- * or modify it under the terms of the GNU Lesser General Public License *
- * as published by the Free Software Foundation; either version 3 of the *
- * License, or (at your option) any later version. *
- * *
- * The Dimension Library is distributed in the hope that it will be *
- * useful, but WITHOUT ANY WARRANTY; without even the implied warranty *
- * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU *
- * Lesser General Public License for more details. *
- * *
- * You should have received a copy of the GNU Lesser General Public *
- * License along with this program. If not, see *
- * <http://www.gnu.org/licenses/>. *
- *************************************************************************/
-
-// dmnsn_camera* wrapper.
-
-#ifndef DIMENSIONXX_CAMERA_HPP
-#define DIMENSIONXX_CAMERA_HPP
-
-namespace Dimension
-{
- // Abstract base camera class. Wraps a dmnsn_camera*.
- class Camera
- {
- public:
- // Delete the camera
- virtual ~Camera();
-
- // Camera callback
- virtual Line ray(double x, double y);
-
- // Shallow-copy a derived camera
- virtual Camera* copy() const = 0;
-
- // Access the wrapped C camera.
- dmnsn_camera* dmnsn();
- const dmnsn_camera* dmnsn() const;
-
- protected:
- // No-op
- Camera();
- // Shallow-copy
- Camera(const Camera& camera);
- // Wrap an existing camera
- explicit Camera(dmnsn_camera* camera);
-
- // Is m_camera unique?
- bool unique() const;
-
- // Set the wrapped C camera
- void dmnsn(dmnsn_camera* camera);
-
- private:
- // Copy-assignment prohibited
- Camera& operator=(const Camera&);
-
- std::tr1::shared_ptr<dmnsn_camera*> m_camera;
- };
-
- // A custom camera abstract base class, for creating your own camera types
- class Custom_Camera : public Camera
- {
- public:
- Custom_Camera();
- virtual ~Custom_Camera();
-
- virtual Line ray(double x, double y) = 0;
- };
-
- // Array_Element specialization
- template <>
- class Array_Element<Camera>
- : public Polymorphic_Array_Element<Camera, dmnsn_camera*>
- {
- public:
- typedef dmnsn_camera* C_Type;
-
- Array_Element() { }
- Array_Element(Camera& camera)
- : Polymorphic_Array_Element<Camera, dmnsn_camera*>(camera) { }
- Array_Element(C_Type c)
- : Polymorphic_Array_Element<Camera, dmnsn_camera*>(c) { }
- // Array_Element(const Array_Element& ae);
- // ~Array_Element();
-
- // Array_Element& operator=(const Array_Element& ae);
- };
-}
-
-#endif /* DIMENSIONXX_CAMERA_HPP */