#pragma once
-#include <vector>
-#include <string>
#include "common/BaseObject.hxx"
#include "Vector.hxx"
#include "Ray.hxx"
// --- constructors and deconstructors ---
Object()
- : BaseObject<Object<MT>>(), _name("unknown"), _visible(true), _origin(0, 0, 0), _up(0, 1, 0)
+ : BaseObject<Object<MT>>(), _name("unknown"), _visible(true), _origin(0.0, 0.0, 0.0), _up(0.0, 1.0, 0.0)
{
}
if (this != &rhs)
{
BaseObject<Object<MT>>::operator=(rhs);
+
_name = rhs._name;
_visible = rhs._visible;
_origin = rhs._origin;
if (this != &rhs)
{
BaseObject<Object<MT>>::operator=(rhs);
+
_name = std::move(rhs._name);
_visible = std::move(rhs._visible);
_origin = std::move(rhs._origin);
// --- public methods ---
- virtual void setName(const std::string& name)
+ virtual MT intersect(const Ray<MT>& /*ray*/) const
{
- _name = name;
+ return -1.0;
}
virtual std::string name() const
return _name;
}
- virtual void setVisible(const bool visible)
+ virtual Vector3<MT> origin() const
{
- _visible = visible;
+ return _origin;
}
- virtual bool visible() const
+ virtual void setName(const std::string& name)
{
- return _visible;
+ _name = name;
}
virtual void setOrigin(const Vector3<MT>& o)
_origin = o;
}
- virtual Vector3<MT> origin() const
- {
- return _origin;
- }
-
virtual void setUp(const Vector3<MT>& up)
{
_up = up;
}
- virtual Vector3<MT> up() const
+ virtual void setVisible(const bool visible)
{
- return _up;
+ _visible = visible;
}
virtual ObjectType type() const
return ObjectType::None;
}
- virtual Ray<MT> intersect(const std::vector<Object<MT> *>& /*objects*/, const Ray<MT>& /*ray*/) const
+ virtual Vector3<MT> up() const
{
- return Ray<MT>();
+ return _up;
+ }
+
+ virtual bool visible() const
+ {
+ return _visible;
}
protected: