Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

source: code/trunk/src/cpptcl/details/constructors.h @ 1348

Last change on this file since 1348 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.8 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, typename T9>
15struct construct
16{
17     static C * doit(T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7,
18          T8 t8, T9 t9)
19     { return new C(t1, t2, t3, t4, t5, t6, t7, t8, t9); }
20};
21
22template <class C, typename T1, typename T2, typename T3, typename T4,
23          typename T5, typename T6, typename T7, typename T8>
24struct construct<C, T1, T2, T3, T4, T5, T6, T7, T8, void>
25{
26     static C * doit(T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7, T8 t8)
27     { return new C(t1, t2, t3, t4, t5, t6, t7, t8); }
28};
29
30template <class C, typename T1, typename T2, typename T3, typename T4,
31          typename T5, typename T6, typename T7>
32struct construct<C, T1, T2, T3, T4, T5, T6, T7, void, void>
33{
34     static C * doit(T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6, T7 t7)
35     { return new C(t1, t2, t3, t4, t5, t6, t7); }
36};
37
38template <class C, typename T1, typename T2, typename T3, typename T4,
39          typename T5, typename T6>
40struct construct<C, T1, T2, T3, T4, T5, T6, void, void, void>
41{
42     static C * doit(T1 t1, T2 t2, T3 t3, T4 t4, T5 t5, T6 t6)
43     { return new C(t1, t2, t3, t4, t5, t6); }
44};
45
46template <class C, typename T1, typename T2, typename T3, typename T4,
47          typename T5>
48struct construct<C, T1, T2, T3, T4, T5, void, void, void, void>
49{
50     static C * doit(T1 t1, T2 t2, T3 t3, T4 t4, T5 t5)
51     { return new C(t1, t2, t3, t4, t5); }
52};
53
54template <class C, typename T1, typename T2, typename T3, typename T4>
55struct construct<C, T1, T2, T3, T4, void, void, void, void, void>
56{
57     static C * doit(T1 t1, T2 t2, T3 t3, T4 t4)
58     { return new C(t1, t2, t3, t4); }
59};
60
61template <class C, typename T1, typename T2, typename T3>
62struct construct<C, T1, T2, T3, void, void, void, void, void, void>
63{
64     static C * doit(T1 t1, T2 t2, T3 t3)
65     { return new C(t1, t2, t3); }
66};
67
68template <class C, typename T1, typename T2>
69struct construct<C, T1, T2, void, void, void, void, void, void, void>
70{
71     static C * doit(T1 t1, T2 t2)
72     { return new C(t1, t2); }
73};
74
75template <class C, typename T1>
76struct construct<C, T1, void, void, void, void, void, void, void, void>
77{
78     static C * doit(T1 t1)
79     { return new C(t1); }
80};
81
82template <class C>
83struct construct<C, void, void, void, void, void,
84                 void, void, void, void>
85{
86     static C * doit()
87     { return new C(); }
88};
Note: See TracBrowser for help on using the repository browser.