float clip_far;
float frustum_x;
float frustum_y;
+ Geometry::Angle<float> rotate;
Vector3 position;
Vector3 look_dir;
Vector3 up_dir;
void set_aspect(float);
void set_depth_clip(float, float);
void set_frustum_axis(float, float);
+ void set_frustum_rotation(const Geometry::Angle<float> &);
const Geometry::Angle<float> &get_field_of_view() const { return fov; }
+ bool is_orthographic() const { return fov==Geometry::Angle<float>::zero(); }
+ float get_orthographic_width() const { return height*aspect; }
+ float get_orthographic_height() const { return height; }
float get_aspect() const { return aspect; }
float get_near_clip() const { return clip_near; }
float get_far_clip() const { return clip_far; }
+ const Geometry::Angle<float> &get_frustum_rotation() const { return rotate; }
void set_position(const Vector3 &);
void set_look_direction(const Vector3 &);
Vector3 project(const Vector4 &) const;
Vector3 project(const Vector3 &) const;
Vector4 unproject(const Vector4 &) const;
+ Vector3 unproject(const Vector3 &) const;
void apply() const;