source: cpp/frams/model/f0-SDK-classes.h @ 1326

Last change on this file since 1326 was 1252, checked in by Maciej Komosinski, 17 months ago

Disallow Joint longitudal stiffness == 0.0 because then sticks can be stretched indefinitely with no resistance; now minimum allowed is 0.01

  • Property svn:eol-style set to native
File size: 8.7 KB
Line 
1// This file is a part of Framsticks SDK.  http://www.framsticks.com/
2// Copyright (C) 1999-2020  Maciej Komosinski and Szymon Ulatowski.
3// See LICENSE.txt for details.
4
5
6#define FIELDSTRUCT Model
7ParamEntry f0_model_paramtab[]=
8{
9 {"Properties",2,2,"m",NULL,0,NULL,NULL,"Model"},
10 {"Visual",},
11 {"se",0,1024,"startenergy","f",FIELD(startenergy),},
12 {"Vstyle",1,0,"Visual style","s 0 -1 ",FIELD(vis_style),"See the \"Visual style definition\" context for more information",},
13 {0,0,0,}
14};
15ParamEntry f0_model_xtra_paramtab[]=
16{
17 {"Extra properties",1,0,"m"},
18 {0,0,0,}
19};
20#undef FIELDSTRUCT
21
22
23#define FIELDSTRUCT Part
24ParamEntry f0_part_paramtab[]=
25{
26 {"Geometry",3,21,"p",NULL,0,NULL,NULL,"Part"},
27 {"Other properties",},
28 {"Visual",},
29 {"x",0,1024,"position.x","f",FIELD(p.x),},
30 {"y",0,1024,"position.y","f",FIELD(p.y),},
31 {"z",0,1024,"position.z","f",FIELD(p.z),},
32 {"sh",0,0,"shape","d 0 3 0",FIELD(shape),},
33 {"s",0,0,"size","f 0.1 10.0 1.0",FIELD(size),},
34 {"sx",0,0,"scale.x","f 0.05 5.0 1.0",FIELD(scale.x),},
35 {"sy",0,0,"scale.y","f 0.05 5.0 1.0",FIELD(scale.y),},
36 {"sz",0,0,"scale.z","f 0.05 5.0 1.0",FIELD(scale.z),},
37 {"h",1,0,"hollow","f 0 1 0",FIELD(hollow),},
38 {"dn",1,0,"density","f 0.2 5.0 1.0",FIELD(density),},
39 {"fr",1,0,"friction","f 0.0 4.0 0.4",FIELD(friction),},
40 {"ing",1,0,"ingestion","f 0.0 1.0 0.25",FIELD(ingest),},
41 {"as",1,0,"assimilation","f 0.0 1.0 0.25",FIELD(assim),},
42 {"rx",0,0,"rot.x","f",FIELD(rot.x),},
43 {"ry",0,1024,"rot.y","f",FIELD(rot.y),},
44 {"rz",0,1024,"rot.z","f",FIELD(rot.z),},
45 {"i",1,0,"info","s",FIELD(info),},
46 {"Vstyle",2,0,"Visual style","s 0 -1 part",FIELD(vis_style),"See the \"Visual style definition\" context for more information",},
47 {"vr",2,0,"red component","f 0.0 1.0 0.5",FIELD(vcolor.x),},
48 {"vg",2,1024,"green component","f 0.0 1.0 0.5",FIELD(vcolor.y),},
49 {"vb",2,1024,"blue component","f 0.0 1.0 0.5",FIELD(vcolor.z),},
50 {0,0,0,}
51};
52ParamEntry f0_part_xtra_paramtab[]=
53{
54 {"Extra properties",1,8,"p"},
55 {"h",0,0,"hollow","f 0 1 0",FIELD(hollow),},
56 {"dn",0,0,"density","f 0.2 5.0 1.0",FIELD(density),},
57 {"fr",0,0,"friction","f 0.0 4.0 0.4",FIELD(friction),},
58 {"ing",0,0,"ingestion","f 0.0 1.0 0.25",FIELD(ingest),},
59 {"as",0,0,"assimilation","f 0.0 1.0 0.25",FIELD(assim),},
60 {"vr",0,0,"red component","f 0.0 1.0 0.5",FIELD(vcolor.x),},
61 {"vg",0,1024,"green component","f 0.0 1.0 0.5",FIELD(vcolor.y),},
62 {"vb",0,1024,"blue component","f 0.0 1.0 0.5",FIELD(vcolor.z),},
63 {0,0,0,}
64};
65#undef FIELDSTRUCT
66
67
68#define FIELDSTRUCT Part_MinMaxDef
69ParamEntry f0_part_minmaxdef_paramtab[]=
70{
71 {"Geometry",1,1,"p"},
72 {"f",0,0,"volume","f 0.83776 20.94395 4.18879",FIELD(volume),"Recommended default and min,max range for solid-shape Parts created and modified by genetic operators which are responsible for setting sizex,y,z. Default is the volume of the solid sphere (ball) with default radius=1 (radius is the same as sizex,y,z). Minimum is 5x less, maximum is 5x more.",},
73 {0,0,0,}
74};
75ParamEntry f0_part_minmaxdef_xtra_paramtab[]=
76{
77 {"Extra properties",1,0,"p"},
78 {0,0,0,}
79};
80#undef FIELDSTRUCT
81
82
83#define FIELDSTRUCT Joint
84ParamEntry f0_joint_paramtab[]=
85{
86 {"Connections",4,27,"j",NULL,0,NULL,NULL,"Joint"},
87 {"Geometry",},
88 {"Other properties",},
89 {"Visual",},
90 {"p1",0,1024,"part1 ref#","d -1 999999 -1",FIELD(p1_refno),},
91 {"p2",0,1024,"part2 ref#","d -1 999999 -1",FIELD(p2_refno),},
92 {"rx",1,0,"rotation.x","f",FIELD(rot.x),},
93 {"ry",1,1024,"rotation.y","f",FIELD(rot.y),},
94 {"rz",1,1024,"rotation.z","f",FIELD(rot.z),},
95 {"dx",1,0,"delta.x","f -2 2 0",FIELD(d.x),},
96 {"dy",1,1024,"delta.y","f -2 2 0",FIELD(d.y),},
97 {"dz",1,1024,"delta.z","f -2 2 0",FIELD(d.z),},
98 {"sh",1,0,"shape","d 0 3 0",FIELD(shape),},
99 {"hx",1,0,"hinge position.x","f",FIELD(hinge_pos.x),},
100 {"hy",1,1024,"hinge position.y","f",FIELD(hinge_pos.y),},
101 {"hz",1,1024,"hinge position.z","f",FIELD(hinge_pos.z),},
102 {"hrx",1,0,"hinge rotation.x","f",FIELD(hinge_rot.x),},
103 {"hry",1,1024,"hinge rotation.y","f",FIELD(hinge_rot.y),},
104 {"hrz",1,1024,"hinge rotation.z","f",FIELD(hinge_rot.z),},
105 {"hxn",1,0,"hinge x negative limit","f -6.2832 0 -1.5708",FIELD(hinge_limit_x[0]),},
106 {"hxp",1,1024,"hinge x positive limit","f 0 6.2832 1.5708",FIELD(hinge_limit_x[1]),},
107 {"hyn",1,0,"hinge y negative limit","f -6.2832 0 -1.5708",FIELD(hinge_limit_y[0]),},
108 {"hyp",1,1024,"hinge y positive limit","f 0 6.2832 1.5708",FIELD(hinge_limit_y[1]),},
109 {"stif",2,0,"stiffness","f 0.01 1.0 1.0",FIELD(stif),},
110 {"rotstif",2,0,"rotation stiffness","f 0.0 1.0 1.0",FIELD(rotstif),},
111 {"stam",2,0,"stamina","f 0.0 1.0 0.25",FIELD(stamina),},
112 {"i",2,0,"info","s",FIELD(info),},
113 {"Vstyle",3,0,"Visual style","s 0 -1 joint",FIELD(vis_style),"See the \"Visual style definition\" context for more information",},
114 {"vr",3,0,"red component","f 0.0 1.0 0.5",FIELD(vcolor.x),},
115 {"vg",3,1024,"green component","f 0.0 1.0 0.5",FIELD(vcolor.y),},
116 {"vb",3,1024,"blue component","f 0.0 1.0 0.5",FIELD(vcolor.z),},
117 {0,0,0,}
118};
119ParamEntry f0_joint_xtra_paramtab[]=
120{
121 {"Extra properties",1,5,"j"},
122 {"stif",0,0,"stiffness","f 0.01 1.0 1.0",FIELD(stif),},
123 {"rotstif",0,0,"rotation stiffness","f 0.0 1.0 1.0",FIELD(rotstif),},
124 {"vr",0,0,"red component","f 0.0 1.0 0.5",FIELD(vcolor.x),},
125 {"vg",0,1024,"green component","f 0.0 1.0 0.5",FIELD(vcolor.y),},
126 {"vb",0,1024,"blue component","f 0.0 1.0 0.5",FIELD(vcolor.z),},
127 {0,0,0,}
128};
129#undef FIELDSTRUCT
130
131
132#define FIELDSTRUCT Joint
133ParamEntry f0_nodeltajoint_paramtab[]=
134{
135 {"Connections",4,21,"j",NULL,0,NULL,NULL,"Joint"},
136 {"Geometry",},
137 {"Other properties",},
138 {"Visual",},
139 {"p1",0,1024,"part1 ref#","d -1 999999 -1",FIELD(p1_refno),},
140 {"p2",0,1024,"part2 ref#","d -1 999999 -1",FIELD(p2_refno),},
141 {"sh",1,0,"shape","d 0 3 0",FIELD(shape),},
142 {"hx",1,0,"hinge position.x","f",FIELD(hinge_pos.x),},
143 {"hy",1,1024,"hinge position.y","f",FIELD(hinge_pos.y),},
144 {"hz",1,1024,"hinge position.z","f",FIELD(hinge_pos.z),},
145 {"hrx",1,0,"hinge rotation.x","f",FIELD(hinge_rot.x),},
146 {"hry",1,1024,"hinge rotation.y","f",FIELD(hinge_rot.y),},
147 {"hrz",1,1024,"hinge rotation.z","f",FIELD(hinge_rot.z),},
148 {"hxn",1,0,"hinge x negative limit","f -6.2832 0 -1.5708",FIELD(hinge_limit_x[0]),},
149 {"hxp",1,1024,"hinge x positive limit","f 0 6.2832 1.5708",FIELD(hinge_limit_x[1]),},
150 {"hyn",1,0,"hinge y negative limit","f -6.2832 0 -1.5708",FIELD(hinge_limit_y[0]),},
151 {"hyp",1,1024,"hinge y positive limit","f 0 6.2832 1.5708",FIELD(hinge_limit_y[1]),},
152 {"stif",2,0,"stiffness","f 0.01 1.0 1.0",FIELD(stif),},
153 {"rotstif",2,0,"rotation stiffness","f 0.0 1.0 1.0",FIELD(rotstif),},
154 {"stam",2,0,"stamina","f 0.0 1.0 0.25",FIELD(stamina),},
155 {"i",2,0,"info","s",FIELD(info),},
156 {"Vstyle",3,0,"Visual style","s 0 -1 joint",FIELD(vis_style),"See the \"Visual style definition\" context for more information",},
157 {"vr",3,0,"red component","f 0.0 1.0 0.5",FIELD(vcolor.x),},
158 {"vg",3,1024,"green component","f 0.0 1.0 0.5",FIELD(vcolor.y),},
159 {"vb",3,1024,"blue component","f 0.0 1.0 0.5",FIELD(vcolor.z),},
160 {0,0,0,}
161};
162ParamEntry f0_nodeltajoint_xtra_paramtab[]=
163{
164 {"Extra properties",1,5,"j"},
165 {"stif",0,0,"stiffness","f 0.01 1.0 1.0",FIELD(stif),},
166 {"rotstif",0,0,"rotation stiffness","f 0.0 1.0 1.0",FIELD(rotstif),},
167 {"vr",0,0,"red component","f 0.0 1.0 0.5",FIELD(vcolor.x),},
168 {"vg",0,1024,"green component","f 0.0 1.0 0.5",FIELD(vcolor.y),},
169 {"vb",0,1024,"blue component","f 0.0 1.0 0.5",FIELD(vcolor.z),},
170 {0,0,0,}
171};
172#undef FIELDSTRUCT
173
174
175#define FIELDSTRUCT Neuro
176ParamEntry f0_neuro_paramtab[]=
177{
178 {"Connections",3,10,"n",NULL,0,NULL,NULL,"Neuro"},
179 {"Other",},
180 {"Visual",},
181 {"p",0,0,"part ref#","d -1 999999 -1",FIELD(part_refno),},
182 {"j",0,0,"joint ref#","d -1 999999 -1",FIELD(joint_refno),},
183 {"d",1,0,"details","s",GETSET(details),},
184 {"i",1,0,"info","s",FIELD(info),},
185 {"Vstyle",2,0,"Visual style","s 0 -1 neuro",FIELD(vis_style),"See the \"Visual style definition\" context for more information",},
186 {"getInputCount",0,1+2,"input count","d",GETONLY(inputCount),},
187 {"getInputNeuroDef",0,0,"get input neuron","p oNeuroDef(d)",PROCEDURE(p_getInputNeuroDef),},
188 {"getInputNeuroIndex",0,0,"get input neuron index","p d(d)",PROCEDURE(p_getInputNeuroIndex),},
189 {"getInputWeight",0,0,"get input weight","p f(d)",PROCEDURE(p_getInputWeight),},
190 {"classObject",0,1+2,"neuron class","oNeuroClass",GETONLY(classObject),},
191 {0,0,0,}
192};
193ParamEntry f0_neuro_xtra_paramtab[]=
194{
195 {"Extra properties",1,0,"n"},
196 {0,0,0,}
197};
198#undef FIELDSTRUCT
199
200
201#define FIELDSTRUCT NeuroConn
202ParamEntry f0_neuroconn_paramtab[]=
203{
204 {"Connection",2,4,"c",NULL,0,NULL,NULL,"Neuron connection"},
205 {"Other",},
206 {"n1",0,1024,"this neuro ref#","d -1 999999 -1",FIELD(n1_refno),},
207 {"n2",0,1024,"connected neuro ref#","d -1 999999 -1",FIELD(n2_refno),},
208 {"w",0,1024,"weight","f -999999 999999 1.0",FIELD(weight),},
209 {"i",1,0,"info","s",FIELD(info),},
210 {0,0,0,}
211};
212ParamEntry f0_neuroconn_xtra_paramtab[]=
213{
214 {"Extra properties",1,0,"c"},
215 {0,0,0,}
216};
217#undef FIELDSTRUCT
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
Note: See TracBrowser for help on using the repository browser.