flak 0.0.4 → 0.0.5
Sign up to get free protection for your applications and to get access to all the features.
- 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
|
+
|