Graphite  Version 3
An experimental 3D geometry processing program
translation.h
Go to the documentation of this file.
1 /*
2  * OGF/Graphite: Geometry and Graphics Programming Library + Utilities
3  * Copyright (C) 2000 Bruno Levy
4  *
5  * This program is free software; you can redistribute it and/or modify
6  * it under the terms of the GNU General Public License as published by
7  * the Free Software Foundation; either version 2 of the License, or
8  * (at your option) any later version.
9  *
10  * This program is distributed in the hope that it will be useful,
11  * but WITHOUT ANY WARRANTY; without even the implied warranty of
12  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13  * GNU General Public License for more details.
14  *
15  * You should have received a copy of the GNU General Public License
16  * along with this program; if not, write to the Free Software
17  * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
18  *
19  * If you modify this software, you should include a notice giving the
20  * name of the person performing the modification, the date of modification,
21  * and the reason for such modification.
22  *
23  * Contact: Bruno Levy
24  *
25  * levy@loria.fr
26  *
27  * ISA Project
28  * LORIA, INRIA Lorraine,
29  * Campus Scientifique, BP 239
30  * 54506 VANDOEUVRE LES NANCY CEDEX
31  * FRANCE
32  *
33  * Note that the GNU General Public License does not permit incorporating
34  * the Software into proprietary programs.
35  */
36 
37 
38 #ifndef H_OGF_SCENE_GRAPH_GFX_TRANSFORMS_TRANSLATION_H
39 #define H_OGF_SCENE_GRAPH_GFX_TRANSFORMS_TRANSLATION_H
40 
41 #include <OGF/scene_graph_gfx/common/common.h>
42 #include <OGF/gom/types/node.h>
43 #include <geogram/basic/geometry.h>
44 
50 namespace OGF {
51 
52 //_________________________________________________________
53 
57  gom_class SCENE_GRAPH_GFX_API Translation : public Object {
58  public:
59 
64 
68  ~Translation() override;
69 
70  gom_slots:
76  void grab(const vec2& value) ;
77 
83  void drag(const vec2& value) ;
84 
90  void release(const vec2& value) ;
91 
92  gom_signals:
97  void value_changed(const vec3& value) ;
98 
99  private:
100  vec2 last_position_ ;
101  } ;
102 
103 //_________________________________________________________
104 
105 }
106 #endif
Base class for all objects in the GOM system.
Definition: object.h:65
Enables to interactively define a 2d translation.
Definition: translation.h:57
void release(const vec2 &value)
Callback called when the mouse button is released.
void drag(const vec2 &value)
Callback called when the mouse is moved.
~Translation() override
Translation destructor.
Translation()
Translation constructor.
Geometric functions in 2d and 3d.
Global Graphite namespace.
Definition: common.h:76
The base class for all composite objects in the GOM system.