1
2 /**
3 IMPORTANT !!!
4
5 DO NOT EDIT THIS FILE. IT IS GENERATED FROM approriate xml file in xmlresources/gbcommands BY
6 THE JavaClassesGenerator.xslt. MODIFY THESE FILES INSTEAD OF THIS ONE.
7
8 IMPORTANT END !!!
9 */
10 package
11 cz.cuni.amis.pogamut.udk.communication.messages.gbcommands;
12 import java.util.*;
13 import javax.vecmath.*;
14 import cz.cuni.amis.pogamut.base.communication.messages.*;
15 import cz.cuni.amis.pogamut.base.communication.worldview.*;
16 import cz.cuni.amis.pogamut.base.communication.worldview.event.*;
17 import cz.cuni.amis.pogamut.base.communication.worldview.object.*;
18 import cz.cuni.amis.pogamut.base.communication.translator.event.*;
19 import cz.cuni.amis.pogamut.base3d.worldview.object.*;
20 import cz.cuni.amis.pogamut.base3d.worldview.object.event.*;
21 import cz.cuni.amis.pogamut.unreal.communication.messages.UnrealId;
22 import cz.cuni.amis.pogamut.udk.communication.messages.*;
23 import cz.cuni.amis.pogamut.udk.communication.worldview.objects.*;
24 import cz.cuni.amis.pogamut.udk.communication.translator.itemdescriptor.*;
25 import cz.cuni.amis.pogamut.udk.communication.messages.ItemType.Category;
26 import cz.cuni.amis.utils.exception.*;
27 import cz.cuni.amis.pogamut.base.communication.translator.event.IWorldObjectUpdateResult.Result;
28 import cz.cuni.amis.utils.SafeEquals;
29 import cz.cuni.amis.pogamut.multi.communication.worldview.object.*;
30
31
32 /**
33
34 Add custom ray for automatic ray tracing. If you send Id =
35 Default, all rays will be erased and default set of rays will be
36 loaded (straight ahead (1,0,0) with 250 length, 45 degrees left
37 (1,–1,0) with 200 length, 45 degrees right (1,1,0) with 200
38 length). This set of rays is also loaded by default. If you want
39 to change existing ray, just support its Id in ADDRAY command
40 along with new parameters. Direction of the rays work as
41 follows. Bot is looking to x axis, that means if I want ray
42 straight ahead I specify some vector on positive x axis (vectors
43 in unreal are specified by (x,y,z) so it would look like this
44 (1,0,0) or this (123,0,0) – numbers doesn't matter, its about
45 direction - vectors will be normalized). If I want ray behind it
46 would be (–1,0,0). 90 degrees right (0,1,0) etc.
47
48 Corresponding GameBots command is
49 ADDRAY.
50
51 */
52
53 public class
54 AddRay extends
55 CommandMessage
56
57 {
58
59 /**
60 Creates new instance of command AddRay.
61
62 Add custom ray for automatic ray tracing. If you send Id =
63 Default, all rays will be erased and default set of rays will be
64 loaded (straight ahead (1,0,0) with 250 length, 45 degrees left
65 (1,–1,0) with 200 length, 45 degrees right (1,1,0) with 200
66 length). This set of rays is also loaded by default. If you want
67 to change existing ray, just support its Id in ADDRAY command
68 along with new parameters. Direction of the rays work as
69 follows. Bot is looking to x axis, that means if I want ray
70 straight ahead I specify some vector on positive x axis (vectors
71 in unreal are specified by (x,y,z) so it would look like this
72 (1,0,0) or this (123,0,0) – numbers doesn't matter, its about
73 direction - vectors will be normalized). If I want ray behind it
74 would be (–1,0,0). 90 degrees right (0,1,0) etc.
75 Corresponding GameBots message for this command is
76 ADDRAY.
77 @param Id
78 User set Id of the ray, so the ray can be identified.
79
80 @param Direction
81 Vector direction of the ray (it will be relative - added to
82 the vector, where the bot is looking, also takes into
83 account angle of the floor the bot is standing on).
84
85 @param Length
86 Specifies the length of the ray (in UT units).
87
88 @param FastTrace
89 True if we want to use FastTrace function instead of Trace
90 function (a bit faster but less information provided - just
91 information if we hit something or not).
92
93 @param FloorCorrection
94 If we should correct ray directions accoring floor normal. Note: Has issue - we can't set set rays up or down when correction is active.
95
96 @param TraceActors
97 If we want to trace also actors – bots, monsters, players,
98 items. False if we want to trace just level geometry.
99
100 */
101 public AddRay(
102 String Id, Vector3d Direction, int Length, boolean FastTrace, boolean FloorCorrection, boolean TraceActors) {
103
104 this.Id = Id;
105
106 this.Direction = Direction;
107
108 this.Length = Length;
109
110 this.FastTrace = FastTrace;
111
112 this.FloorCorrection = FloorCorrection;
113
114 this.TraceActors = TraceActors;
115
116 }
117
118
119 /**
120 Creates new instance of command AddRay.
121
122 Add custom ray for automatic ray tracing. If you send Id =
123 Default, all rays will be erased and default set of rays will be
124 loaded (straight ahead (1,0,0) with 250 length, 45 degrees left
125 (1,–1,0) with 200 length, 45 degrees right (1,1,0) with 200
126 length). This set of rays is also loaded by default. If you want
127 to change existing ray, just support its Id in ADDRAY command
128 along with new parameters. Direction of the rays work as
129 follows. Bot is looking to x axis, that means if I want ray
130 straight ahead I specify some vector on positive x axis (vectors
131 in unreal are specified by (x,y,z) so it would look like this
132 (1,0,0) or this (123,0,0) – numbers doesn't matter, its about
133 direction - vectors will be normalized). If I want ray behind it
134 would be (–1,0,0). 90 degrees right (0,1,0) etc.
135 Corresponding GameBots message for this command is
136 ADDRAY.
137 <p></p>WARNING: this is empty-command constructor, you have to use setters to fill it up!
138 */
139 public AddRay() {
140 }
141
142
143 /////// Properties BEGIN
144
145 /**
146
147 User set Id of the ray, so the ray can be identified.
148 */
149 protected
150 String Id =
151 null;
152
153
154 /**
155
156 User set Id of the ray, so the ray can be identified.
157 */
158 public
159 String getId() {
160 return
161 Id;
162 }
163
164
165
166 /**
167
168 User set Id of the ray, so the ray can be identified.
169 */
170 public AddRay setId(String Id) {
171 this.Id = Id;
172 return this;
173 }
174
175 /**
176
177 Vector direction of the ray (it will be relative - added to
178 the vector, where the bot is looking, also takes into
179 account angle of the floor the bot is standing on).
180 */
181 protected
182 Vector3d Direction =
183 null;
184
185
186 /**
187
188 Vector direction of the ray (it will be relative - added to
189 the vector, where the bot is looking, also takes into
190 account angle of the floor the bot is standing on).
191 */
192 public
193 Vector3d getDirection() {
194 return
195 Direction;
196 }
197
198
199
200 /**
201
202 Vector direction of the ray (it will be relative - added to
203 the vector, where the bot is looking, also takes into
204 account angle of the floor the bot is standing on).
205 */
206 public AddRay setDirection(Vector3d Direction) {
207 this.Direction = Direction;
208 return this;
209 }
210
211 /**
212
213 Specifies the length of the ray (in UT units).
214 */
215 protected
216 int Length =
217 0;
218
219
220 /**
221
222 Specifies the length of the ray (in UT units).
223 */
224 public
225 int getLength() {
226 return
227 Length;
228 }
229
230
231
232 /**
233
234 Specifies the length of the ray (in UT units).
235 */
236 public AddRay setLength(int Length) {
237 this.Length = Length;
238 return this;
239 }
240
241 /**
242
243 True if we want to use FastTrace function instead of Trace
244 function (a bit faster but less information provided - just
245 information if we hit something or not).
246 */
247 protected
248 boolean FastTrace =
249 false;
250
251
252 /**
253
254 True if we want to use FastTrace function instead of Trace
255 function (a bit faster but less information provided - just
256 information if we hit something or not).
257 */
258 public
259 boolean isFastTrace() {
260 return
261 FastTrace;
262 }
263
264
265
266 /**
267
268 True if we want to use FastTrace function instead of Trace
269 function (a bit faster but less information provided - just
270 information if we hit something or not).
271 */
272 public AddRay setFastTrace(boolean FastTrace) {
273 this.FastTrace = FastTrace;
274 return this;
275 }
276
277 /**
278
279 If we should correct ray directions accoring floor normal. Note: Has issue - we can't set set rays up or down when correction is active.
280 */
281 protected
282 boolean FloorCorrection =
283 false;
284
285
286 /**
287
288 If we should correct ray directions accoring floor normal. Note: Has issue - we can't set set rays up or down when correction is active.
289 */
290 public
291 boolean isFloorCorrection() {
292 return
293 FloorCorrection;
294 }
295
296
297
298 /**
299
300 If we should correct ray directions accoring floor normal. Note: Has issue - we can't set set rays up or down when correction is active.
301 */
302 public AddRay setFloorCorrection(boolean FloorCorrection) {
303 this.FloorCorrection = FloorCorrection;
304 return this;
305 }
306
307 /**
308
309 If we want to trace also actors – bots, monsters, players,
310 items. False if we want to trace just level geometry.
311 */
312 protected
313 boolean TraceActors =
314 false;
315
316
317 /**
318
319 If we want to trace also actors – bots, monsters, players,
320 items. False if we want to trace just level geometry.
321 */
322 public
323 boolean isTraceActors() {
324 return
325 TraceActors;
326 }
327
328
329
330 /**
331
332 If we want to trace also actors – bots, monsters, players,
333 items. False if we want to trace just level geometry.
334 */
335 public AddRay setTraceActors(boolean TraceActors) {
336 this.TraceActors = TraceActors;
337 return this;
338 }
339
340 /////// Properties END
341
342 /////// Extra Java code BEGIN
343
344 /////// Additional code from xslt BEGIN
345
346
347
348 /////// Additional code from xslt END
349
350 /////// Extra Java from XML BEGIN
351
352 /////// Extra Java from XML END
353
354 /////// Extra Java code END
355
356
357
358 /**
359 * Cloning constructor.
360 */
361 public AddRay(AddRay original) {
362
363 this.Id=original.Id;
364
365 this.Direction=original.Direction;
366
367 this.Length=original.Length;
368
369 this.FastTrace=original.FastTrace;
370
371 this.FloorCorrection=original.FloorCorrection;
372
373 this.TraceActors=original.TraceActors;
374
375 }
376
377
378
379
380 public String toString() {
381 return
382
383 toMessage();
384
385 }
386
387 public String toHtmlString() {
388 return super.toString() +
389
390 "<b>Id</b> : " +
391 String.valueOf(Id) +
392 " <br/> " +
393
394 "<b>Direction</b> : " +
395 String.valueOf(Direction) +
396 " <br/> " +
397
398 "<b>Length</b> : " +
399 String.valueOf(Length) +
400 " <br/> " +
401
402 "<b>FastTrace</b> : " +
403 String.valueOf(FastTrace) +
404 " <br/> " +
405
406 "<b>FloorCorrection</b> : " +
407 String.valueOf(FloorCorrection) +
408 " <br/> " +
409
410 "<b>TraceActors</b> : " +
411 String.valueOf(TraceActors) +
412 " <br/> " +
413 "";
414 }
415
416
417
418 public String toMessage() {
419 StringBuffer buf = new StringBuffer();
420 buf.append("ADDRAY");
421
422 if (Id != null) {
423 buf.append(" {Id " + Id + "}");
424 }
425
426 if (Direction != null) {
427 buf.append(" {Direction " +
428 Direction.getX() + "," +
429 Direction.getY() + "," +
430 Direction.getZ() + "}");
431 }
432
433 buf.append(" {Length " + Length + "}");
434
435 buf.append(" {FastTrace " + FastTrace + "}");
436
437 buf.append(" {FloorCorrection " + FloorCorrection + "}");
438
439 buf.append(" {TraceActors " + TraceActors + "}");
440
441 return buf.toString();
442 }
443
444 }
445
446