cgv
Loading...
Searching...
No Matches
navigator.h
1
#pragma once
2
3
#include <cgv/gui/event_handler.h>
4
#include <cgv/gui/provider.h>
5
#include <cgv/render/drawable.h>
6
#include <cgv/render/managed_frame_buffer.h>
7
#include <cgv_gl/rectangle_renderer.h>
8
#include <cgv_gl/arrow_render_data.h>
9
#include <cgv_gl/box_render_data.h>
10
#include <cgv_gl/box_wire_render_data.h>
11
#include <cgv_gl/rectangle_render_data.h>
12
#include <cgv_gl/sphere_render_data.h>
13
#include <cgv_app/overlay.h>
14
#include <cgv_g2d/canvas.h>
15
#include <cgv_g2d/shape2d_styles.h>
16
17
#include "lib_begin.h"
18
19
namespace
cgv
{
20
namespace
app {
21
22
class
CGV_API
navigator
:
public
overlay
{
23
protected
:
24
cgv::render::view
* view_ptr;
25
vec3
navigator_eye_pos;
26
27
double
check_for_click;
28
29
cgv::render::managed_frame_buffer
fbc;
30
31
cgv::g2d::canvas blit_canvas;
32
cgv::g2d::shape2d_style blit_style;
33
34
int
layout_size;
35
bool
show_box;
36
bool
show_wireframe;
37
bool
use_perspective;
38
int
hit_axis;
39
40
cgv::render::arrow_render_data<>
arrow_data;
41
42
cgv::render::box_renderer
box_renderer;
43
cgv::render::box_render_data<>
box_data;
44
45
cgv::render::box_wire_render_data<>
box_wire_data;
46
cgv::render::rectangle_render_data<>
rectangle_data;
47
cgv::render::sphere_render_data<>
sphere_data;
48
49
mat4
get_model_matrix(
cgv::render::context
& ctx);
50
mat4
get_view_matrix(
cgv::render::context
& ctx);
51
mat4
get_projection_matrix();
52
bool
intersect_box(
const
vec3
&origin,
const
vec3
& direction,
float
& t)
const
;
53
54
virtual
void
create_gui_impl();
55
56
public
:
57
navigator
();
58
std::string
get_type_name
()
const
{
return
"navigator"
; }
59
60
void
clear(
cgv::render::context
& ctx);
61
62
bool
self_reflect(
cgv::reflect::reflection_handler
& _rh);
63
void
stream_help
(std::ostream& os) {}
64
65
bool
handle_mouse_event(
cgv::gui::mouse_event
& e,
cgv::ivec2
local_mouse_pos);
66
void
on_set(
void
* member_ptr);
67
68
bool
init(
cgv::render::context
& ctx);
69
void
init_frame(
cgv::render::context
& ctx);
70
void
finish_draw(
cgv::render::context
& ctx);
71
72
void
set_size(
int
size);
73
};
74
75
typedef
cgv::data::ref_ptr<navigator>
navigator_ptr;
76
77
}
78
}
79
80
#include <cgv/config/lib_end.h>
cgv::app::navigator
Definition
navigator.h:22
cgv::app::navigator::stream_help
void stream_help(std::ostream &os)
overload to stream help information to the given output stream
Definition
navigator.h:63
cgv::app::navigator::get_type_name
std::string get_type_name() const
overload to return the type name of this object. By default the type interface is queried over get_ty...
Definition
navigator.h:58
cgv::app::overlay
Definition
overlay.h:25
cgv::data::ref_ptr
reference counted pointer, which can work together with types that are derived from ref_counted,...
Definition
ref_ptr.h:160
cgv::gui::mouse_event
class to represent all possible mouse events with the EID_MOUSE
Definition
mouse_event.h:33
cgv::math::fmat< float, 4, 4 >
cgv::math::fvec< float, 3 >
cgv::reflect::reflection_handler
the self reflection handler is passed to the virtual self_reflect() method of cgv::base::base.
Definition
reflection_handler.h:63
cgv::render::arrow_render_data
Definition
arrow_render_data.h:10
cgv::render::box_render_data
Render data for box geometry with support for the box_renderer.
Definition
box_render_data.h:12
cgv::render::box_renderer
renderer that supports point splatting
Definition
box_renderer.h:34
cgv::render::box_wire_render_data
Render data for box geometry with support for the box_wire_renderer.
Definition
box_wire_render_data.h:12
cgv::render::context
base class for all drawables, which is independent of the used rendering API.
Definition
context.h:621
cgv::render::managed_frame_buffer
provides a class that manages a frame buffer along with its attachments
Definition
managed_frame_buffer.h:14
cgv::render::rectangle_render_data
Render data for rectangle geometry with support for the rectangle_renderer.
Definition
rectangle_render_data.h:12
cgv::render::sphere_render_data
Render data for sphere geometry with support for the sphere_renderer.
Definition
sphere_render_data.h:12
cgv::render::view
defines a symmetric view with the following quantities:
Definition
view.h:22
cgv
the cgv namespace
Definition
print.h:11
libs
cgv_app
navigator.h
Generated by
1.9.8