flak 0.0.4 → 0.0.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/.gitignore +1 -0
- data/.yardoc/checksums +28 -0
- data/.yardoc/objects/root.dat +0 -0
- data/.yardoc/proxy_types +0 -0
- data/.yardopts +1 -0
- data/Architecture.md +152 -0
- data/Documenting.md +2 -0
- data/MayaModules.md +2 -0
- data/README.md +173 -0
- data/flak.gemspec +6 -3
- data/lib/core_ext/hash.rb +82 -0
- data/lib/core_ext/string.rb +41 -0
- data/lib/flak.rb +20 -12
- data/lib/flak/rake/errors.rb +28 -0
- data/lib/flak/rake/file_actions.rb +70 -0
- data/lib/flak/rake/os.rb +18 -0
- data/lib/flak/rake/target.rb +47 -69
- data/lib/flak/rake/templates/cpp.rb +211 -0
- data/lib/flak/rake/templates/delight.rb +168 -0
- data/lib/flak/rake/templates/doc.rb +106 -0
- data/lib/flak/rake/templates/environment.rb +189 -0
- data/lib/flak/rake/templates/gl.rb +20 -0
- data/lib/flak/rake/templates/mac.rb +29 -0
- data/lib/flak/rake/templates/max.rb +22 -0
- data/lib/flak/rake/templates/maya.rb +172 -0
- data/lib/flak/rake/templates/maya_app.rb +97 -0
- data/lib/flak/rake/templates/maya_plugin.rb +93 -0
- data/lib/flak/rake/templates/merge_engine.rb +45 -0
- data/lib/flak/rake/templates/nuke.rb +60 -0
- data/lib/flak/rake/templates/release.rb +101 -0
- data/lib/flak/rake/templates/shell.rb +54 -0
- data/lib/flak/thor/cli.rb +5 -0
- data/lib/flak/thor/generate.rb +88 -144
- data/lib/flak/thor/target_file.rb +36 -17
- data/lib/flak/thor/templates/INSTALL.tt +3 -3
- data/lib/flak/thor/templates/Rakefile.tt +4 -2
- data/lib/flak/thor/templates/{cpp.tt → config/cpp.yml.tt} +6 -8
- data/lib/flak/thor/templates/{delight.tt → config/delight.yml.tt} +1 -1
- data/lib/flak/thor/templates/{doc.tt → config/doc.yml.tt} +0 -0
- data/lib/flak/thor/templates/{env.tt → config/environment.yml.tt} +6 -7
- data/lib/flak/thor/templates/{gl.tt → config/gl.yml.tt} +0 -0
- data/lib/flak/thor/templates/{mac.tt → config/mac.yml.tt} +0 -0
- data/lib/flak/thor/templates/{max.tt → config/max.yml.tt} +0 -0
- data/lib/flak/thor/templates/{maya.tt → config/maya.yml.tt} +9 -1
- data/lib/flak/thor/templates/{maya_app.tt → config/maya_app.yml.tt} +0 -2
- data/lib/flak/thor/templates/{maya_plugin.tt → config/maya_plugin.yml.tt} +0 -2
- data/lib/flak/thor/templates/config/nuke.yml.tt +3 -0
- data/lib/flak/thor/templates/config/release.yml.tt +3 -0
- data/lib/flak/thor/templates/config/shell.yml.tt +1 -0
- data/lib/flak/thor/templates/doc/content/install_guide.txt.tt +71 -25
- data/lib/flak/thor/templates/maya_plugin_cpp.tt +37 -0
- data/lib/flak/thor/templates/name_cpp.tt +6 -0
- data/lib/flak/thor/templates/name_h.tt +34 -0
- data/lib/flak/thor/templates/product.sh.tt +2 -2
- data/lib/flak/thor/wizard.rb +28 -15
- data/lib/flak/version.rb +1 -1
- data/target.jpg +0 -0
- metadata +127 -94
- data/README.textile +0 -59
- data/lib/flak/rake/base.rb +0 -316
- data/lib/flak/rake/cpp.rb +0 -139
- data/lib/flak/rake/delight.rb +0 -121
- data/lib/flak/rake/doc.rb +0 -69
- data/lib/flak/rake/gl.rb +0 -10
- data/lib/flak/rake/mac.rb +0 -23
- data/lib/flak/rake/max.rb +0 -29
- data/lib/flak/rake/maya.rb +0 -142
- data/lib/flak/rake/maya_app.rb +0 -45
- data/lib/flak/rake/maya_plugin.rb +0 -47
- data/lib/flak/rake/mod.rb +0 -46
- data/lib/flak/rake/nuke.rb +0 -29
- data/lib/flak/thor/templates/mod.tt +0 -0
- data/lib/flak/thor/templates/nuke.tt +0 -2
@@ -13,20 +13,33 @@
|
|
13
13
|
|
14
14
|
module Flak
|
15
15
|
module TargetFile
|
16
|
+
|
16
17
|
|
18
|
+
# Generate a tool.yml target file according to options given by the user, usually through a wizard.
|
19
|
+
# @param name [String] name of the tool.
|
20
|
+
# @param options [Hash] the options.
|
21
|
+
# @option options :maya_plugin_target [true, false] Whether this tool will be the target for a Maya plugin.
|
22
|
+
# @option options :maya_app_target [true, false] Whether this tool will be the target for a Maya standalone application.
|
23
|
+
# @option options :delight_target [true, false] Whether this tool will be the target for a 3delight DSO, or filter.
|
24
|
+
# @option options :standalone_target [true, false] Whether this tool will be the target for a standalone application.
|
25
|
+
# @option options :maya_scripts [true, false] Whether this tool will contain Maya MEL or Python scripts.
|
26
|
+
# @option options :nuke_scripts [true, false] Whether this tool will contain Nuke scripts or gizmos.
|
27
|
+
# @option options :shell_scripts [true, false] Whether this tool will contain shell scripts.
|
17
28
|
def self.tool(name,options={})
|
18
29
|
h = Hash.new
|
19
30
|
maya_c_compile = true if options[:maya_plugin_target] || options[:maya_app_target]
|
20
|
-
c_compile = true if (maya_c_compile
|
31
|
+
c_compile = true if (maya_c_compile || options[:standalone_target] )
|
21
32
|
|
22
|
-
h['name'] = name.camelize
|
23
33
|
|
24
|
-
h['
|
25
|
-
|
26
|
-
h['
|
27
|
-
h['
|
28
|
-
h['
|
29
|
-
h['
|
34
|
+
h['name'] = name.camelize
|
35
|
+
|
36
|
+
h['maya_script_copy_files'] = ["maya/script/**/*.mel","maya/script/**/*.py","maya/script/**/*.pyc"] if options[:maya_scripts]
|
37
|
+
h['maya_scripted_plugin_copy_files'] = ["maya/script/plugin/**/*.py","maya/script/plugin/**/*.pyc"] if options[:maya_scripts]
|
38
|
+
h['maya_node_icon_files'] = ["maya/icons/node/*"] if options[:maya_scripts]
|
39
|
+
h['maya_icon_files'] = ["maya/icons/*.jpg"] if options[:maya_scripts]
|
40
|
+
h['maya_icon_copy_files'] = ["maya/icons/*.png","maya/icons/*.xbm","maya/icons/*.xpm"] if options[:maya_scripts]
|
41
|
+
|
42
|
+
h['nuke_script_copy_files'] = ["nuke/python/*.py", "nuke/gizmo/*.gizmo", "nuke/scenes/*.nk"] if options[:nuke_scripts]
|
30
43
|
|
31
44
|
|
32
45
|
h['include_paths'] = ["../../shared/src"] if c_compile
|
@@ -34,27 +47,33 @@ module Flak
|
|
34
47
|
h['libs'] = ["OpenMayaAnim","OpenMayaUI","OpenMayaRender","OpenMayaFX"] if maya_c_compile
|
35
48
|
h['templates'] = []
|
36
49
|
h['templates'] << "cpp" if c_compile
|
37
|
-
h['templates'] << "maya"
|
50
|
+
h['templates'] << "maya" if options[:maya_scripts]
|
38
51
|
h['templates'] << "maya_plugin" if options[:maya_plugin_target]
|
39
52
|
h['templates'] << "maya_app" if options[:maya_app_target]
|
40
53
|
h['templates'] << "gl" if maya_c_compile
|
41
54
|
h['templates'] << "delight" if options[:delight_target]
|
55
|
+
h['templates'] << "nuke" if options[:nuke_scripts]
|
56
|
+
|
42
57
|
h['source_files'] = []
|
43
58
|
h['source_files'] << "src/*.cpp" if c_compile
|
44
|
-
h['shell_script_copy_files'] = ["shell/script/*"]
|
45
|
-
|
59
|
+
h['shell_script_copy_files'] = ["shell/script/*"] if options[:shell_scripts]
|
60
|
+
YAML::dump(h)
|
46
61
|
end
|
47
62
|
|
63
|
+
# Generate a project.yml target file according to options given by the user, usually through a wizard.
|
64
|
+
# @param name [String] name of the project.
|
65
|
+
# @param options [Hash] the options.
|
66
|
+
# @option options :maya_module [true, false] Whether this project will build a Maya module.
|
48
67
|
def self.project(name,options={})
|
49
68
|
h = Hash.new
|
50
|
-
h['name'] = "
|
69
|
+
h['name'] = "#{name.camelize}Project"
|
51
70
|
if options[:maya_module]
|
52
|
-
h['maya_script_copy_files'] = ["
|
53
|
-
h['maya_script_erb_files'] = ["
|
54
|
-
h['templates'] = ["maya", "doc"
|
71
|
+
h['maya_script_copy_files'] = ["script/maya/*.mel","script/maya/*.py","script/maya/*.pyc"]
|
72
|
+
h['maya_script_erb_files'] = ["script/maya/erb/*.mel.erb","script/maya/erb/*.py.erb"]
|
73
|
+
h['templates'] = ["release","maya", "doc"]
|
55
74
|
end
|
56
|
-
h['
|
57
|
-
h['
|
75
|
+
h['release_script_copy_files'] = ["script/shell/*.sh"]
|
76
|
+
h['release_script_erb_files'] = ["script/shell/erb/*.erb"]
|
58
77
|
YAML::dump(h)
|
59
78
|
end
|
60
79
|
|
@@ -7,7 +7,7 @@
|
|
7
7
|
# Write lines at the bottom of bashrc to source the <%%= @settings[:product_name] %>.sh file
|
8
8
|
# Write the Maya modules file if this is a module, and put it in the maya app dir modules directory
|
9
9
|
|
10
|
-
set maya_ver = "<%%=
|
10
|
+
set maya_ver = "<%%= @settings[:maya_version] %>"
|
11
11
|
|
12
12
|
set product_up = "<%%= @settings[:product_name].upcase %>"
|
13
13
|
set product_version = "<%%= self.settings[:product_revision] %>"
|
@@ -100,8 +100,8 @@ if (-f ${HOME}/.bashrc) then
|
|
100
100
|
echo "appending <%%= @settings[:product_name] %> source commands to ${HOME}/.bashrc"
|
101
101
|
|
102
102
|
echo "# The following lines have been added by <%%= @settings[:product_name] %>" >> ${HOME}/.bashrc
|
103
|
-
echo 'export <%%= @settings[:product_name].upcase %>="'${the_product_dir}'" # added by
|
104
|
-
echo '[[ -e "${<%%= @settings[:product_name].upcase %>}/bin/<%%= @settings[:product_name] %>.sh" ]] && . "${<%%= @settings[:product_name].upcase %>}/bin/<%%= @settings[:product_name] %>.sh" # added by
|
103
|
+
echo 'export <%%= @settings[:product_name].upcase %>="'${the_product_dir}'" # added by <%%= @settings[:product_name] %>' >> ${HOME}/.bashrc
|
104
|
+
echo '[[ -e "${<%%= @settings[:product_name].upcase %>}/bin/<%%= @settings[:product_name] %>.sh" ]] && . "${<%%= @settings[:product_name].upcase %>}/bin/<%%= @settings[:product_name] %>.sh" # added by <%%= @settings[:product_name] %>' >> ${HOME}/.bashrc
|
105
105
|
|
106
106
|
echo ""
|
107
107
|
echo "*********NOW RUN THESE COMMANDS OR OPEN A NEW SHELL***********"
|
@@ -1,10 +1,12 @@
|
|
1
1
|
require 'flak'
|
2
2
|
|
3
|
+
include Rake::DSL
|
4
|
+
|
3
5
|
verbose(true)
|
4
6
|
|
5
7
|
root = File.dirname(__FILE__)
|
6
8
|
|
7
|
-
FileList.new('**/
|
8
|
-
Flak::Target.new(root, path)
|
9
|
+
FileList.new('**/tool.yml','project.yml').each do |path|
|
10
|
+
Flak::Target.new(root, path).build
|
9
11
|
end
|
10
12
|
|
@@ -1,16 +1,14 @@
|
|
1
|
-
target_release_prefix: 'bin'
|
2
|
-
|
3
1
|
os_linux_64:
|
4
2
|
compiler: '/opt/gcc412/bin/gcc412'
|
5
3
|
linker: '/opt/gcc412/bin/g++412'
|
6
4
|
archiver: '/usr/bin/ar rv'
|
5
|
+
target_extension: ''
|
7
6
|
dso_options:
|
8
7
|
- '-shared'
|
9
8
|
include_paths:
|
10
9
|
- '/usr/X11R6/include'
|
11
10
|
- '/usr/include'
|
12
|
-
libs:
|
13
|
-
- 'Foundation'
|
11
|
+
libs: []
|
14
12
|
lib_paths:
|
15
13
|
- '/usr/lib64'
|
16
14
|
- '/usr/X11R6/lib'
|
@@ -52,6 +50,7 @@ os_darwin:
|
|
52
50
|
compiler: '/usr/bin/gcc'
|
53
51
|
linker: '/usr/bin/g++'
|
54
52
|
archiver: '/usr/bin/libtool -static -arch_only i386'
|
53
|
+
target_extension: ''
|
55
54
|
dso_options:
|
56
55
|
- '-bundle'
|
57
56
|
include_paths:
|
@@ -63,8 +62,7 @@ os_darwin:
|
|
63
62
|
- '-arch x86_64'
|
64
63
|
object_flag: '-o '
|
65
64
|
outputfile_flag: '-o '
|
66
|
-
libs:
|
67
|
-
- 'Foundation'
|
65
|
+
libs: []
|
68
66
|
lib_flag: '-l'
|
69
67
|
libpath_flag: '-L'
|
70
68
|
include_flag: '-I'
|
@@ -104,8 +102,7 @@ os_win_64:
|
|
104
102
|
- 'C:/Program Files (x86)/Microsoft SDKs/Windows/v7.0A/Lib/x64'
|
105
103
|
dso_options:
|
106
104
|
- '/DLL'
|
107
|
-
libs:
|
108
|
-
- 'Foundation'
|
105
|
+
libs: []
|
109
106
|
lib_ext: '.lib'
|
110
107
|
lib_flag: ''
|
111
108
|
libpath_flag: '/LIBPATH:'
|
@@ -114,6 +111,7 @@ os_win_64:
|
|
114
111
|
object_flag: '/Fo'
|
115
112
|
outputfile_flag: '/OUT:'
|
116
113
|
object_extension: 'obj'
|
114
|
+
target_extension: ''
|
117
115
|
linker_options:
|
118
116
|
- '/OPT:NOREF'
|
119
117
|
- '/INCREMENTAL:NO'
|
File without changes
|
@@ -35,18 +35,17 @@ author_email: "<%= ENV['USER'] %>@example.com"
|
|
35
35
|
# on the OS. For a full list of keys,
|
36
36
|
# type in a shell at the project root:
|
37
37
|
# rake -T | grep inspect
|
38
|
-
# and run one of the rake commands for a tool
|
38
|
+
# and run one of the rake commands for a tool or the project.
|
39
39
|
os_darwin:
|
40
|
-
|
40
|
+
tools_directory: "${HOME}/tools"
|
41
41
|
os_linux_64:
|
42
42
|
configuration_debug:
|
43
|
-
|
43
|
+
tools_directory: "${HOME}/tools"
|
44
44
|
configuration_release:
|
45
|
-
|
45
|
+
tools_directory: "/big/server/tools"
|
46
46
|
os_win_64:
|
47
47
|
configuration_debug:
|
48
|
-
|
48
|
+
tools_directory: "/cygdrive/c/cygwin/${HOME}/tools"
|
49
49
|
configuration_release:
|
50
|
-
|
51
|
-
|
50
|
+
tools_directory: "/cygdrive/big/server/Tools"
|
52
51
|
|
File without changes
|
File without changes
|
File without changes
|
@@ -4,7 +4,15 @@ dg_convert_cmd: 'convert -resize 32x32'
|
|
4
4
|
|
5
5
|
outliner_convert_cmd: 'convert -resize 20x20'
|
6
6
|
|
7
|
-
|
7
|
+
icon_convert_cmd: 'convert'
|
8
|
+
|
9
|
+
maya_icon_destination: 'maya/icons'
|
10
|
+
|
11
|
+
maya_script_destination: 'maya/scripts'
|
12
|
+
|
13
|
+
maya_scripted_plugin_destination: 'maya/plug-ins'
|
14
|
+
|
15
|
+
maya_precompiled_plugin_destination: 'maya/plug-ins'
|
8
16
|
|
9
17
|
os_linux_64:
|
10
18
|
autodesk_location: '/usr/autodesk'
|
@@ -0,0 +1 @@
|
|
1
|
+
shell_script_destination: 'bin'
|
@@ -9,56 +9,102 @@
|
|
9
9
|
type: Install Guide
|
10
10
|
---
|
11
11
|
|
12
|
+
<% @figure_counter = 1 %>
|
12
13
|
|
13
|
-
|
14
|
+
h3. Prerequsites
|
14
15
|
|
15
|
-
|
16
|
+
h4. <%= name %> requires jlib.
|
16
17
|
|
17
|
-
|
18
|
+
So if you haven't done so already, install jlib which you can get from "defu":http://defu.herokuapp.com/
|
18
19
|
|
19
|
-
|
20
|
+
h4. This version of <%= name %> works with Maya <pre>version</pre>
|
20
21
|
|
22
|
+
h4. <%= name %> requires <pre>some library</pre>
|
21
23
|
|
22
|
-
|
24
|
+
h3. Where to get <%= name %>
|
23
25
|
|
24
|
-
|
26
|
+
Get the latest version of <%= name %> for your platform from "defu":http://defu.herokuapp.com/ and move it to the place you keep your tools, for example:
|
25
27
|
|
26
|
-
|
27
|
-
# Here's an ordered list, good for installation steps
|
28
|
-
# Here's an ordered list, good for installation steps
|
28
|
+
bc. /big/server/tools/
|
29
29
|
|
30
|
-
<hr>
|
31
30
|
|
32
|
-
|
31
|
+
We'll use that path in the instructions, but be sure to substitute it with your actual location throughout this guide.
|
33
32
|
|
34
|
-
|
35
|
-
|
36
|
-
|
33
|
+
h3. Install on Mac or Linux
|
34
|
+
|
35
|
+
Extract the <%= name %> package using tar
|
36
|
+
|
37
|
+
bc. cd /big/server/tools/
|
38
|
+
tar xvf <%= name %>-0.0.1
|
39
|
+
|
40
|
+
Now run the install script as the user who will be using the tool. You can do this from anywhere, but since you are currently in /big/server/tools/ enter the following command.
|
41
|
+
|
42
|
+
bc. <%= name %>/0.0.1-darwin/bin/INSTALL_<%= name.upcase %>
|
43
|
+
|
44
|
+
You should see the following output:
|
45
|
+
|
46
|
+
bc. working from : /big/server/tools
|
47
|
+
<%= name %> install directory is: /big/server/tools/<%= name%>
|
48
|
+
os is: Darwin
|
49
|
+
writing + <%= name %> 0.0.1 /big/server/tools/<%= name %>/0.0.1-darwin/maya to /Users/my_name/maya/2012-x64/modules/<%= name %>
|
50
|
+
appending <%= name %> source commands to /Users/my_name/.bashrc
|
51
|
+
NOW RUN THESE COMMANDS OR OPEN A NEW SHELL:
|
52
|
+
export <%= name.upcase %>=/big/server/tools/<%= name%>/0.0.1-darwin
|
53
|
+
. ${<%= name.upcase %>}/bin/<%= name %>.sh
|
54
|
+
|
55
|
+
|
56
|
+
h3. What just happened?
|
57
|
+
|
58
|
+
The <%= name %> maya directory was registered as a maya module in a file in your $MAYA_MODULE_PATH.
|
59
|
+
|
60
|
+
bc. /Users/my_name/maya/2012-x64/modules/<%= name %>
|
61
|
+
|
62
|
+
That means next time you start maya the <%= name %> module will be available.
|
37
63
|
|
38
|
-
<hr>
|
39
64
|
|
40
65
|
h3. Install on Windows
|
41
66
|
|
42
|
-
|
43
|
-
# Here's an ordered list, good for installation steps
|
44
|
-
# Here's an ordered list, good for installation steps
|
67
|
+
Windows will probably ask if you want to extract with WinRar. Do so into the folder /big/server/tools/ and double click the file.
|
45
68
|
|
46
|
-
|
69
|
+
h4. Create the Maya modules file
|
47
70
|
|
48
|
-
|
71
|
+
If its not there already, make the folder: C:\Users\my_name\Documents\maya\2012-x64\modules and create a plain text document called <%= name %>. Its important to make sure it has no extension. <%= name %>.txt for example will NOT work.
|
49
72
|
|
73
|
+
Add the following line,
|
50
74
|
|
51
|
-
|
75
|
+
bc. + <%= name %> 0.0.1 /big/server/tools/<%= name %>/0.0.1-win_64/maya
|
52
76
|
|
53
|
-
|
77
|
+
h4. Put the <%= name %> bin directory in your PATH
|
54
78
|
|
55
|
-
|
79
|
+
bc. <%= name.upcase %> = \big\server\tools\<%= name %>\0.0.1-win_64
|
80
|
+
PATH = %PATH%;%<%= name.upcase %>%\bin
|
56
81
|
|
57
|
-
|
82
|
+
Maya.env can usually be found here:
|
58
83
|
|
59
|
-
|
84
|
+
@C:\Users\my_name\Documents\maya\2012-x64\Maya.env@
|
85
|
+
|
86
|
+
Next time you start maya the <%= name %> module will be available.
|
87
|
+
|
88
|
+
h3. Activate in Maya.
|
89
|
+
|
90
|
+
You can choose to make a menu for <%= name %>. Type the following in a MEL script editor.
|
91
|
+
|
92
|
+
bc. <%= name %>("FooBar");
|
93
|
+
|
94
|
+
You will see a new menu appear @FooBar@. It contains a @<%= name %>@ submenu.
|
95
|
+
|
96
|
+
If you want to put it in the main menu bar, type instead:
|
97
|
+
|
98
|
+
bc. <%= name %>($gMainWindow);
|
99
|
+
|
100
|
+
You now have a <%= name %> menu containing the "create" menu item, a standard "About" submenu, and a "Documentation" submenu pointing to this documentation.
|
101
|
+
|
102
|
+
h3. Contributing
|
103
|
+
|
104
|
+
If you want to contribute, the source is available at "bitbucket":https://bitbucket.org/rmwcs/<%= name %>. You'll need "flak":http://rubygems.org/gems/flak in that case too.
|
60
105
|
|
61
106
|
h3. Done
|
62
107
|
|
63
108
|
|
64
109
|
Have Fun!
|
110
|
+
|
@@ -0,0 +1,37 @@
|
|
1
|
+
#include <maya/MStatus.h>
|
2
|
+
#include <maya/MFnPlugin.h>
|
3
|
+
#include <maya/MGlobal.h>
|
4
|
+
|
5
|
+
|
6
|
+
#include "<%= name %>.h"
|
7
|
+
|
8
|
+
MStatus initializePlugin( MObject obj)
|
9
|
+
{
|
10
|
+
|
11
|
+
MStatus st;
|
12
|
+
|
13
|
+
MString method("initializePlugin");
|
14
|
+
|
15
|
+
MFnPlugin plugin( obj, PLUGIN_VENDOR, PLUGIN_VERSION , MAYA_VERSION);
|
16
|
+
|
17
|
+
// register your plugin's nodes, commands, or whetever here.
|
18
|
+
|
19
|
+
return st;
|
20
|
+
|
21
|
+
}
|
22
|
+
|
23
|
+
MStatus uninitializePlugin( MObject obj)
|
24
|
+
{
|
25
|
+
MStatus st;
|
26
|
+
|
27
|
+
MString method("uninitializePlugin");
|
28
|
+
|
29
|
+
MFnPlugin plugin( obj );
|
30
|
+
|
31
|
+
// deregister your plugin's nodes, commands, or whetever here.
|
32
|
+
|
33
|
+
|
34
|
+
return st;
|
35
|
+
}
|
36
|
+
|
37
|
+
|
@@ -0,0 +1,34 @@
|
|
1
|
+
|
2
|
+
#ifndef _<%= name.upcase %>_H
|
3
|
+
#define _<%= name.upcase %>_H
|
4
|
+
|
5
|
+
|
6
|
+
class <%= name %>
|
7
|
+
{
|
8
|
+
public:
|
9
|
+
<%= name %>();
|
10
|
+
virtual ~<%= name %>();
|
11
|
+
|
12
|
+
};
|
13
|
+
|
14
|
+
#endif
|
15
|
+
|
16
|
+
|
17
|
+
|
18
|
+
|
19
|
+
|
20
|
+
|
21
|
+
|
22
|
+
|
23
|
+
|
24
|
+
|
25
|
+
|
26
|
+
|
27
|
+
|
28
|
+
|
29
|
+
|
30
|
+
|
31
|
+
|
32
|
+
|
33
|
+
|
34
|
+
|