cgv
Loading...
Searching...
No Matches
trigger.h
1#pragma once
2
3#include <cgv/base/base.h>
4#include <cgv/base/register.h>
5#include <cgv/signal/signal.h>
6
7#include <cgv/gui/lib_begin.h>
8
9namespace cgv {
10 namespace gui {
11
13class CGV_API trigger
14{
15protected:
16 double delay;
17 bool recur;
18public:
20 trigger();
22 bool is_scheduled() const;
24 bool schedule_one_shot(double delay);
26 bool schedule_recuring(double delay);
28 double get_delay() const;
30 bool is_recuring() const;
32 void stop();
34 static double get_current_time();
36 signal::signal<double,double> shoot;
37};
38
40extern CGV_API trigger& get_animation_trigger();
41
42class CGV_API trigger_server : public cgv::base::base, public cgv::base::server
43{
44public:
45 virtual bool is_scheduled(const trigger*) = 0;
46 virtual bool schedule_one_shot(trigger*, double delay) = 0;
47 virtual bool schedule_recuring(trigger*, double delay) = 0;
48 virtual bool stop(trigger*) = 0;
49 virtual double get_current_time() const = 0;
50};
51
54
55#if _MSC_VER >= 1400
56CGV_TEMPLATE template class CGV_API data::ref_ptr<trigger_server>;
57#endif
58
63
64 }
65}
66
67#include <cgv/config/lib_end.h>
base class for all classes that can be registered with support for dynamic properties (see also secti...
Definition base.h:75
reference counted pointer, which can work together with types that are derived from ref_counted,...
Definition ref_ptr.h:160
a trigger provides callbacks after a programmable time delay
Definition trigger.h:14
signal::signal< double, double > shoot
the shoot signal is called when the trigger is pulled and takes the current time and delay as argumen...
Definition trigger.h:36
data::ref_ptr< trigger_server > trigger_server_ptr
ref counted pointer to trigger server
Definition trigger.h:53
trigger_server_ptr get_trigger_server()
returns the currently registered trigger server
Definition trigger.cxx:100
void register_trigger_server(trigger_server_ptr _ts)
registeres a new trigger server, call this in the on_register method of the server implementation
Definition trigger.cxx:105
trigger & get_animation_trigger()
return the global trigger used for animation, which runs by default with 60 Hz
Definition trigger.cxx:81
the cgv namespace
Definition print.h:11
interfaces that add provides very basic functionality.
Definition register.h:203