51 lines
890 B
C++
51 lines
890 B
C++
|
#ifndef slic3r_Camera_hpp_
|
||
|
#define slic3r_Camera_hpp_
|
||
|
|
||
|
#include "libslic3r/BoundingBox.hpp"
|
||
|
|
||
|
namespace Slic3r {
|
||
|
namespace GUI {
|
||
|
|
||
|
struct Camera
|
||
|
{
|
||
|
enum EType : unsigned char
|
||
|
{
|
||
|
Unknown,
|
||
|
// Perspective,
|
||
|
Ortho,
|
||
|
Num_types
|
||
|
};
|
||
|
|
||
|
EType type;
|
||
|
float zoom;
|
||
|
float phi;
|
||
|
// float distance;
|
||
|
bool requires_zoom_to_bed;
|
||
|
|
||
|
private:
|
||
|
Vec3d m_target;
|
||
|
float m_theta;
|
||
|
|
||
|
BoundingBoxf3 m_scene_box;
|
||
|
|
||
|
public:
|
||
|
Camera();
|
||
|
|
||
|
std::string get_type_as_string() const;
|
||
|
|
||
|
const Vec3d& get_target() const { return m_target; }
|
||
|
void set_target(const Vec3d& target);
|
||
|
|
||
|
float get_theta() const { return m_theta; }
|
||
|
void set_theta(float theta, bool apply_limit);
|
||
|
|
||
|
const BoundingBoxf3& get_scene_box() const { return m_scene_box; }
|
||
|
void set_scene_box(const BoundingBoxf3& box);
|
||
|
};
|
||
|
|
||
|
} // GUI
|
||
|
} // Slic3r
|
||
|
|
||
|
#endif // slic3r_Camera_hpp_
|
||
|
|