Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

source: code/trunk/src/cpptcl/details/metahelpers.h @ 1346

Last change on this file since 1346 was 1214, checked in by landauf, 17 years ago

merged console-branch back to trunk.
IMPORTANT: update your media directory!

you need TCL to compile. TCL is available here: http://www.tcl.tk/
another option is to check out https://svn.orxonox.net/ogre/tcl8.5.2/ and compile it by yourself. makefiles are in the 'macosx', 'unix' and 'win' subfolders.
FindTCL.cmake searches in the usual locations and in ../libs/tcl8.5.2/

the orxonox console can be activated with numpad-enter. whatever you enter will be parsed by TCL. if TCL doesn't know a command, it gets executed by orxonox.

simple tcl commands are: "puts text" to write "text" into the console, "expr 1+1" to calculate the result of the given expression. just try it by yourself with "puts [expr 1+1]".
[x] means: evaluate x and use the returnvalue as an argument. in this case the returned value is "2" and the resulting command therefore "puts 2".

you can combine orxonox and tcl commands. a simple orxonox command is "log text" that writes text into the console and the logfile. test it with "log [expr 1+1]" to write "2" into all output channels of orxonox. something more advanced: "log [clock seconds]" writes the seconds since 1970 into the logfile. feel free to combine both: "log [clock seconds]: 1+1 is [expr 1+1]"

TCL uses variables. to set a new variable, use "set varname value". you can use the variable wherever you want with $varname. with this we can make the above command a bit more elegant:
set myexpression 1+1
log [clock seconds]: $myexpression is [expr $myexpression]

read more about tcl in the wiki: http://wiki.tcl.tk/

File size: 2.6 KB
Line 
1//
2// Copyright (C) 2004-2006, Maciej Sobczak
3//
4// Permission to copy, use, modify, sell and distribute this software
5// is granted provided this copyright notice appears in all copies.
6// This software is provided "as is" without express or implied
7// warranty, and with no claim as to its suitability for any purpose.
8//
9
10// Note: this file is not supposed to be a stand-alone header
11
12
13template <class C, typename T1, typename T2, typename T3, typename T4,
14          typename T5, typename T6, typename T7, typename T8,
15          typename T9>
16struct get_callback_type_for_construct
17{
18     typedef callback9<C*, T1, T2, T3, T4, T5, T6, T7, T8, T9> type;
19};
20
21template <class C, typename T1, typename T2, typename T3, typename T4,
22          typename T5, typename T6, typename T7, typename T8>
23struct get_callback_type_for_construct<
24     C, T1, T2, T3, T4, T5, T6, T7, T8, void>
25{
26     typedef callback8<C*, T1, T2, T3, T4, T5, T6, T7, T8> type;
27};
28
29template <class C, typename T1, typename T2, typename T3, typename T4,
30          typename T5, typename T6, typename T7>
31struct get_callback_type_for_construct<
32     C, T1, T2, T3, T4, T5, T6, T7, void, void>
33{
34     typedef callback7<C*, T1, T2, T3, T4, T5, T6, T7> type;
35};
36
37template <class C, typename T1, typename T2, typename T3, typename T4,
38          typename T5, typename T6>
39struct get_callback_type_for_construct<
40     C, T1, T2, T3, T4, T5, T6, void, void, void>
41{
42     typedef callback6<C*, T1, T2, T3, T4, T5, T6> type;
43};
44
45template <class C, typename T1, typename T2, typename T3, typename T4,
46          typename T5>
47struct get_callback_type_for_construct<
48     C, T1, T2, T3, T4, T5, void, void, void, void>
49{
50     typedef callback5<C*, T1, T2, T3, T4, T5> type;
51};
52
53template <class C, typename T1, typename T2, typename T3, typename T4>
54struct get_callback_type_for_construct<
55     C, T1, T2, T3, T4, void, void, void, void, void>
56{
57     typedef callback4<C*, T1, T2, T3, T4> type;
58};
59
60template <class C, typename T1, typename T2, typename T3>
61struct get_callback_type_for_construct<
62     C, T1, T2, T3, void, void, void, void, void, void>
63{
64     typedef callback3<C*, T1, T2, T3> type;
65};
66
67template <class C, typename T1, typename T2>
68struct get_callback_type_for_construct<
69     C, T1, T2, void, void, void, void, void, void, void>
70{
71     typedef callback2<C*, T1, T2> type;
72};
73
74template <class C, typename T1>
75struct get_callback_type_for_construct<
76     C, T1, void, void, void, void, void, void, void, void>
77{
78     typedef callback1<C*, T1> type;
79};
80
81template <class C>
82struct get_callback_type_for_construct<
83     C, void, void, void, void, void, void, void, void, void>
84{
85     typedef callback0<C*> type;
86};
Note: See TracBrowser for help on using the repository browser.