Graphite  Version 3
An experimental 3D geometry processing program
lua_grob_commands.h
Go to the documentation of this file.
1 /*
2  * OGF/Graphite: Geometry and Graphics Programming Library + Utilities
3  * Copyright (C) 2000-2009 INRIA - Project ALICE
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 - levy@loria.fr
24  *
25  * Project ALICE
26  * LORIA, INRIA Lorraine,
27  * Campus Scientifique, BP 239
28  * 54506 VANDOEUVRE LES NANCY CEDEX
29  * FRANCE
30  *
31  * Note that the GNU General Public License does not permit incorporating
32  * the Software into proprietary programs.
33  *
34  * As an exception to the GPL, Graphite can be linked
35  * with the following (non-GPL) libraries:
36  * Qt, SuperLU, WildMagic and CGAL
37  */
38 
39 
40 #ifndef H_OGF_LUAGROB_COMMANDS_LUAGROB_COMMANDS_H
41 #define H_OGF_LUAGROB_COMMANDS_LUAGROB_COMMANDS_H
42 
46 
51 namespace OGF {
52 
56  gom_attribute(abstract,"true")
57  gom_class LUAGROB_API LuaGrobCommands : public Commands {
58  public:
59 
64 
68  virtual ~LuaGrobCommands();
69 
75  LuaGrob* lua_grob() const {
76  return dynamic_cast<LuaGrob*>(grob());
77  }
78  };
79 
84  class LuaFile {
85  };
86 
91 
96 
100  gom_class LUAGROB_API LuaGrobProgramCommands: public LuaGrobCommands {
101  public:
106 
111 
112  gom_slots:
113  void run();
114  void set_autorun(bool autorun);
115  void load_program(const LuaFileName& file_name);
116  void save_program(const NewLuaFileName& file_name);
117  void clear();
118  };
119 
123  gom_class LUAGROB_API LuaGrobShaderCommands: public LuaGrobCommands {
124  public:
129 
134 
135  gom_slots:
136  void load_shader(const LuaFileName& file_name);
137  void save_shader(const NewLuaFileName& file_name);
138  void clear();
139  };
140 }
141 #endif
142 
Represents a set of commands.
Definition: commands.h:155
Just a place-holder to define a type for LUA file names.
Base class for Commands related with a LuaGrob object.
LuaGrob * lua_grob() const
Gets the LuaGrob.
virtual ~LuaGrobCommands()
LuaGrobCommands destructor.
LuaGrobCommands()
LuaGrobCommands constructor.
Commands to load and save the LUA program in a LuaGrob.
LuaGrobProgramCommands()
LuaGrobProgramCommands constructor.
virtual ~LuaGrobProgramCommands()
LuaGrobShaderCommands destructor.
Commands to load and save the LUA shader program in a LuaGrob.
virtual ~LuaGrobShaderCommands()
LuaGrobShaderCommands destructor.
LuaGrobShaderCommands()
LuaGrobShaderCommands constructor.
A Grob class for luagrob grids.
Definition: lua_grob.h:63
A template class for strings that need to have a specific type in the GOM system.
Definition: properties.h:218
class that gathers commands with menu and dialogs.
the LuaGrob class.
void clear(void *addr, size_t size)
Clears a memory block.
Definition: memory.h:116
Global Graphite namespace.
Definition: common.h:76
Name< LuaFile, true > NewLuaFileName
The name of an existing or not LUA (.lua) file.
Name< LuaFile > LuaFileName
The name of an existing LUA (.lua) file.
Definitions common to all include files in the luagrob library.