1 // Script API header intended to be 'force included' in IDE for AngelScript content assist / code completion
2 
3 #define int8 signed char
4 #define int16 signed short
5 #define int64 long
6 #define uint8 unsigned char
7 #define uint16 unsigned short
8 #define uint64 unsigned long
9 #define null 0
10 #define in
11 #define out
12 #define inout
13 #define is ==
14 #define interface struct
15 #define class struct
16 #define cast reinterpret_cast
17 #define mixin
18 #define funcdef
19 
20 // Classes
21 
22 class Animatable
23 {
24 public:
25 // Methods:
26 void ApplyAttributes();
27 Variant GetAttribute(const String&) const;
28 ValueAnimation GetAttributeAnimation(const String&) const;
29 float GetAttributeAnimationSpeed(const String&) const;
30 float GetAttributeAnimationTime(const String&) const;
31 WrapMode GetAttributeAnimationWrapMode(const String&) const;
32 Variant GetAttributeDefault(const String&) const;
33 bool GetInterceptNetworkUpdate(const String&) const;
34 bool HasSubscribedToEvent(Object, const String&);
35 bool HasSubscribedToEvent(const String&);
36 bool Load(File, bool = false);
37 bool Load(VectorBuffer&, bool = false);
38 bool LoadJSON(const JSONValue&, bool = false);
39 bool LoadXML(const XMLElement&, bool = false);
40 void MarkNetworkUpdate() const;
41 void RemoveAttributeAnimation(const String&);
42 void RemoveInstanceDefault();
43 void RemoveObjectAnimation();
44 void ResetToDefault();
45 bool Save(File) const;
46 bool Save(VectorBuffer&) const;
47 bool SaveJSON(JSONValue&) const;
48 bool SaveXML(XMLElement&) const;
49 void SendEvent(const String&, VariantMap& = VariantMap ( ));
50 void SetAnimationTime(float);
51 bool SetAttribute(const String&, const Variant&);
52 void SetAttributeAnimation(const String&, ValueAnimation, WrapMode = WM_LOOP, float = 1.0f);
53 void SetAttributeAnimationSpeed(const String&, float);
54 void SetAttributeAnimationTime(const String&, float);
55 void SetAttributeAnimationWrapMode(const String&, WrapMode);
56 void SetInterceptNetworkUpdate(const String&, bool);
57 
58 // Properties:
59 bool animationEnabled;
60 /* readonly */
61 Array<Variant> attributeDefaults;
62 /* readonly */
63 Array<AttributeInfo> attributeInfos;
64 Array<Variant> attributes;
65 /* readonly */
66 String category;
67 /* readonly */
68 uint numAttributes;
69 ObjectAnimation objectAnimation;
70 /* readonly */
71 int refs;
72 bool temporary;
73 /* readonly */
74 StringHash type;
75 /* readonly */
76 String typeName;
77 /* readonly */
78 int weakRefs;
79 };
80 
81 class AnimatedModel
82 {
83 public:
84 // Methods:
85 AnimationState AddAnimationState(Animation);
86 void ApplyAttributes();
87 void ApplyMaterialList(const String& = String ( ));
88 void DrawDebugGeometry(DebugRenderer, bool);
89 AnimationState GetAnimationState(Animation) const;
90 AnimationState GetAnimationState(uint) const;
91 Variant GetAttribute(const String&) const;
92 ValueAnimation GetAttributeAnimation(const String&) const;
93 float GetAttributeAnimationSpeed(const String&) const;
94 float GetAttributeAnimationTime(const String&) const;
95 WrapMode GetAttributeAnimationWrapMode(const String&) const;
96 Variant GetAttributeDefault(const String&) const;
97 bool GetInterceptNetworkUpdate(const String&) const;
98 float GetMorphWeight(uint) const;
99 bool HasSubscribedToEvent(Object, const String&);
100 bool HasSubscribedToEvent(const String&);
101 bool IsInView(Camera) const;
102 bool Load(File, bool = false);
103 bool Load(VectorBuffer&, bool = false);
104 bool LoadJSON(const JSONValue&, bool = false);
105 bool LoadXML(const XMLElement&, bool = false);
106 void MarkNetworkUpdate() const;
107 void Remove();
108 void RemoveAllAnimationStates();
109 void RemoveAnimationState(Animation);
110 void RemoveAnimationState(AnimationState);
111 void RemoveAnimationState(const String&);
112 void RemoveAnimationState(uint);
113 void RemoveAttributeAnimation(const String&);
114 void RemoveInstanceDefault();
115 void RemoveObjectAnimation();
116 void ResetMorphWeights();
117 void ResetToDefault();
118 bool Save(File) const;
119 bool Save(VectorBuffer&) const;
120 bool SaveJSON(JSONValue&) const;
121 bool SaveXML(XMLElement&) const;
122 void SendEvent(const String&, VariantMap& = VariantMap ( ));
123 void SetAnimationTime(float);
124 bool SetAttribute(const String&, const Variant&);
125 void SetAttributeAnimation(const String&, ValueAnimation, WrapMode = WM_LOOP, float = 1.0f);
126 void SetAttributeAnimationSpeed(const String&, float);
127 void SetAttributeAnimationTime(const String&, float);
128 void SetAttributeAnimationWrapMode(const String&, WrapMode);
129 void SetInterceptNetworkUpdate(const String&, bool);
130 void SetMorphWeight(uint, float);
131 void UpdateBoneBoundingBox();
132 
133 // Properties:
134 bool animationEnabled;
135 float animationLodBias;
136 /* readonly */
137 Array<AnimationState> animationStates;
138 /* readonly */
139 Array<Variant> attributeDefaults;
140 /* readonly */
141 Array<AttributeInfo> attributeInfos;
142 Array<Variant> attributes;
143 /* readonly */
144 BoundingBox boundingBox;
145 bool castShadows;
146 /* readonly */
147 String category;
148 float drawDistance;
149 bool enabled;
150 /* readonly */
151 bool enabledEffective;
152 /* readonly */
153 uint id;
154 /* readonly */
155 bool inView;
156 uint lightMask;
157 float lodBias;
158 /* writeonly */
159 Material material;
160 Array<Material> materials;
161 uint maxLights;
162 Model model;
163 /* readonly */
164 Array<String> morphNames;
165 Array<float> morphWeights;
166 /* readonly */
167 Node node;
168 /* readonly */
169 uint numAnimationStates;
170 /* readonly */
171 uint numAttributes;
172 /* readonly */
173 uint numGeometries;
174 /* readonly */
175 uint numMorphs;
176 ObjectAnimation objectAnimation;
177 bool occludee;
178 bool occluder;
179 /* readonly */
180 int refs;
181 float shadowDistance;
182 uint shadowMask;
183 /* readonly */
184 Skeleton skeleton;
185 bool temporary;
186 /* readonly */
187 StringHash type;
188 /* readonly */
189 String typeName;
190 bool updateInvisible;
191 uint viewMask;
192 /* readonly */
193 int weakRefs;
194 /* readonly */
195 BoundingBox worldBoundingBox;
196 /* readonly */
197 Zone zone;
198 uint zoneMask;
199 };
200 
201 class AnimatedSprite2D
202 {
203 public:
204 // Methods:
205 void ApplyAttributes();
206 void DrawDebugGeometry(DebugRenderer, bool);
207 Variant GetAttribute(const String&) const;
208 ValueAnimation GetAttributeAnimation(const String&) const;
209 float GetAttributeAnimationSpeed(const String&) const;
210 float GetAttributeAnimationTime(const String&) const;
211 WrapMode GetAttributeAnimationWrapMode(const String&) const;
212 Variant GetAttributeDefault(const String&) const;
213 bool GetInterceptNetworkUpdate(const String&) const;
214 bool HasSubscribedToEvent(Object, const String&);
215 bool HasSubscribedToEvent(const String&);
216 bool IsInView(Camera) const;
217 bool Load(File, bool = false);
218 bool Load(VectorBuffer&, bool = false);
219 bool LoadJSON(const JSONValue&, bool = false);
220 bool LoadXML(const XMLElement&, bool = false);
221 void MarkNetworkUpdate() const;
222 void Remove();
223 void RemoveAttributeAnimation(const String&);
224 void RemoveInstanceDefault();
225 void RemoveObjectAnimation();
226 void ResetToDefault();
227 bool Save(File) const;
228 bool Save(VectorBuffer&) const;
229 bool SaveJSON(JSONValue&) const;
230 bool SaveXML(XMLElement&) const;
231 void SendEvent(const String&, VariantMap& = VariantMap ( ));
232 void SetAnimation(const String&, LoopMode2D = LM_DEFAULT);
233 void SetAnimationTime(float);
234 bool SetAttribute(const String&, const Variant&);
235 void SetAttributeAnimation(const String&, ValueAnimation, WrapMode = WM_LOOP, float = 1.0f);
236 void SetAttributeAnimationSpeed(const String&, float);
237 void SetAttributeAnimationTime(const String&, float);
238 void SetAttributeAnimationWrapMode(const String&, WrapMode);
239 void SetFlip(bool, bool);
240 void SetInterceptNetworkUpdate(const String&, bool);
241 
242 // Properties:
243 float alpha;
244 String animation;
245 bool animationEnabled;
246 AnimationSet2D animationSet;
247 /* readonly */
248 Array<Variant> attributeDefaults;
249 /* readonly */
250 Array<AttributeInfo> attributeInfos;
251 Array<Variant> attributes;
252 BlendMode blendMode;
253 /* readonly */
254 BoundingBox boundingBox;
255 bool castShadows;
256 /* readonly */
257 String category;
258 Color color;
259 Material customMaterial;
260 float drawDistance;
261 Rect drawRect;
262 bool enabled;
263 /* readonly */
264 bool enabledEffective;
265 String entity;
266 bool flipX;
267 bool flipY;
268 Vector2 hotSpot;
269 /* readonly */
270 uint id;
271 /* readonly */
272 bool inView;
273 int layer;
274 uint lightMask;
275 float lodBias;
276 LoopMode2D loopMode;
277 uint maxLights;
278 /* readonly */
279 Node node;
280 /* readonly */
281 uint numAttributes;
282 ObjectAnimation objectAnimation;
283 bool occludee;
284 bool occluder;
285 int orderInLayer;
286 /* readonly */
287 int refs;
288 float shadowDistance;
289 uint shadowMask;
290 float speed;
291 Sprite2D sprite;
292 bool temporary;
293 Rect textureRect;
294 /* readonly */
295 StringHash type;
296 /* readonly */
297 String typeName;
298 bool useDrawRect;
299 bool useHotSpot;
300 bool useTextureRect;
301 uint viewMask;
302 /* readonly */
303 int weakRefs;
304 /* readonly */
305 BoundingBox worldBoundingBox;
306 uint zoneMask;
307 };
308 
309 class Animation
310 {
311 public:
312 Animation();
313 Animation(const String&in);
314 // Methods:
315 void AddMetadata(const String&, const Variant&);
316 void AddTrigger(const AnimationTriggerPoint&);
317 void AddTrigger(float, bool, const Variant&);
318 Animation Clone(const String& = String ( )) const;
319 AnimationTrack CreateTrack(const String&);
320 AnimationTrack GetTrack(uint);
321 bool HasSubscribedToEvent(Object, const String&);
322 bool HasSubscribedToEvent(const String&);
323 bool Load(File);
324 bool Load(VectorBuffer&);
325 bool Load(const String&);
326 void RemoveAllMetadata();
327 bool RemoveAllTracks();
328 void RemoveAllTriggers();
329 void RemoveMetadata(const String&);
330 bool RemoveTrack(const String&);
331 void RemoveTrigger(uint);
332 bool Save(File) const;
333 bool Save(VectorBuffer&) const;
334 bool Save(const String&) const;
335 void SendEvent(const String&, VariantMap& = VariantMap ( ));
336 
337 // Properties:
338 String animationName;
339 /* readonly */
340 String category;
341 /* readonly */
342 bool hasMetadata;
343 float length;
344 /* readonly */
345 uint memoryUse;
346 Array<Variant> metadata;
347 String name;
348 /* readonly */
349 uint numTracks;
350 uint numTriggers;
351 /* readonly */
352 int refs;
353 /* readonly */
354 Array<AnimationTrack> tracks;
355 Array<AnimationTriggerPoint> triggers;
356 /* readonly */
357 StringHash type;
358 /* readonly */
359 String typeName;
360 /* readonly */
361 uint useTimer;
362 /* readonly */
363 int weakRefs;
364 };
365 
366 class AnimationControl
367 {
368 public:
369 
370 // Properties:
371 float autoFadeTime;
372 float fadeTime;
373 StringHash hash;
374 String name;
375 bool removeOnCompletion;
376 float speed;
377 float targetWeight;
378 };
379 
380 class AnimationController
381 {
382 public:
383 // Methods:
384 void ApplyAttributes();
385 void DrawDebugGeometry(DebugRenderer, bool);
386 bool Fade(const String&, float, float);
387 bool FadeOthers(const String&, float, float);
388 AnimationState GetAnimationState(StringHash) const;
389 AnimationState GetAnimationState(const String&) const;
390 Variant GetAttribute(const String&) const;
391 ValueAnimation GetAttributeAnimation(const String&) const;
392 float GetAttributeAnimationSpeed(const String&) const;
393 float GetAttributeAnimationTime(const String&) const;
394 WrapMode GetAttributeAnimationWrapMode(const String&) const;
395 Variant GetAttributeDefault(const String&) const;
396 float GetAutoFade(const String&) const;
397 AnimationBlendMode GetBlendMode(const String&) const;
398 float GetFadeTarget(const String&) const;
399 float GetFadeTime(const String&) const;
400 bool GetInterceptNetworkUpdate(const String&) const;
401 uint8 GetLayer(const String&) const;
402 float GetLength(const String&) const;
403 bool GetLooped(const String&) const;
404 bool GetRemoveOnCompletion(const String&);
405 float GetSpeed(const String&) const;
406 float GetTime(const String&) const;
407 float GetWeight(const String&) const;
408 bool HasSubscribedToEvent(Object, const String&);
409 bool HasSubscribedToEvent(const String&);
410 bool IsAtEnd(const String&) const;
411 bool IsFadingIn(const String&) const;
412 bool IsFadingOut(const String&) const;
413 bool IsPlaying(const String&) const;
414 bool IsPlaying(uint8) const;
415 bool Load(File, bool = false);
416 bool Load(VectorBuffer&, bool = false);
417 bool LoadJSON(const JSONValue&, bool = false);
418 bool LoadXML(const XMLElement&, bool = false);
419 void MarkNetworkUpdate() const;
420 bool Play(const String&, uint8, bool, float = 0.0f);
421 bool PlayExclusive(const String&, uint8, bool, float = 0.0f);
422 void Remove();
423 void RemoveAttributeAnimation(const String&);
424 void RemoveInstanceDefault();
425 void RemoveObjectAnimation();
426 void ResetToDefault();
427 bool Save(File) const;
428 bool Save(VectorBuffer&) const;
429 bool SaveJSON(JSONValue&) const;
430 bool SaveXML(XMLElement&) const;
431 void SendEvent(const String&, VariantMap& = VariantMap ( ));
432 void SetAnimationTime(float);
433 bool SetAttribute(const String&, const Variant&);
434 void SetAttributeAnimation(const String&, ValueAnimation, WrapMode = WM_LOOP, float = 1.0f);
435 void SetAttributeAnimationSpeed(const String&, float);
436 void SetAttributeAnimationTime(const String&, float);
437 void SetAttributeAnimationWrapMode(const String&, WrapMode);
438 bool SetAutoFade(const String&, float);
439 bool SetBlendMode(const String&, AnimationBlendMode);
440 void SetInterceptNetworkUpdate(const String&, bool);
441 bool SetLayer(const String&, uint8);
442 bool SetLooped(const String&, bool);
443 bool SetRemoveOnCompletion(const String&, bool);
444 bool SetSpeed(const String&, float);
445 bool SetStartBone(const String&, const String&);
446 bool SetTime(const String&, float);
447 bool SetWeight(const String&, float);
448 void Stop(const String&, float = 0.0f);
449 void StopAll(float = 0.0f);
450 void StopLayer(uint8, float = 0.0f);
451 const String& GetStartBone(const String&) const;
452 
453 // Properties:
454 bool animationEnabled;
455 /* readonly */
456 Array<AnimationControl> animations;
457 /* readonly */
458 Array<Variant> attributeDefaults;
459 /* readonly */
460 Array<AttributeInfo> attributeInfos;
461 Array<Variant> attributes;
462 /* readonly */
463 String category;
464 bool enabled;
465 /* readonly */
466 bool enabledEffective;
467 /* readonly */
468 uint id;
469 /* readonly */
470 Node node;
471 /* readonly */
472 uint numAnimations;
473 /* readonly */
474 uint numAttributes;
475 ObjectAnimation objectAnimation;
476 /* readonly */
477 int refs;
478 bool temporary;
479 /* readonly */
480 StringHash type;
481 /* readonly */
482 String typeName;
483 /* readonly */
484 int weakRefs;
485 };
486 
487 class AnimationKeyFrame
488 {
489 public:
490 ~AnimationKeyFrame();
491 AnimationKeyFrame();
492 AnimationKeyFrame(const AnimationKeyFrame&in);
493 
494 // Properties:
495 Vector3 position;
496 Quaternion rotation;
497 Vector3 scale;
498 float time;
499 };
500 
501 class AnimationSet2D
502 {
503 public:
504 AnimationSet2D();
505 AnimationSet2D(const String&in);
506 // Methods:
507 String GetAnimation(uint) const;
508 bool HasSubscribedToEvent(Object, const String&);
509 bool HasSubscribedToEvent(const String&);
510 bool Load(File);
511 bool Load(VectorBuffer&);
512 bool Load(const String&);
513 bool Save(File) const;
514 bool Save(VectorBuffer&) const;
515 bool Save(const String&) const;
516 void SendEvent(const String&, VariantMap& = VariantMap ( ));
517 
518 // Properties:
519 /* readonly */
520 String category;
521 /* readonly */
522 uint memoryUse;
523 String name;
524 /* readonly */
525 uint numAnimations;
526 /* readonly */
527 int refs;
528 /* readonly */
529 StringHash type;
530 /* readonly */
531 String typeName;
532 /* readonly */
533 uint useTimer;
534 /* readonly */
535 int weakRefs;
536 };
537 
538 class AnimationState
539 {
540 public:
541 AnimationState(Node&, Animation&);
542 // Methods:
543 void AddTime(float);
544 void AddWeight(float);
545 void Apply();
546 float GetBoneWeight(StringHash) const;
547 float GetBoneWeight(uint) const;
548 uint GetTrackIndex(StringHash) const;
549 uint GetTrackIndex(const String&) const;
550 void SetBoneWeight(StringHash, float, bool = false);
551 void SetBoneWeight(const String&, float, bool = false);
552 void SetBoneWeight(uint, float, bool = false);
553 
554 // Properties:
555 /* readonly */
556 Animation animation;
557 AnimationBlendMode blendMode;
558 Array<float> boneWeights;
559 /* readonly */
560 bool enabled;
561 uint8 layer;
562 /* readonly */
563 float length;
564 bool looped;
565 /* readonly */
566 AnimatedModel model;
567 /* readonly */
568 Node node;
569 /* readonly */
570 int refs;
571 Bone startBone;
572 float time;
573 /* readonly */
574 int weakRefs;
575 float weight;
576 };
577 
578 class AnimationTrack
579 {
580 public:
581 // Methods:
582 void AddKeyFrame(const AnimationKeyFrame&);
583 void InsertKeyFrame(uint, const AnimationKeyFrame&);
584 void RemoveAllKeyFrames();
585 void RemoveKeyFrame(uint);
586 
587 // Properties:
588 uint8 channelMask;
589 Array<AnimationKeyFrame> keyFrames;
590 String name;
591 StringHash nameHash;
592 /* readonly */
593 uint numKeyFrames;
594 };
595 
596 class AnimationTriggerPoint
597 {
598 public:
599 ~AnimationTriggerPoint();
600 AnimationTriggerPoint();
601 AnimationTriggerPoint(const AnimationTriggerPoint&in);
602 
603 // Properties:
604 Variant data;
605 float time;
606 };
607 
608 template <class T>
609 class Array
610 {
611 public:
612 Array(int&in);
613 Array(int&in, uint);
614 Array(int&in, uint, const T&in);
615 // Methods:
616 void Clear();
617 void Erase(uint);
618 int Find(const T&) const;
619 int Find(uint, const T&) const;
620 int FindByRef(const T&) const;
621 int FindByRef(uint, const T&) const;
622 void Insert(uint, const T&);
623 void Pop();
624 void Push(const T&);
625 void Reserve(uint);
626 void Resize(uint);
627 void Reverse();
628 void Sort();
629 void Sort(uint, uint);
630 void SortReverse();
631 void SortReverse(uint, uint);
632 
633 // Properties:
634 /* readonly */
635 bool empty;
636 uint length;
637 };
638 
639 class AttributeInfo
640 {
641 public:
642 ~AttributeInfo();
643 AttributeInfo();
644 AttributeInfo(const AttributeInfo&in);
645 
646 // Properties:
647 Variant defaultValue;
648 /* readonly */
649 Array<String> enumNames;
650 uint mode;
651 String name;
652 VariantType type;
653 /* readonly */
654 Array<String> variantStructureElementNames;
655 };
656 
657 class Audio
658 {
659 public:
660 // Methods:
661 bool HasMasterGain(const String&) const;
662 bool HasSubscribedToEvent(Object, const String&);
663 bool HasSubscribedToEvent(const String&);
664 bool IsSoundTypePaused(const String&);
665 void PauseSoundType(const String&);
666 bool Play();
667 void ResumeAll();
668 void ResumeSoundType(const String&);
669 void SendEvent(const String&, VariantMap& = VariantMap ( ));
670 void SetMode(int, int, bool, bool = true);
671 void Stop();
672 
673 // Properties:
674 /* readonly */
675 String category;
676 /* readonly */
677 bool initialized;
678 /* readonly */
679 bool interpolation;
680 SoundListener listener;
681 Array<float> masterGain;
682 /* readonly */
683 int mixRate;
684 /* readonly */
685 bool playing;
686 /* readonly */
687 int refs;
688 /* readonly */
689 uint sampleSize;
690 /* readonly */
691 bool stereo;
692 /* readonly */
693 StringHash type;
694 /* readonly */
695 String typeName;
696 /* readonly */
697 int weakRefs;
698 };
699 
700 class BiasParameters
701 {
702 public:
703 BiasParameters();
704 BiasParameters(const BiasParameters&in);
705 BiasParameters(float, float, float normalOffset = 0.0f);
706 
707 // Properties:
708 float constantBias;
709 float normalOffset;
710 float slopeScaledBias;
711 };
712 
713 class Billboard
714 {
715 public:
716 
717 // Properties:
718 Color color;
719 Vector3 direction;
720 bool enabled;
721 Vector3 position;
722 float rotation;
723 Vector2 size;
724 Rect uv;
725 };
726 
727 class BillboardSet
728 {
729 public:
730 // Methods:
731 void ApplyAttributes();
732 void Commit();
733 void DrawDebugGeometry(DebugRenderer, bool);
734 Variant GetAttribute(const String&) const;
735 ValueAnimation GetAttributeAnimation(const String&) const;
736 float GetAttributeAnimationSpeed(const String&) const;
737 float GetAttributeAnimationTime(const String&) const;
738 WrapMode GetAttributeAnimationWrapMode(const String&) const;
739 Variant GetAttributeDefault(const String&) const;
740 bool GetInterceptNetworkUpdate(const String&) const;
741 bool HasSubscribedToEvent(Object, const String&);
742 bool HasSubscribedToEvent(const String&);
743 bool IsInView(Camera) const;
744 bool Load(File, bool = false);
745 bool Load(VectorBuffer&, bool = false);
746 bool LoadJSON(const JSONValue&, bool = false);
747 bool LoadXML(const XMLElement&, bool = false);
748 void MarkNetworkUpdate() const;
749 void Remove();
750 void RemoveAttributeAnimation(const String&);
751 void RemoveInstanceDefault();
752 void RemoveObjectAnimation();
753 void ResetToDefault();
754 bool Save(File) const;
755 bool Save(VectorBuffer&) const;
756 bool SaveJSON(JSONValue&) const;
757 bool SaveXML(XMLElement&) const;
758 void SendEvent(const String&, VariantMap& = VariantMap ( ));
759 void SetAnimationTime(float);
760 bool SetAttribute(const String&, const Variant&);
761 void SetAttributeAnimation(const String&, ValueAnimation, WrapMode = WM_LOOP, float = 1.0f);
762 void SetAttributeAnimationSpeed(const String&, float);
763 void SetAttributeAnimationTime(const String&, float);
764 void SetAttributeAnimationWrapMode(const String&, WrapMode);
765 void SetInterceptNetworkUpdate(const String&, bool);
766 
767 // Properties:
768 bool animationEnabled;
769 float animationLodBias;
770 /* readonly */
771 Array<Variant> attributeDefaults;
772 /* readonly */
773 Array<AttributeInfo> attributeInfos;
774 Array<Variant> attributes;
775 /* readonly */
776 Array<Billboard> billboards;
777 /* readonly */
778 BoundingBox boundingBox;
779 bool castShadows;
780 /* readonly */
781 String category;
782 float drawDistance;
783 bool enabled;
784 /* readonly */
785 bool enabledEffective;
786 FaceCameraMode faceCameraMode;
787 bool fixedScreenSize;
788 /* readonly */
789 uint id;
790 /* readonly */
791 bool inView;
792 uint lightMask;
793 float lodBias;
794 Material material;
795 uint maxLights;
796 float minAngle;
797 /* readonly */
798 Node node;
799 /* readonly */
800 uint numAttributes;
801 uint numBillboards;
802 ObjectAnimation objectAnimation;
803 bool occludee;
804 bool occluder;
805 /* readonly */
806 int refs;
807 bool relative;
808 bool scaled;
809 float shadowDistance;
810 uint shadowMask;
811 bool sorted;
812 bool temporary;
813 /* readonly */
814 StringHash type;
815 /* readonly */
816 String typeName;
817 uint viewMask;
818 /* readonly */
819 int weakRefs;
820 /* readonly */
821 BoundingBox worldBoundingBox;
822 /* readonly */
823 Zone zone;
824 uint zoneMask;
825 };
826 
827 class Bone
828 {
829 public:
830 
831 // Properties:
832 bool animated;
833 BoundingBox boundingBox;
834 Vector3 initialPosition;
835 Quaternion initialRotation;
836 Vector3 initialScale;
837 String name;
838 Node node;
839 float radius;
840 };
841 
842 class BorderImage
843 {
844 public:
845 BorderImage();
846 BorderImage(const String&in);
847 // Methods:
848 void AddChild(UIElement);
849 void AddTag(const String&);
850 void AddTags(const String&, int8 = ';');
851 void ApplyAttributes();
852 void BringToFront();
853 UIElement CreateChild(const String&, const String& = String ( ), uint = M_MAX_UNSIGNED);
854 void DisableLayoutUpdate();
855 IntVector2 ElementToScreen(const IntVector2&);
856 void EnableLayoutUpdate();
857 uint FindChild(UIElement) const;
858 Variant GetAttribute(const String&) const;
859 ValueAnimation GetAttributeAnimation(const String&) const;
860 float GetAttributeAnimationSpeed(const String&) const;
861 float GetAttributeAnimationTime(const String&) const;
862 WrapMode GetAttributeAnimationWrapMode(const String&) const;
863 Variant GetAttributeDefault(const String&) const;
864 UIElement GetChild(const String&, bool = false) const;
865 UIElement GetChild(const StringHash&, const Variant& = Variant ( ), bool = false) const;
866 Array<UIElement> GetChildren(bool = false) const;
867 Array<UIElement> GetChildrenWithTag(const String&, bool = false) const;
868 UIElement GetElementEventSender() const;
869 bool GetInterceptNetworkUpdate(const String&) const;
870 uint GetNumChildren(bool) const;
871 bool HasSubscribedToEvent(Object, const String&);
872 bool HasSubscribedToEvent(const String&);
873 bool HasTag(const String&) const;
874 void InsertChild(uint, UIElement);
875 bool IsInside(IntVector2, bool);
876 bool IsInsideCombined(IntVector2, bool);
877 bool Load(File, bool = false);
878 bool Load(VectorBuffer&, bool = false);
879 UIElement LoadChildXML(XMLFile, XMLFile = null);
880 UIElement LoadChildXML(const XMLElement&, XMLFile = null, bool = false);
881 bool LoadJSON(const JSONValue&, bool = false);
882 bool LoadXML(File);
883 bool LoadXML(VectorBuffer&);
884 bool LoadXML(XMLFile, XMLFile);
885 bool LoadXML(const XMLElement&, XMLFile, bool = false);
886 bool LoadXML(const XMLElement&, bool = false);
887 void MarkNetworkUpdate() const;
888 void Remove();
889 void RemoveAllChildren();
890 void RemoveAllTags();
891 void RemoveAttributeAnimation(const String&);
892 void RemoveChild(UIElement, uint = 0);
893 void RemoveChild(uint);
894 void RemoveInstanceDefault();
895 void RemoveObjectAnimation();
896 bool RemoveTag(const String&);
897 void ResetDeepEnabled();
898 void ResetToDefault();
899 bool Save(File) const;
900 bool Save(VectorBuffer&) const;
901 bool SaveJSON(JSONValue&) const;
902 bool SaveXML(File, const String& = "\t");
903 bool SaveXML(VectorBuffer&, const String& = "\t");
904 bool SaveXML(XMLElement&) const;
905 IntVector2 ScreenToElement(const IntVector2&);
906 void SendEvent(const String&, VariantMap& = VariantMap ( ));
907 void SetAlignment(HorizontalAlignment, VerticalAlignment);
908 void SetAnimationTime(float);
909 bool SetAttribute(const String&, const Variant&);
910 void SetAttributeAnimation(const String&, ValueAnimation, WrapMode = WM_LOOP, float = 1.0f);
911 void SetAttributeAnimationSpeed(const String&, float);
912 void SetAttributeAnimationTime(const String&, float);
913 void SetAttributeAnimationWrapMode(const String&, WrapMode);
914 void SetDeepEnabled(bool);
915 void SetEnabledRecursive(bool);
916 void SetFixedHeight(int);
917 void SetFixedSize(int, int);
918 void SetFixedWidth(int);
919 void SetFullImageRect();
920 void SetHoverOffset(int, int);
921 void SetInterceptNetworkUpdate(const String&, bool);
922 void SetLayout(LayoutMode, int = 0, const IntRect& = IntRect ( 0 , 0 , 0 , 0 ));
923 void SetMaxAnchor(float, float);
924 void SetMaxSize(int, int);
925 void SetMinAnchor(float, float);
926 void SetMinSize(int, int);
927 void SetParent(UIElement, uint = M_MAX_UNSIGNED);
928 void SetPivot(float, float);
929 void SetPosition(int, int);
930 void SetSize(int, int);
931 bool SetStyle(const String&, XMLFile = null);
932 bool SetStyle(const XMLElement&);
933 bool SetStyleAuto(XMLFile = null);
934 void UpdateLayout();
935 const Variant& GetVar(const StringHash&);
936 
937 // Properties:
938 bool animationEnabled;
939 /* readonly */
940 Array<Variant> attributeDefaults;
941 /* readonly */
942 Array<AttributeInfo> attributeInfos;
943 Array<Variant> attributes;
944 BlendMode blendMode;
945 IntRect border;
946 bool bringToBack;
947 bool bringToFront;
948 /* readonly */
949 String category;
950 /* readonly */
951 IntVector2 childOffset;
952 /* readonly */
953 Array<UIElement> children;
954 IntRect clipBorder;
955 bool clipChildren;
956 /* writeonly */
957 Color color;
958 /* readonly */
959 bool colorGradient;
960 Array<Color> colors;
961 /* readonly */
962 IntRect combinedScreenRect;
963 XMLFile defaultStyle;
964 /* readonly */
965 float derivedOpacity;
966 /* readonly */
967 uint dragButtonCombo;
968 /* readonly */
969 int dragButtonCount;
970 uint dragDropMode;
971 bool editable;
972 bool elementEventSender;
973 bool enableAnchor;
974 bool enabled;
975 /* readonly */
976 bool enabledSelf;
977 /* readonly */
978 bool fixedHeight;
979 /* readonly */
980 bool fixedSize;
981 /* readonly */
982 bool fixedWidth;
983 bool focus;
984 FocusMode focusMode;
985 int height;
986 HorizontalAlignment horizontalAlignment;
987 IntVector2 hoverOffset;
988 /* readonly */
989 bool hovering;
990 IntRect imageBorder;
991 IntRect imageRect;
992 int indent;
993 int indentSpacing;
994 /* readonly */
995 int indentWidth;
996 bool internal;
997 IntRect layoutBorder;
998 Vector2 layoutFlexScale;
999 LayoutMode layoutMode;
1000 int layoutSpacing;
1001 Vector2 maxAnchor;
1002 int maxHeight;
1003 IntVector2 maxOffset;
1004 IntVector2 maxSize;
1005 int maxWidth;
1006 Vector2 minAnchor;
1007 int minHeight;
1008 IntVector2 minOffset;
1009 IntVector2 minSize;
1010 int minWidth;
1011 String name;
1012 /* readonly */
1013 uint numAllChildren;
1014 /* readonly */
1015 uint numAttributes;
1016 /* readonly */
1017 uint numChildren;
1018 ObjectAnimation objectAnimation;
1019 float opacity;
1020 UIElement parent;
1021 Vector2 pivot;
1022 IntVector2 position;
1023 int priority;
1024 /* readonly */
1025 int refs;
1026 /* readonly */
1027 UIElement root;
1028 /* readonly */
1029 IntVector2 screenPosition;
1030 bool selected;
1031 IntVector2 size;
1032 bool sortChildren;
1033 String style;
1034 /* readonly */
1035 Array<String> tags;
1036 bool temporary;
1037 Texture texture;
1038 bool tiled;
1039 TraversalMode traversalMode;
1040 /* readonly */
1041 StringHash type;
1042 /* readonly */
1043 String typeName;
1044 bool useDerivedOpacity;
1045 /* readonly */
1046 VariantMap vars;
1047 VerticalAlignment verticalAlignment;
1048 bool visible;
1049 /* readonly */
1050 bool visibleEffective;
1051 /* readonly */
1052 int weakRefs;
1053 int width;
1054 };
1055 
1056 class BoundingBox
1057 {
1058 public:
1059 BoundingBox();
1060 BoundingBox(const BoundingBox&in);
1061 BoundingBox(const Rect&in);
1062 BoundingBox(const Vector3&in, const Vector3&in);
1063 BoundingBox(float, float);
1064 BoundingBox(const Frustum&in);
1065 BoundingBox(const Polyhedron&in);
1066 BoundingBox(const Sphere&in);
1067 // Methods:
1068 void Clear();
1069 void Clip(const BoundingBox&);
1070 void Define(const BoundingBox&);
1071 void Define(const Frustum&);
1072 void Define(const Polyhedron&);
1073 void Define(const Sphere&);
1074 void Define(const Vector3&);
1075 void Define(const Vector3&, const Vector3&);
1076 void Define(float, float);
1077 bool Defined() const;
1078 float DistanceToPoint(const Vector3&) const;
1079 Intersection IsInside(const BoundingBox&) const;
1080 Intersection IsInside(const Sphere&) const;
1081 Intersection IsInside(const Vector3&) const;
1082 Intersection IsInsideFast(const BoundingBox&) const;
1083 Intersection IsInsideFast(const Sphere&) const;
1084 void Merge(const BoundingBox&);
1085 void Merge(const Frustum&);
1086 void Merge(const Polyhedron&);
1087 void Merge(const Sphere&);
1088 void Merge(const Vector3&);
1089 Rect Projected(const Matrix4&) const;
1090 String ToString() const;
1091 void Transform(const Matrix3&);
1092 void Transform(const Matrix3x4&);
1093 BoundingBox Transformed(const Matrix3&) const;
1094 BoundingBox Transformed(const Matrix3x4&) const;
1095 
1096 // Properties:
1097 /* readonly */
1098 Vector3 center;
1099 /* readonly */
1100 Vector3 halfSize;
1101 Vector3 max;
1102 Vector3 min;
1103 /* readonly */
1104 Vector3 size;
1105 };
1106 
1107 class Button
1108 {
1109 public:
1110 Button();
1111 Button(const String&in);
1112 // Methods:
1113 void AddChild(UIElement);
1114 void AddTag(const String&);
1115 void AddTags(const String&, int8 = ';');
1116 void ApplyAttributes();
1117 void BringToFront();
1118 UIElement CreateChild(const String&, const String& = String ( ), uint = M_MAX_UNSIGNED);
1119 void DisableLayoutUpdate();
1120 IntVector2 ElementToScreen(const IntVector2&);
1121 void EnableLayoutUpdate();
1122 uint FindChild(UIElement) const;
1123 Variant GetAttribute(const String&) const;
1124 ValueAnimation GetAttributeAnimation(const String&) const;
1125 float GetAttributeAnimationSpeed(const String&) const;
1126 float GetAttributeAnimationTime(const String&) const;
1127 WrapMode GetAttributeAnimationWrapMode(const String&) const;
1128 Variant GetAttributeDefault(const String&) const;
1129 UIElement GetChild(const String&, bool = false) const;
1130 UIElement GetChild(const StringHash&, const Variant& = Variant ( ), bool = false) const;
1131 Array<UIElement> GetChildren(bool = false) const;
1132 Array<UIElement> GetChildrenWithTag(const String&, bool = false) const;
1133 UIElement GetElementEventSender() const;
1134 bool GetInterceptNetworkUpdate(const String&) const;
1135 uint GetNumChildren(bool) const;
1136 bool HasSubscribedToEvent(Object, const String&);
1137 bool HasSubscribedToEvent(const String&);
1138 bool HasTag(const String&) const;
1139 void InsertChild(uint, UIElement);
1140 bool IsInside(IntVector2, bool);
1141 bool IsInsideCombined(IntVector2, bool);
1142 bool Load(File, bool = false);
1143 bool Load(VectorBuffer&, bool = false);
1144 UIElement LoadChildXML(XMLFile, XMLFile = null);
1145 UIElement LoadChildXML(const XMLElement&, XMLFile = null, bool = false);
1146 bool LoadJSON(const JSONValue&, bool = false);
1147 bool LoadXML(File);
1148 bool LoadXML(VectorBuffer&);
1149 bool LoadXML(XMLFile, XMLFile);
1150 bool LoadXML(const XMLElement&, XMLFile, bool = false);
1151 bool LoadXML(const XMLElement&, bool = false);
1152 void MarkNetworkUpdate() const;
1153 void Remove();
1154 void RemoveAllChildren();
1155 void RemoveAllTags();
1156 void RemoveAttributeAnimation(const String&);
1157 void RemoveChild(UIElement, uint = 0);
1158 void RemoveChild(uint);
1159 void RemoveInstanceDefault();
1160 void RemoveObjectAnimation();
1161 bool RemoveTag(const String&);
1162 void ResetDeepEnabled();
1163 void ResetToDefault();
1164 bool Save(File) const;
1165 bool Save(VectorBuffer&) const;
1166 bool SaveJSON(JSONValue&) const;
1167 bool SaveXML(File, const String& = "\t");
1168 bool SaveXML(VectorBuffer&, const String& = "\t");
1169 bool SaveXML(XMLElement&) const;
1170 IntVector2 ScreenToElement(const IntVector2&);
1171 void SendEvent(const String&, VariantMap& = VariantMap ( ));
1172 void SetAlignment(HorizontalAlignment, VerticalAlignment);
1173 void SetAnimationTime(float);
1174 bool SetAttribute(const String&, const Variant&);
1175 void SetAttributeAnimation(const String&, ValueAnimation, WrapMode = WM_LOOP, float = 1.0f);
1176 void SetAttributeAnimationSpeed(const String&, float);
1177 void SetAttributeAnimationTime(const String&, float);
1178 void SetAttributeAnimationWrapMode(const String&, WrapMode);
1179 void SetDeepEnabled(bool);
1180 void SetEnabledRecursive(bool);
1181 void SetFixedHeight(int);
1182 void SetFixedSize(int, int);
1183 void SetFixedWidth(int);
1184 void SetFullImageRect();
1185 void SetHoverOffset(int, int);
1186 void SetInterceptNetworkUpdate(const String&, bool);
1187 void SetLayout(LayoutMode, int = 0, const IntRect& = IntRect ( 0 , 0 , 0 , 0 ));
1188 void SetMaxAnchor(float, float);
1189 void SetMaxSize(int, int);
1190 void SetMinAnchor(float, float);
1191 void SetMinSize(int, int);
1192 void SetParent(UIElement, uint = M_MAX_UNSIGNED);
1193 void SetPivot(float, float);
1194 void SetPosition(int, int);
1195 void SetPressedChildOffset(int, int);
1196 void SetPressedOffset(int, int);
1197 void SetRepeat(float, float);
1198 void SetSize(int, int);
1199 bool SetStyle(const String&, XMLFile = null);
1200 bool SetStyle(const XMLElement&);
1201 bool SetStyleAuto(XMLFile = null);
1202 void UpdateLayout();
1203 const Variant& GetVar(const StringHash&);
1204 
1205 // Properties:
1206 bool animationEnabled;
1207 /* readonly */
1208 Array<Variant> attributeDefaults;
1209 /* readonly */
1210 Array<AttributeInfo> attributeInfos;
1211 Array<Variant> attributes;
1212 BlendMode blendMode;
1213 IntRect border;
1214 bool bringToBack;
1215 bool bringToFront;
1216 /* readonly */
1217 String category;
1218 /* readonly */
1219 IntVector2 childOffset;
1220 /* readonly */
1221 Array<UIElement> children;
1222 IntRect clipBorder;
1223 bool clipChildren;
1224 /* writeonly */
1225 Color color;
1226 /* readonly */
1227 bool colorGradient;
1228 Array<Color> colors;
1229 /* readonly */
1230 IntRect combinedScreenRect;
1231 XMLFile defaultStyle;
1232 /* readonly */
1233 float derivedOpacity;
1234 /* readonly */
1235 uint dragButtonCombo;
1236 /* readonly */
1237 int dragButtonCount;
1238 uint dragDropMode;
1239 bool editable;
1240 bool elementEventSender;
1241 bool enableAnchor;
1242 bool enabled;
1243 /* readonly */
1244 bool enabledSelf;
1245 /* readonly */
1246 bool fixedHeight;
1247 /* readonly */
1248 bool fixedSize;
1249 /* readonly */
1250 bool fixedWidth;
1251 bool focus;
1252 FocusMode focusMode;
1253 int height;
1254 HorizontalAlignment horizontalAlignment;
1255 IntVector2 hoverOffset;
1256 /* readonly */
1257 bool hovering;
1258 IntRect imageBorder;
1259 IntRect imageRect;
1260 int indent;
1261 int indentSpacing;
1262 /* readonly */
1263 int indentWidth;
1264 bool internal;
1265 IntRect layoutBorder;
1266 Vector2 layoutFlexScale;
1267 LayoutMode layoutMode;
1268 int layoutSpacing;
1269 Vector2 maxAnchor;
1270 int maxHeight;
1271 IntVector2 maxOffset;
1272 IntVector2 maxSize;
1273 int maxWidth;
1274 Vector2 minAnchor;
1275 int minHeight;
1276 IntVector2 minOffset;
1277 IntVector2 minSize;
1278 int minWidth;
1279 String name;
1280 /* readonly */
1281 uint numAllChildren;
1282 /* readonly */
1283 uint numAttributes;
1284 /* readonly */
1285 uint numChildren;
1286 ObjectAnimation objectAnimation;
1287 float opacity;
1288 UIElement parent;
1289 Vector2 pivot;
1290 IntVector2 position;
1291 /* readonly */
1292 bool pressed;
1293 IntVector2 pressedChildOffset;
1294 IntVector2 pressedOffset;
1295 int priority;
1296 /* readonly */
1297 int refs;
1298 float repeatDelay;
1299 float repeatRate;
1300 /* readonly */
1301 UIElement root;
1302 /* readonly */
1303 IntVector2 screenPosition;
1304 bool selected;
1305 IntVector2 size;
1306 bool sortChildren;
1307 String style;
1308 /* readonly */
1309 Array<String> tags;
1310 bool temporary;
1311 Texture texture;
1312 bool tiled;
1313 TraversalMode traversalMode;
1314 /* readonly */
1315 StringHash type;
1316 /* readonly */
1317 String typeName;
1318 bool useDerivedOpacity;
1319 /* readonly */
1320 VariantMap vars;
1321 VerticalAlignment verticalAlignment;
1322 bool visible;
1323 /* readonly */
1324 bool visibleEffective;
1325 /* readonly */
1326 int weakRefs;
1327 int width;
1328 };
1329 
1330 class Camera
1331 {
1332 public:
1333 // Methods:
1334 void ApplyAttributes();
1335 void DrawDebugGeometry(DebugRenderer, bool);
1336 Variant GetAttribute(const String&) const;
1337 ValueAnimation GetAttributeAnimation(const String&) const;
1338 float GetAttributeAnimationSpeed(const String&) const;
1339 float GetAttributeAnimationTime(const String&) const;
1340 WrapMode GetAttributeAnimationWrapMode(const String&) const;
1341 Variant GetAttributeDefault(const String&) const;
1342 float GetDistance(const Vector3&) const;
1343 float GetDistanceSquared(const Vector3&) const;
1344 bool GetInterceptNetworkUpdate(const String&) const;
1345 Ray GetScreenRay(float, float) const;
1346 Frustum GetSplitFrustum(float, float) const;
1347 bool HasSubscribedToEvent(Object, const String&);
1348 bool HasSubscribedToEvent(const String&);
1349 bool Load(File, bool = false);
1350 bool Load(VectorBuffer&, bool = false);
1351 bool LoadJSON(const JSONValue&, bool = false);
1352 bool LoadXML(const XMLElement&, bool = false);
1353 void MarkNetworkUpdate() const;
1354 void Remove();
1355 void RemoveAttributeAnimation(const String&);
1356 void RemoveInstanceDefault();
1357 void RemoveObjectAnimation();
1358 void ResetToDefault();
1359 bool Save(File) const;
1360 bool Save(VectorBuffer&) const;
1361 bool SaveJSON(JSONValue&) const;
1362 bool SaveXML(XMLElement&) const;
1363 Vector3 ScreenToWorldPoint(const Vector3&) const;
1364 void SendEvent(const String&, VariantMap& = VariantMap ( ));
1365 void SetAnimationTime(float);
1366 bool SetAttribute(const String&, const Variant&);
1367 void SetAttributeAnimation(const String&, ValueAnimation, WrapMode = WM_LOOP, float = 1.0f);
1368 void SetAttributeAnimationSpeed(const String&, float);
1369 void SetAttributeAnimationTime(const String&, float);
1370 void SetAttributeAnimationWrapMode(const String&, WrapMode);
1371 void SetInterceptNetworkUpdate(const String&, bool);
1372 void SetOrthoSize(const Vector2&);
1373 Vector2 WorldToScreenPoint(const Vector3&) const;
1374 
1375 // Properties:
1376 bool animationEnabled;
1377 float aspectRatio;
1378 /* readonly */
1379 Array<Variant> attributeDefaults;
1380 /* readonly */
1381 Array<AttributeInfo> attributeInfos;
1382 Array<Variant> attributes;
1383 bool autoAspectRatio;
1384 /* readonly */
1385 String category;
1386 Plane clipPlane;
1387 /* readonly */
1388 Matrix3x4 effectiveWorldTransform;
1389 bool enabled;
1390 /* readonly */
1391 bool enabledEffective;
1392 float farClip;
1393 FillMode fillMode;
1394 float fov;
1395 /* readonly */
1396 Frustum frustum;
1397 /* readonly */
1398 Matrix4 gpuProjection;
1399 /* readonly */
1400 float halfViewSize;
1401 /* readonly */
1402 uint id;
1403 float lodBias;
1404 float nearClip;
1405 /* readonly */
1406 Node node;
1407 /* readonly */
1408 uint numAttributes;
1409 ObjectAnimation objectAnimation;
1410 float orthoSize;
1411 bool orthographic;
1412 Matrix4 projection;
1413 Vector2 projectionOffset;
1414 Plane reflectionPlane;
1415 /* readonly */
1416 int refs;
1417 bool temporary;
1418 /* readonly */
1419 StringHash type;
1420 /* readonly */
1421 String typeName;
1422 bool useClipping;
1423 bool useReflection;
1424 /* readonly */
1425 Matrix3x4 view;
1426 uint viewMask;
1427 uint viewOverrideFlags;
1428 /* readonly */
1429 Frustum viewSpaceFrustum;
1430 /* readonly */
1431 int weakRefs;
1432 float zoom;
1433 };
1434 
1435 class CascadeParameters
1436 {
1437 public:
1438 CascadeParameters();
1439 CascadeParameters(const CascadeParameters&in);
1440 CascadeParameters(float, float, float, float, float, float biasAutoAdjust = 1.0);
1441 
1442 // Properties:
1443 float biasAutoAdjust;
1444 float fadeStart;
1445 float split1;
1446 float split2;
1447 float split3;
1448 float split4;
1449 };
1450 
1451 class CheckBox
1452 {
1453 public:
1454 CheckBox();
1455 CheckBox(const String&in);
1456 // Methods:
1457 void AddChild(UIElement);
1458 void AddTag(const String&);
1459 void AddTags(const String&, int8 = ';');
1460 void ApplyAttributes();
1461 void BringToFront();
1462 UIElement CreateChild(const String&, const String& = String ( ), uint = M_MAX_UNSIGNED);
1463 void DisableLayoutUpdate();
1464 IntVector2 ElementToScreen(const IntVector2&);
1465 void EnableLayoutUpdate();
1466 uint FindChild(UIElement) const;
1467 Variant GetAttribute(const String&) const;
1468 ValueAnimation GetAttributeAnimation(const String&) const;
1469 float GetAttributeAnimationSpeed(const String&) const;
1470 float GetAttributeAnimationTime(const String&) const;
1471 WrapMode GetAttributeAnimationWrapMode(const String&) const;
1472 Variant GetAttributeDefault(const String&) const;
1473 UIElement GetChild(const String&, bool = false) const;
1474 UIElement GetChild(const StringHash&, const Variant& = Variant ( ), bool = false) const;
1475 Array<UIElement> GetChildren(bool = false) const;
1476 Array<UIElement> GetChildrenWithTag(const String&, bool = false) const;
1477 UIElement GetElementEventSender() const;
1478 bool GetInterceptNetworkUpdate(const String&) const;
1479 uint GetNumChildren(bool) const;
1480 bool HasSubscribedToEvent(Object, const String&);
1481 bool HasSubscribedToEvent(const String&);
1482 bool HasTag(const String&) const;
1483 void InsertChild(uint, UIElement);
1484 bool IsInside(IntVector2, bool);
1485 bool IsInsideCombined(IntVector2, bool);
1486 bool Load(File, bool = false);
1487 bool Load(VectorBuffer&, bool = false);
1488 UIElement LoadChildXML(XMLFile, XMLFile = null);
1489 UIElement LoadChildXML(const XMLElement&, XMLFile = null, bool = false);
1490 bool LoadJSON(const JSONValue&, bool = false);
1491 bool LoadXML(File);
1492 bool LoadXML(VectorBuffer&);
1493 bool LoadXML(XMLFile, XMLFile);
1494 bool LoadXML(const XMLElement&, XMLFile, bool = false);
1495 bool LoadXML(const XMLElement&, bool = false);
1496 void MarkNetworkUpdate() const;
1497 void Remove();
1498 void RemoveAllChildren();
1499 void RemoveAllTags();
1500 void RemoveAttributeAnimation(const String&);
1501 void RemoveChild(UIElement, uint = 0);
1502 void RemoveChild(uint);
1503 void RemoveInstanceDefault();
1504 void RemoveObjectAnimation();
1505 bool RemoveTag(const String&);
1506 void ResetDeepEnabled();
1507 void ResetToDefault();
1508 bool Save(File) const;
1509 bool Save(VectorBuffer&) const;
1510 bool SaveJSON(JSONValue&) const;
1511 bool SaveXML(File, const String& = "\t");
1512 bool SaveXML(VectorBuffer&, const String& = "\t");
1513 bool SaveXML(XMLElement&) const;
1514 IntVector2 ScreenToElement(const IntVector2&);
1515 void SendEvent(const String&, VariantMap& = VariantMap ( ));
1516 void SetAlignment(HorizontalAlignment, VerticalAlignment);
1517 void SetAnimationTime(float);
1518 bool SetAttribute(const String&, const Variant&);
1519 void SetAttributeAnimation(const String&, ValueAnimation, WrapMode = WM_LOOP, float = 1.0f);
1520 void SetAttributeAnimationSpeed(const String&, float);
1521 void SetAttributeAnimationTime(const String&, float);
1522 void SetAttributeAnimationWrapMode(const String&, WrapMode);
1523 void SetCheckedOffset(int, int);
1524 void SetDeepEnabled(bool);
1525 void SetEnabledRecursive(bool);
1526 void SetFixedHeight(int);
1527 void SetFixedSize(int, int);
1528 void SetFixedWidth(int);
1529 void SetFullImageRect();
1530 void SetHoverOffset(int, int);
1531 void SetInterceptNetworkUpdate(const String&, bool);
1532 void SetLayout(LayoutMode, int = 0, const IntRect& = IntRect ( 0 , 0 , 0 , 0 ));
1533 void SetMaxAnchor(float, float);
1534 void SetMaxSize(int, int);
1535 void SetMinAnchor(float, float);
1536 void SetMinSize(int, int);
1537 void SetParent(UIElement, uint = M_MAX_UNSIGNED);
1538 void SetPivot(float, float);
1539 void SetPosition(int, int);
1540 void SetSize(int, int);
1541 bool SetStyle(const String&, XMLFile = null);
1542 bool SetStyle(const XMLElement&);
1543 bool SetStyleAuto(XMLFile = null);
1544 void UpdateLayout();
1545 const Variant& GetVar(const StringHash&);
1546 
1547 // Properties:
1548 bool animationEnabled;
1549 /* readonly */
1550 Array<Variant> attributeDefaults;
1551 /* readonly */
1552 Array<AttributeInfo> attributeInfos;
1553 Array<Variant> attributes;
1554 BlendMode blendMode;
1555 IntRect border;
1556 bool bringToBack;
1557 bool bringToFront;
1558 /* readonly */
1559 String category;
1560 bool checked;
1561 IntVector2 checkedOffset;
1562 /* readonly */
1563 IntVector2 childOffset;
1564 /* readonly */
1565 Array<UIElement> children;
1566 IntRect clipBorder;
1567 bool clipChildren;
1568 /* writeonly */
1569 Color color;
1570 /* readonly */
1571 bool colorGradient;
1572 Array<Color> colors;
1573 /* readonly */
1574 IntRect combinedScreenRect;
1575 XMLFile defaultStyle;
1576 /* readonly */
1577 float derivedOpacity;
1578 /* readonly */
1579 uint dragButtonCombo;
1580 /* readonly */
1581 int dragButtonCount;
1582 uint dragDropMode;
1583 bool editable;
1584 bool elementEventSender;
1585 bool enableAnchor;
1586 bool enabled;
1587 /* readonly */
1588 bool enabledSelf;
1589 /* readonly */
1590 bool fixedHeight;
1591 /* readonly */
1592 bool fixedSize;
1593 /* readonly */
1594 bool fixedWidth;
1595 bool focus;
1596 FocusMode focusMode;
1597 int height;
1598 HorizontalAlignment horizontalAlignment;
1599 IntVector2 hoverOffset;
1600 /* readonly */
1601 bool hovering;
1602 IntRect imageBorder;
1603 IntRect imageRect;
1604 int indent;
1605 int indentSpacing;
1606 /* readonly */
1607 int indentWidth;
1608 bool internal;
1609 IntRect layoutBorder;
1610 Vector2 layoutFlexScale;
1611 LayoutMode layoutMode;
1612 int layoutSpacing;
1613 Vector2 maxAnchor;
1614 int maxHeight;
1615 IntVector2 maxOffset;
1616 IntVector2 maxSize;
1617 int maxWidth;
1618 Vector2 minAnchor;
1619 int minHeight;
1620 IntVector2 minOffset;
1621 IntVector2 minSize;
1622 int minWidth;
1623 String name;
1624 /* readonly */
1625 uint numAllChildren;
1626 /* readonly */
1627 uint numAttributes;
1628 /* readonly */
1629 uint numChildren;
1630 ObjectAnimation objectAnimation;
1631 float opacity;
1632 UIElement parent;
1633 Vector2 pivot;
1634 IntVector2 position;
1635 int priority;
1636 /* readonly */
1637 int refs;
1638 /* readonly */
1639 UIElement root;
1640 /* readonly */
1641 IntVector2 screenPosition;
1642 bool selected;
1643 IntVector2 size;
1644 bool sortChildren;
1645 String style;
1646 /* readonly */
1647 Array<String> tags;
1648 bool temporary;
1649 Texture texture;
1650 bool tiled;
1651 TraversalMode traversalMode;
1652 /* readonly */
1653 StringHash type;
1654 /* readonly */
1655 String typeName;
1656 bool useDerivedOpacity;
1657 /* readonly */
1658 VariantMap vars;
1659 VerticalAlignment verticalAlignment;
1660 bool visible;
1661 /* readonly */
1662 bool visibleEffective;
1663 /* readonly */
1664 int weakRefs;
1665 int width;
1666 };
1667 
1668 class CollisionBox2D
1669 {
1670 public:
1671 // Methods:
1672 void ApplyAttributes();
1673 void DrawDebugGeometry(DebugRenderer, bool);
1674 Variant GetAttribute(const String&) const;
1675 ValueAnimation GetAttributeAnimation(const String&) const;
1676 float GetAttributeAnimationSpeed(const String&) const;
1677 float GetAttributeAnimationTime(const String&) const;
1678 WrapMode GetAttributeAnimationWrapMode(const String&) const;
1679 Variant GetAttributeDefault(const String&) const;
1680 bool GetInterceptNetworkUpdate(const String&) const;
1681 bool HasSubscribedToEvent(Object, const String&);
1682 bool HasSubscribedToEvent(const String&);
1683 bool Load(File, bool = false);
1684 bool Load(VectorBuffer&, bool = false);
1685 bool LoadJSON(const JSONValue&, bool = false);
1686 bool LoadXML(const XMLElement&, bool = false);
1687 void MarkNetworkUpdate() const;
1688 void Remove();
1689 void RemoveAttributeAnimation(const String&);
1690 void RemoveInstanceDefault();
1691 void RemoveObjectAnimation();
1692 void ResetToDefault();
1693 bool Save(File) const;
1694 bool Save(VectorBuffer&) const;
1695 bool SaveJSON(JSONValue&) const;
1696 bool SaveXML(XMLElement&) const;
1697 void SendEvent(const String&, VariantMap& = VariantMap ( ));
1698 void SetAnimationTime(float);
1699 bool SetAttribute(const String&, const Variant&);
1700 void SetAttributeAnimation(const String&, ValueAnimation, WrapMode = WM_LOOP, float = 1.0f);
1701 void SetAttributeAnimationSpeed(const String&, float);
1702 void SetAttributeAnimationTime(const String&, float);
1703 void SetAttributeAnimationWrapMode(const String&, WrapMode);
1704 void SetCenter(float, float);
1705 void SetInterceptNetworkUpdate(const String&, bool);
1706 void SetSize(float, float);
1707 
1708 // Properties:
1709 float angle;
1710 bool animationEnabled;
1711 /* readonly */
1712 Array<Variant> attributeDefaults;
1713 /* readonly */
1714 Array<AttributeInfo> attributeInfos;
1715 Array<Variant> attributes;
1716 /* readonly */
1717 String category;
1718 int categoryBits;
1719 Vector2 center;
1720 float density;
1721 bool enabled;
1722 /* readonly */
1723 bool enabledEffective;
1724 float friction;
1725 int groupIndex;
1726 /* readonly */
1727 uint id;
1728 /* readonly */
1729 float inertia;
1730 int maskBits;
1731 /* readonly */
1732 float mass;
1733 /* readonly */
1734 Vector2 massCenter;
1735 /* readonly */
1736 Node node;
1737 /* readonly */
1738 uint numAttributes;
1739 ObjectAnimation objectAnimation;
1740 /* readonly */
1741 int refs;
1742 float restitution;
1743 Vector2 size;
1744 bool temporary;
1745 bool trigger;
1746 /* readonly */
1747 StringHash type;
1748 /* readonly */
1749 String typeName;
1750 /* readonly */
1751 int weakRefs;
1752 };
1753 
1754 class CollisionChain2D
1755 {
1756 public:
1757 // Methods:
1758 void ApplyAttributes();
1759 void DrawDebugGeometry(DebugRenderer, bool);
1760 Variant GetAttribute(const String&) const;
1761 ValueAnimation GetAttributeAnimation(const String&) const;
1762 float GetAttributeAnimationSpeed(const String&) const;
1763 float GetAttributeAnimationTime(const String&) const;
1764 WrapMode GetAttributeAnimationWrapMode(const String&) const;
1765 Variant GetAttributeDefault(const String&) const;
1766 bool GetInterceptNetworkUpdate(const String&) const;
1767 Array<Vector2> GetVertices() const;
1768 bool HasSubscribedToEvent(Object, const String&);
1769 bool HasSubscribedToEvent(const String&);
1770 bool Load(File, bool = false);
1771 bool Load(VectorBuffer&, bool = false);
1772 bool LoadJSON(const JSONValue&, bool = false);
1773 bool LoadXML(const XMLElement&, bool = false);
1774 void MarkNetworkUpdate() const;
1775 void Remove();
1776 void RemoveAttributeAnimation(const String&);
1777 void RemoveInstanceDefault();
1778 void RemoveObjectAnimation();
1779 void ResetToDefault();
1780 bool Save(File) const;
1781 bool Save(VectorBuffer&) const;
1782 bool SaveJSON(JSONValue&) const;
1783 bool SaveXML(XMLElement&) const;
1784 void SendEvent(const String&, VariantMap& = VariantMap ( ));
1785 void SetAnimationTime(float);
1786 bool SetAttribute(const String&, const Variant&);
1787 void SetAttributeAnimation(const String&, ValueAnimation, WrapMode = WM_LOOP, float = 1.0f);
1788 void SetAttributeAnimationSpeed(const String&, float);
1789 void SetAttributeAnimationTime(const String&, float);
1790 void SetAttributeAnimationWrapMode(const String&, WrapMode);
1791 void SetInterceptNetworkUpdate(const String&, bool);
1792 void SetVertex(uint, const Vector2&);
1793 void SetVertices(Array<Vector2>);
1794 const Vector2& GetVertex(uint) const;
1795 
1796 // Properties:
1797 bool animationEnabled;
1798 /* readonly */
1799 Array<Variant> attributeDefaults;
1800 /* readonly */
1801 Array<AttributeInfo> attributeInfos;
1802 Array<Variant> attributes;
1803 /* readonly */
1804 String category;
1805 int categoryBits;
1806 float density;
1807 bool enabled;
1808 /* readonly */
1809 bool enabledEffective;
1810 float friction;
1811 int groupIndex;
1812 /* readonly */
1813 uint id;
1814 /* readonly */
1815 float inertia;
1816 bool loop;
1817 int maskBits;
1818 /* readonly */
1819 float mass;
1820 /* readonly */
1821 Vector2 massCenter;
1822 /* readonly */
1823 Node node;
1824 /* readonly */
1825 uint numAttributes;
1826 ObjectAnimation objectAnimation;
1827 /* readonly */
1828 int refs;
1829 float restitution;
1830 bool temporary;
1831 bool trigger;
1832 /* readonly */
1833 StringHash type;
1834 /* readonly */
1835 String typeName;
1836 uint vertexCount;
1837 /* readonly */
1838 int weakRefs;
1839 };
1840 
1841 class CollisionCircle2D
1842 {
1843 public:
1844 // Methods:
1845 void ApplyAttributes();
1846 void DrawDebugGeometry(DebugRenderer, bool);
1847 Variant GetAttribute(const String&) const;
1848 ValueAnimation GetAttributeAnimation(const String&) const;
1849 float GetAttributeAnimationSpeed(const String&) const;
1850 float GetAttributeAnimationTime(const String&) const;
1851 WrapMode GetAttributeAnimationWrapMode(const String&) const;
1852 Variant GetAttributeDefault(const String&) const;
1853 bool GetInterceptNetworkUpdate(const String&) const;
1854 bool HasSubscribedToEvent(Object, const String&);
1855 bool HasSubscribedToEvent(const String&);
1856 bool Load(File, bool = false);
1857 bool Load(VectorBuffer&, bool = false);
1858 bool LoadJSON(const JSONValue&, bool = false);
1859 bool LoadXML(const XMLElement&, bool = false);
1860 void MarkNetworkUpdate() const;
1861 void Remove();
1862 void RemoveAttributeAnimation(const String&);
1863 void RemoveInstanceDefault();
1864 void RemoveObjectAnimation();
1865 void ResetToDefault();
1866 bool Save(File) const;
1867 bool Save(VectorBuffer&) const;
1868 bool SaveJSON(JSONValue&) const;
1869 bool SaveXML(XMLElement&) const;
1870 void SendEvent(const String&, VariantMap& = VariantMap ( ));
1871 void SetAnimationTime(float);
1872 bool SetAttribute(const String&, const Variant&);
1873 void SetAttributeAnimation(const String&, ValueAnimation, WrapMode = WM_LOOP, float = 1.0f);
1874 void SetAttributeAnimationSpeed(const String&, float);
1875 void SetAttributeAnimationTime(const String&, float);
1876 void SetAttributeAnimationWrapMode(const String&, WrapMode);
1877 void SetCenter(float, float);
1878 void SetInterceptNetworkUpdate(const String&, bool);
1879 
1880 // Properties:
1881 bool animationEnabled;
1882 /* readonly */
1883 Array<Variant> attributeDefaults;
1884 /* readonly */
1885 Array<AttributeInfo> attributeInfos;
1886 Array<Variant> attributes;
1887 /* readonly */
1888 String category;
1889 int categoryBits;
1890 Vector2 center;
1891 float density;
1892 bool enabled;
1893 /* readonly */
1894 bool enabledEffective;
1895 float friction;
1896 int groupIndex;
1897 /* readonly */
1898 uint id;
1899 /* readonly */
1900 float inertia;
1901 int maskBits;
1902 /* readonly */
1903 float mass;
1904 /* readonly */
1905 Vector2 massCenter;
1906 /* readonly */
1907 Node node;
1908 /* readonly */
1909 uint numAttributes;
1910 ObjectAnimation objectAnimation;
1911 float radius;
1912 /* readonly */
1913 int refs;
1914 float restitution;
1915 bool temporary;
1916 bool trigger;
1917 /* readonly */
1918 StringHash type;
1919 /* readonly */
1920 String typeName;
1921 /* readonly */
1922 int weakRefs;
1923 };
1924 
1925 class CollisionEdge2D
1926 {
1927 public:
1928 // Methods:
1929 void ApplyAttributes();
1930 void DrawDebugGeometry(DebugRenderer, bool);
1931 Variant GetAttribute(const String&) const;
1932 ValueAnimation GetAttributeAnimation(const String&) const;
1933 float GetAttributeAnimationSpeed(const String&) const;
1934 float GetAttributeAnimationTime(const String&) const;
1935 WrapMode GetAttributeAnimationWrapMode(const String&) const;
1936 Variant GetAttributeDefault(const String&) const;
1937 bool GetInterceptNetworkUpdate(const String&) const;
1938 bool HasSubscribedToEvent(Object, const String&);
1939 bool HasSubscribedToEvent(const String&);
1940 bool Load(File, bool = false);
1941 bool Load(VectorBuffer&, bool = false);
1942 bool LoadJSON(const JSONValue&, bool = false);
1943 bool LoadXML(const XMLElement&, bool = false);
1944 void MarkNetworkUpdate() const;
1945 void Remove();
1946 void RemoveAttributeAnimation(const String&);
1947 void RemoveInstanceDefault();
1948 void RemoveObjectAnimation();
1949 void ResetToDefault();
1950 bool Save(File) const;
1951 bool Save(VectorBuffer&) const;
1952 bool SaveJSON(JSONValue&) const;
1953 bool SaveXML(XMLElement&) const;
1954 void SendEvent(const String&, VariantMap& = VariantMap ( ));
1955 void SetAnimationTime(float);
1956 bool SetAttribute(const String&, const Variant&);
1957 void SetAttributeAnimation(const String&, ValueAnimation, WrapMode = WM_LOOP, float = 1.0f);
1958 void SetAttributeAnimationSpeed(const String&, float);
1959 void SetAttributeAnimationTime(const String&, float);
1960 void SetAttributeAnimationWrapMode(const String&, WrapMode);
1961 void SetInterceptNetworkUpdate(const String&, bool);
1962 void SetVertices(const Vector2&, const Vector2&);
1963 
1964 // Properties:
1965 bool animationEnabled;
1966 /* readonly */
1967 Array<Variant> attributeDefaults;
1968 /* readonly */
1969 Array<AttributeInfo> attributeInfos;
1970 Array<Variant> attributes;
1971 /* readonly */
1972 String category;
1973 int categoryBits;
1974 float density;
1975 bool enabled;
1976 /* readonly */
1977 bool enabledEffective;
1978 float friction;
1979 int groupIndex;
1980 /* readonly */
1981 uint id;
1982 /* readonly */
1983 float inertia;
1984 int maskBits;
1985 /* readonly */
1986 float mass;
1987 /* readonly */
1988 Vector2 massCenter;
1989 /* readonly */
1990 Node node;
1991 /* readonly */
1992 uint numAttributes;
1993 ObjectAnimation objectAnimation;
1994 /* readonly */
1995 int refs;
1996 float restitution;
1997 bool temporary;
1998 bool trigger;
1999 /* readonly */
2000 StringHash type;
2001 /* readonly */
2002 String typeName;
2003 Vector2 vertex1;
2004 Vector2 vertex2;
2005 /* readonly */
2006 int weakRefs;
2007 };
2008 
2009 class CollisionPolygon2D
2010 {
2011 public:
2012 // Methods:
2013 void ApplyAttributes();
2014 void DrawDebugGeometry(DebugRenderer, bool);
2015 Variant GetAttribute(const String&) const;
2016 ValueAnimation GetAttributeAnimation(const String&) const;
2017 float GetAttributeAnimationSpeed(const String&) const;
2018 float GetAttributeAnimationTime(const String&) const;
2019 WrapMode GetAttributeAnimationWrapMode(const String&) const;
2020 Variant GetAttributeDefault(const String&) const;
2021 bool GetInterceptNetworkUpdate(const String&) const;
2022 Array<Vector2> GetVertices() const;
2023 bool HasSubscribedToEvent(Object, const String&);
2024 bool HasSubscribedToEvent(const String&);
2025 bool Load(File, bool = false);
2026 bool Load(VectorBuffer&, bool = false);
2027 bool LoadJSON(const JSONValue&, bool = false);
2028 bool LoadXML(const XMLElement&, bool = false);
2029 void MarkNetworkUpdate() const;
2030 void Remove();
2031 void RemoveAttributeAnimation(const String&);
2032 void RemoveInstanceDefault();
2033 void RemoveObjectAnimation();
2034 void ResetToDefault();
2035 bool Save(File) const;
2036 bool Save(VectorBuffer&) const;
2037 bool SaveJSON(JSONValue&) const;
2038 bool SaveXML(XMLElement&) const;
2039 void SendEvent(const String&, VariantMap& = VariantMap ( ));
2040 void SetAnimationTime(float);
2041 bool SetAttribute(const String&, const Variant&);
2042 void SetAttributeAnimation(const String&, ValueAnimation, WrapMode = WM_LOOP, float = 1.0f);
2043 void SetAttributeAnimationSpeed(const String&, float);
2044 void SetAttributeAnimationTime(const String&, float);
2045 void SetAttributeAnimationWrapMode(const String&, WrapMode);
2046 void SetInterceptNetworkUpdate(const String&, bool);
2047 void SetVertex(uint, const Vector2&);
2048 void SetVertices(Array<Vector2>);
2049 const Vector2& GetVertex(uint) const;
2050 
2051 // Properties:
2052 bool animationEnabled;
2053 /* readonly */
2054 Array<Variant> attributeDefaults;
2055 /* readonly */
2056 Array<AttributeInfo> attributeInfos;
2057 Array<Variant> attributes;
2058 /* readonly */
2059 String category;
2060 int categoryBits;
2061 float density;
2062 bool enabled;
2063 /* readonly */
2064 bool enabledEffective;
2065 float friction;
2066 int groupIndex;
2067 /* readonly */
2068 uint id;
2069 /* readonly */
2070 float inertia;
2071 int maskBits;
2072 /* readonly */
2073 float mass;
2074 /* readonly */
2075 Vector2 massCenter;
2076 /* readonly */
2077 Node node;
2078 /* readonly */
2079 uint numAttributes;
2080 ObjectAnimation objectAnimation;
2081 /* readonly */
2082 int refs;
2083 float restitution;
2084 bool temporary;
2085 bool trigger;
2086 /* readonly */
2087 StringHash type;
2088 /* readonly */
2089 String typeName;
2090 uint vertexCount;
2091 /* readonly */
2092 int weakRefs;
2093 };
2094 
2095 class CollisionShape
2096 {
2097 public:
2098 // Methods:
2099 void ApplyAttributes();
2100 void DrawDebugGeometry(DebugRenderer, bool);
2101 Variant GetAttribute(const String&) const;
2102 ValueAnimation GetAttributeAnimation(const String&) const;
2103 float GetAttributeAnimationSpeed(const String&) const;
2104 float GetAttributeAnimationTime(const String&) const;
2105 WrapMode GetAttributeAnimationWrapMode(const String&) const;
2106 Variant GetAttributeDefault(const String&) const;
2107 bool GetInterceptNetworkUpdate(const String&) const;
2108 bool HasSubscribedToEvent(Object, const String&);
2109 bool HasSubscribedToEvent(const String&);
2110 bool Load(File, bool = false);
2111 bool Load(VectorBuffer&, bool = false);
2112 bool LoadJSON(const JSONValue&, bool = false);
2113 bool LoadXML(const XMLElement&, bool = false);
2114 void MarkNetworkUpdate() const;
2115 void Remove();
2116 void RemoveAttributeAnimation(const String&);
2117 void RemoveInstanceDefault();
2118 void RemoveObjectAnimation();
2119 void ResetToDefault();
2120 bool Save(File) const;
2121 bool Save(VectorBuffer&) const;
2122 bool SaveJSON(JSONValue&) const;
2123 bool SaveXML(XMLElement&) const;
2124 void SendEvent(const String&, VariantMap& = VariantMap ( ));
2125 void SetAnimationTime(float);
2126 bool SetAttribute(const String&, const Variant&);
2127 void SetAttributeAnimation(const String&, ValueAnimation, WrapMode = WM_LOOP, float = 1.0f);
2128 void SetAttributeAnimationSpeed(const String&, float);
2129 void SetAttributeAnimationTime(const String&, float);
2130 void SetAttributeAnimationWrapMode(const String&, WrapMode);
2131 void SetBox(const Vector3&, const Vector3& = Vector3 ( ), const Quaternion& = Quaternion ( ));
2132 void SetCapsule(float, float, const Vector3& = Vector3 ( ), const Quaternion& = Quaternion ( ));
2133 void SetCone(float, float, const Vector3& = Vector3 ( ), const Quaternion& = Quaternion ( ));
2134 void SetConvexHull(Model, uint = 0, const Vector3& = Vector3 ( 1 , 1 , 1 ), const Vector3& = Vector3 ( ), const Quaternion& = Quaternion ( ));
2135 void SetCustomConvexHull(CustomGeometry, const Vector3& = Vector3 ( 1 , 1 , 1 ), const Vector3& = Vector3 ( ), const Quaternion& = Quaternion ( ));
2136 void SetCustomTriangleMesh(CustomGeometry, const Vector3& = Vector3 ( 1 , 1 , 1 ), const Vector3& = Vector3 ( ), const Quaternion& = Quaternion ( ));
2137 void SetCylinder(float, float, const Vector3& = Vector3 ( ), const Quaternion& = Quaternion ( ));
2138 void SetInterceptNetworkUpdate(const String&, bool);
2139 void SetSphere(float, const Vector3& = Vector3 ( ), const Quaternion& = Quaternion ( ));
2140 void SetStaticPlane(const Vector3& = Vector3 ( ), const Quaternion& = Quaternion ( ));
2141 void SetTerrain(uint = 0);
2142 void SetTransform(const Vector3&, const Quaternion&);
2143 void SetTriangleMesh(Model, uint = 0, const Vector3& = Vector3 ( 1 , 1 , 1 ), const Vector3& = Vector3 ( ), const Quaternion& = Quaternion ( ));
2144 
2145 // Properties:
2146 bool animationEnabled;
2147 /* readonly */
2148 Array<Variant> attributeDefaults;
2149 /* readonly */
2150 Array<AttributeInfo> attributeInfos;
2151 Array<Variant> attributes;
2152 /* readonly */
2153 String category;
2154 bool enabled;
2155 /* readonly */
2156 bool enabledEffective;
2157 /* readonly */
2158 uint id;
2159 uint lodLevel;
2160 float margin;
2161 Model model;
2162 /* readonly */
2163 Node node;
2164 /* readonly */
2165 uint numAttributes;
2166 ObjectAnimation objectAnimation;
2167 Vector3 position;
2168 /* readonly */
2169 int refs;
2170 Quaternion rotation;
2171 ShapeType shapeType;
2172 Vector3 size;
2173 bool temporary;
2174 /* readonly */
2175 StringHash type;
2176 /* readonly */
2177 String typeName;
2178 /* readonly */
2179 int weakRefs;
2180 /* readonly */
2181 BoundingBox worldBoundingBox;
2182 };
2183 
2184 class CollisionShape2D
2185 {
2186 public:
2187 // Methods:
2188 void ApplyAttributes();
2189 void DrawDebugGeometry(DebugRenderer, bool);
2190 Variant GetAttribute(const String&) const;
2191 ValueAnimation GetAttributeAnimation(const String&) const;
2192 float GetAttributeAnimationSpeed(const String&) const;
2193 float GetAttributeAnimationTime(const String&) const;
2194 WrapMode GetAttributeAnimationWrapMode(const String&) const;
2195 Variant GetAttributeDefault(const String&) const;
2196 bool GetInterceptNetworkUpdate(const String&) const;
2197 bool HasSubscribedToEvent(Object, const String&);
2198 bool HasSubscribedToEvent(const String&);
2199 bool Load(File, bool = false);
2200 bool Load(VectorBuffer&, bool = false);
2201 bool LoadJSON(const JSONValue&, bool = false);
2202 bool LoadXML(const XMLElement&, bool = false);
2203 void MarkNetworkUpdate() const;
2204 void Remove();
2205 void RemoveAttributeAnimation(const String&);
2206 void RemoveInstanceDefault();
2207 void RemoveObjectAnimation();
2208 void ResetToDefault();
2209 bool Save(File) const;
2210 bool Save(VectorBuffer&) const;
2211 bool SaveJSON(JSONValue&) const;
2212 bool SaveXML(XMLElement&) const;
2213 void SendEvent(const String&, VariantMap& = VariantMap ( ));
2214 void SetAnimationTime(float);
2215 bool SetAttribute(const String&, const Variant&);
2216 void SetAttributeAnimation(const String&, ValueAnimation, WrapMode = WM_LOOP, float = 1.0f);
2217 void SetAttributeAnimationSpeed(const String&, float);
2218 void SetAttributeAnimationTime(const String&, float);
2219 void SetAttributeAnimationWrapMode(const String&, WrapMode);
2220 void SetInterceptNetworkUpdate(const String&, bool);
2221 
2222 // Properties:
2223 bool animationEnabled;
2224 /* readonly */
2225 Array<Variant> attributeDefaults;
2226 /* readonly */
2227 Array<AttributeInfo> attributeInfos;
2228 Array<Variant> attributes;
2229 /* readonly */
2230 String category;
2231 int categoryBits;
2232 float density;
2233 bool enabled;
2234 /* readonly */
2235 bool enabledEffective;
2236 float friction;
2237 int groupIndex;
2238 /* readonly */
2239 uint id;
2240 /* readonly */
2241 float inertia;
2242 int maskBits;
2243 /* readonly */
2244 float mass;
2245 /* readonly */
2246 Vector2 massCenter;
2247 /* readonly */
2248 Node node;
2249 /* readonly */
2250 uint numAttributes;
2251 ObjectAnimation objectAnimation;
2252 /* readonly */
2253 int refs;
2254 float restitution;
2255 bool temporary;
2256 bool trigger;
2257 /* readonly */
2258 StringHash type;
2259 /* readonly */
2260 String typeName;
2261 /* readonly */
2262 int weakRefs;
2263 };
2264 
2265 class Color
2266 {
2267 public:
2268 Color();
2269 Color(const Color&in);
2270 Color(float, float, float, float);
2271 Color(float, float, float);
2272 Color(float[]&inout);
2273 // Methods:
2274 Color Abs() const;
2275 float Average() const;
2276 float Chroma() const;
2277 void Clip(bool);
2278 bool Equals() const;
2279 void FromHSL(float, float, float, float);
2280 void FromHSV(float, float, float, float);
2281 float Hue() const;
2282 void Invert(bool);
2283 Color Lerp(const Color&, float) const;
2284 float Lightness() const;
2285 float Luma() const;
2286 float MaxRGB() const;
2287 float MinRGB() const;
2288 float Range() const;
2289 float SaturationHSL() const;
2290 float SaturationHSV() const;
2291 float SumRGB() const;
2292 Vector3 ToHSL() const;
2293 Vector3 ToHSV() const;
2294 String ToString() const;
2295 uint ToUInt() const;
2296 float Value() const;
2297 
2298 // Properties:
2299 float a;
2300 float b;
2301 /* readonly */
2302 Array<float> data;
2303 float g;
2304 float r;
2305 /* readonly */
2306 Vector3 rgb;
2307 /* readonly */
2308 Vector4 rgba;
2309 };
2310 
2311 class ColorFrame
2312 {
2313 public:
2314 
2315 // Properties:
2316 Color color;
2317 float time;
2318 };
2319 
2320 class Component
2321 {
2322 public:
2323 // Methods:
2324 void ApplyAttributes();
2325 void DrawDebugGeometry(DebugRenderer, bool);
2326 Variant GetAttribute(const String&) const;
2327 ValueAnimation GetAttributeAnimation(const String&) const;
2328 float GetAttributeAnimationSpeed(const String&) const;
2329 float GetAttributeAnimationTime(const String&) const;
2330 WrapMode GetAttributeAnimationWrapMode(const String&) const;
2331 Variant GetAttributeDefault(const String&) const;
2332 bool GetInterceptNetworkUpdate(const String&) const;
2333 bool HasSubscribedToEvent(Object, const String&);
2334 bool HasSubscribedToEvent(const String&);
2335 bool Load(File, bool = false);
2336 bool Load(VectorBuffer&, bool = false);
2337 bool LoadJSON(const JSONValue&, bool = false);
2338 bool LoadXML(const XMLElement&, bool = false);
2339 void MarkNetworkUpdate() const;
2340 void Remove();
2341 void RemoveAttributeAnimation(const String&);
2342 void RemoveInstanceDefault();
2343 void RemoveObjectAnimation();
2344 void ResetToDefault();
2345 bool Save(File) const;
2346 bool Save(VectorBuffer&) const;
2347 bool SaveJSON(JSONValue&) const;
2348 bool SaveXML(XMLElement&) const;
2349 void SendEvent(const String&, VariantMap& = VariantMap ( ));
2350 void SetAnimationTime(float);
2351 bool SetAttribute(const String&, const Variant&);
2352 void SetAttributeAnimation(const String&, ValueAnimation, WrapMode = WM_LOOP, float = 1.0f);
2353 void SetAttributeAnimationSpeed(const String&, float);
2354 void SetAttributeAnimationTime(const String&, float);
2355 void SetAttributeAnimationWrapMode(const String&, WrapMode);
2356 void SetInterceptNetworkUpdate(const String&, bool);
2357 
2358 // Properties:
2359 bool animationEnabled;
2360 /* readonly */
2361 Array<Variant> attributeDefaults;
2362 /* readonly */
2363 Array<AttributeInfo> attributeInfos;
2364 Array<Variant> attributes;
2365 /* readonly */
2366 String category;
2367 bool enabled;
2368 /* readonly */
2369 bool enabledEffective;
2370 /* readonly */
2371 uint id;
2372 /* readonly */
2373 Node node;
2374 /* readonly */
2375 uint numAttributes;
2376 ObjectAnimation objectAnimation;
2377 /* readonly */
2378 int refs;
2379 bool temporary;
2380 /* readonly */
2381 StringHash type;
2382 /* readonly */
2383 String typeName;
2384 /* readonly */
2385 int weakRefs;
2386 };
2387 
2388 class Connection
2389 {
2390 public:
2391 // Methods:
2392 void Disconnect(int = 0);
2393 bool HasSubscribedToEvent(Object, const String&);
2394 bool HasSubscribedToEvent(const String&);
2395 void SendEvent(const String&, VariantMap& = VariantMap ( ));
2396 void SendMessage(int, bool, bool, const VectorBuffer&, uint = 0);
2397 void SendPackageToClient(PackageFile);
2398 void SendRemoteEvent(Node, const String&, bool, const VariantMap& = VariantMap ( ));
2399 void SendRemoteEvent(const String&, bool, const VariantMap& = VariantMap ( ));
2400 String ToString() const;
2401 
2402 // Properties:
2403 /* readonly */
2404 String address;
2405 /* readonly */
2406 float bytesInPerSec;
2407 /* readonly */
2408 float bytesOutPerSec;
2409 /* readonly */
2410 String category;
2411 /* readonly */
2412 bool client;
2413 /* readonly */
2414 bool connectPending;
2415 /* readonly */
2416 bool connected;
2417 Controls controls;
2418 /* readonly */
2419 String downloadName;
2420 /* readonly */
2421 float downloadProgress;
2422 VariantMap identity;
2423 /* readonly */
2424 float lastHeardTime;
2425 bool logStatistics;
2426 /* readonly */
2427 uint numDownloads;
2428 /* readonly */
2429 float packetsInPerSec;
2430 /* readonly */
2431 float packetsOutPerSec;
2432 /* readonly */
2433 uint16 port;
2434 Vector3 position;
2435 /* readonly */
2436 int refs;
2437 Quaternion rotation;
2438 /* readonly */
2439 float roundTripTime;
2440 Scene scene;
2441 /* readonly */
2442 bool sceneLoaded;
2443 uint8 timeStamp;
2444 /* readonly */
2445 StringHash type;
2446 /* readonly */
2447 String typeName;
2448 /* readonly */
2449 int weakRefs;
2450 };
2451 
2452 class Console
2453 {
2454 public:
2455 // Methods:
2456 void AddAutoComplete(const String&);
2457 void CopySelectedRows() const;
2458 bool HasSubscribedToEvent(Object, const String&);
2459 bool HasSubscribedToEvent(const String&);
2460 void RemoveAutoComplete(const String&);
2461 void SendEvent(const String&, VariantMap& = VariantMap ( ));
2462 void Toggle();
2463 void UpdateElements();
2464 
2465 // Properties:
2466 bool autoVisibleOnError;
2467 /* readonly */
2468 BorderImage background;
2469 /* readonly */
2470 String category;
2471 /* readonly */
2472 Button closeButton;
2473 String commandInterpreter;
2474 XMLFile defaultStyle;
2475 bool focusOnShow;
2476 /* readonly */
2477 uint historyPosition;
2478 /* readonly */
2479 Array<String> historyRow;
2480 /* readonly */
2481 LineEdit lineEdit;
2482 uint numBufferedRows;
2483 uint numHistoryRows;
2484 uint numRows;
2485 /* readonly */
2486 int refs;
2487 /* readonly */
2488 StringHash type;
2489 /* readonly */
2490 String typeName;
2491 bool visible;
2492 /* readonly */
2493 int weakRefs;
2494 };
2495 
2496 class Constraint
2497 {
2498 public:
2499 // Methods:
2500 void ApplyAttributes();
2501 void DrawDebugGeometry(DebugRenderer, bool);
2502 Variant GetAttribute(const String&) const;
2503 ValueAnimation GetAttributeAnimation(const String&) const;
2504 float GetAttributeAnimationSpeed(const String&) const;
2505 float GetAttributeAnimationTime(const String&) const;
2506 WrapMode GetAttributeAnimationWrapMode(const String&) const;
2507 Variant GetAttributeDefault(const String&) const;
2508 bool GetInterceptNetworkUpdate(const String&) const;
2509 bool HasSubscribedToEvent(Object, const String&);
2510 bool HasSubscribedToEvent(const String&);
2511 bool Load(File, bool = false);
2512 bool Load(VectorBuffer&, bool = false);
2513 bool LoadJSON(const JSONValue&, bool = false);
2514 bool LoadXML(const XMLElement&, bool = false);
2515 void MarkNetworkUpdate() const;
2516 void Remove();
2517 void RemoveAttributeAnimation(const String&);
2518 void RemoveInstanceDefault();
2519 void RemoveObjectAnimation();
2520 void ResetToDefault();
2521 bool Save(File) const;
2522 bool Save(VectorBuffer&) const;
2523 bool SaveJSON(JSONValue&) const;
2524 bool SaveXML(XMLElement&) const;
2525 void SendEvent(const String&, VariantMap& = VariantMap ( ));
2526 void SetAnimationTime(float);
2527 bool SetAttribute(const String&, const Variant&);
2528 void SetAttributeAnimation(const String&, ValueAnimation, WrapMode = WM_LOOP, float = 1.0f);
2529 void SetAttributeAnimationSpeed(const String&, float);
2530 void SetAttributeAnimationTime(const String&, float);
2531 void SetAttributeAnimationWrapMode(const String&, WrapMode);
2532 void SetInterceptNetworkUpdate(const String&, bool);
2533 
2534 // Properties:
2535 bool animationEnabled;
2536 /* readonly */
2537 Array<Variant> attributeDefaults;
2538 /* readonly */
2539 Array<AttributeInfo> attributeInfos;
2540 Array<Variant> attributes;
2541 /* writeonly */
2542 Vector3 axis;
2543 /* readonly */
2544 String category;
2545 float cfm;
2546 ConstraintType constraintType;
2547 bool disableCollision;
2548 bool enabled;
2549 /* readonly */
2550 bool enabledEffective;
2551 float erp;
2552 Vector2 highLimit;
2553 /* readonly */
2554 uint id;
2555 Vector2 lowLimit;
2556 /* readonly */
2557 Node node;
2558 /* readonly */
2559 uint numAttributes;
2560 ObjectAnimation objectAnimation;
2561 /* writeonly */
2562 Vector3 otherAxis;
2563 RigidBody otherBody;
2564 Vector3 otherPosition;
2565 Quaternion otherRotation;
2566 /* readonly */
2567 RigidBody ownBody;
2568 Vector3 position;
2569 /* readonly */
2570 int refs;
2571 Quaternion rotation;
2572 bool temporary;
2573 /* readonly */
2574 StringHash type;
2575 /* readonly */
2576 String typeName;
2577 /* readonly */
2578 int weakRefs;
2579 Vector3 worldPosition;
2580 };
2581 
2582 class Constraint2D
2583 {
2584 public:
2585 // Methods:
2586 void ApplyAttributes();
2587 void DrawDebugGeometry(DebugRenderer, bool);
2588 Variant GetAttribute(const String&) const;
2589 ValueAnimation GetAttributeAnimation(const String&) const;
2590 float GetAttributeAnimationSpeed(const String&) const;
2591 float GetAttributeAnimationTime(const String&) const;
2592 WrapMode GetAttributeAnimationWrapMode(const String&) const;
2593 Variant GetAttributeDefault(const String&) const;
2594 bool GetInterceptNetworkUpdate(const String&) const;
2595 bool HasSubscribedToEvent(Object, const String&);
2596 bool HasSubscribedToEvent(const String&);
2597 bool Load(File, bool = false);
2598 bool Load(VectorBuffer&, bool = false);
2599 bool LoadJSON(const JSONValue&, bool = false);
2600 bool LoadXML(const XMLElement&, bool = false);
2601 void MarkNetworkUpdate() const;
2602 void Remove();
2603 void RemoveAttributeAnimation(const String&);
2604 void RemoveInstanceDefault();
2605 void RemoveObjectAnimation();
2606 void ResetToDefault();
2607 bool Save(File) const;
2608 bool Save(VectorBuffer&) const;
2609 bool SaveJSON(JSONValue&) const;
2610 bool SaveXML(XMLElement&) const;
2611 void SendEvent(const String&, VariantMap& = VariantMap ( ));
2612 void SetAnimationTime(float);
2613 bool SetAttribute(const String&, const Variant&);
2614 void SetAttributeAnimation(const String&, ValueAnimation, WrapMode = WM_LOOP, float = 1.0f);
2615 void SetAttributeAnimationSpeed(const String&, float);
2616 void SetAttributeAnimationTime(const String&, float);
2617 void SetAttributeAnimationWrapMode(const String&, WrapMode);
2618 void SetInterceptNetworkUpdate(const String&, bool);
2619 
2620 // Properties:
2621 bool animationEnabled;
2622 /* readonly */
2623 Array<Variant> attributeDefaults;
2624 /* readonly */
2625 Array<AttributeInfo> attributeInfos;
2626 Array<Variant> attributes;
2627 /* readonly */
2628 String category;
2629 bool collideConnected;
2630 bool enabled;
2631 /* readonly */
2632 bool enabledEffective;
2633 /* readonly */
2634 uint id;
2635 /* readonly */
2636 Node node;
2637 /* readonly */
2638 uint numAttributes;
2639 ObjectAnimation objectAnimation;
2640 RigidBody2D otherBody;
2641 /* readonly */
2642 RigidBody2D ownerBody;
2643 /* readonly */
2644 int refs;
2645 bool temporary;
2646 /* readonly */
2647 StringHash type;
2648 /* readonly */
2649 String typeName;
2650 /* readonly */
2651 int weakRefs;
2652 };
2653 
2654 class ConstraintDistance2D
2655 {
2656 public:
2657 // Methods:
2658 void ApplyAttributes();
2659 void DrawDebugGeometry(DebugRenderer, bool);
2660 Variant GetAttribute(const String&) const;
2661 ValueAnimation GetAttributeAnimation(const String&) const;
2662 float GetAttributeAnimationSpeed(const String&) const;
2663 float GetAttributeAnimationTime(const String&) const;
2664 WrapMode GetAttributeAnimationWrapMode(const String&) const;
2665 Variant GetAttributeDefault(const String&) const;
2666 bool GetInterceptNetworkUpdate(const String&) const;
2667 bool HasSubscribedToEvent(Object, const String&);
2668 bool HasSubscribedToEvent(const String&);
2669 bool Load(File, bool = false);
2670 bool Load(VectorBuffer&, bool = false);
2671 bool LoadJSON(const JSONValue&, bool = false);
2672 bool LoadXML(const XMLElement&, bool = false);
2673 void MarkNetworkUpdate() const;
2674 void Remove();
2675 void RemoveAttributeAnimation(const String&);
2676 void RemoveInstanceDefault();
2677 void RemoveObjectAnimation();
2678 void ResetToDefault();
2679 bool Save(File) const;
2680 bool Save(VectorBuffer&) const;
2681 bool SaveJSON(JSONValue&) const;
2682 bool SaveXML(XMLElement&) const;
2683 void SendEvent(const String&, VariantMap& = VariantMap ( ));
2684 void SetAnimationTime(float);
2685 bool SetAttribute(const String&, const Variant&);
2686 void SetAttributeAnimation(const String&, ValueAnimation, WrapMode = WM_LOOP, float = 1.0f);
2687 void SetAttributeAnimationSpeed(const String&, float);
2688 void SetAttributeAnimationTime(const String&, float);
2689 void SetAttributeAnimationWrapMode(const String&, WrapMode);
2690 void SetInterceptNetworkUpdate(const String&, bool);
2691 
2692 // Properties:
2693 bool animationEnabled;
2694 /* readonly */
2695 Array<Variant> attributeDefaults;
2696 /* readonly */
2697 Array<AttributeInfo> attributeInfos;
2698 Array<Variant> attributes;
2699 /* readonly */
2700 String category;
2701 bool collideConnected;
2702 float dampingRatio;
2703 bool enabled;
2704 /* readonly */
2705 bool enabledEffective;
2706 float frequencyHz;
2707 /* readonly */
2708 uint id;
2709 float length;
2710 /* readonly */
2711 Node node;
2712 /* readonly */
2713 uint numAttributes;
2714 ObjectAnimation objectAnimation;
2715 RigidBody2D otherBody;
2716 Vector2 otherBodyAnchor;
2717 /* readonly */
2718 RigidBody2D ownerBody;
2719 Vector2 ownerBodyAnchor;
2720 /* readonly */
2721 int refs;
2722 bool temporary;
2723 /* readonly */
2724 StringHash type;
2725 /* readonly */
2726 String typeName;
2727 /* readonly */
2728 int weakRefs;
2729 };
2730 
2731 class ConstraintFriction2D
2732 {
2733 public:
2734 // Methods:
2735 void ApplyAttributes();
2736 void DrawDebugGeometry(DebugRenderer, bool);
2737 Variant GetAttribute(const String&) const;
2738 ValueAnimation GetAttributeAnimation(const String&) const;
2739 float GetAttributeAnimationSpeed(const String&) const;
2740 float GetAttributeAnimationTime(const String&) const;
2741 WrapMode GetAttributeAnimationWrapMode(const String&) const;
2742 Variant GetAttributeDefault(const String&) const;
2743 bool GetInterceptNetworkUpdate(const String&) const;
2744 bool HasSubscribedToEvent(Object, const String&);
2745 bool HasSubscribedToEvent(const String&);
2746 bool Load(File, bool = false);
2747 bool Load(VectorBuffer&, bool = false);
2748 bool LoadJSON(const JSONValue&, bool = false);
2749 bool LoadXML(const XMLElement&, bool = false);
2750 void MarkNetworkUpdate() const;
2751 void Remove();
2752 void RemoveAttributeAnimation(const String&);
2753 void RemoveInstanceDefault();
2754 void RemoveObjectAnimation();
2755 void ResetToDefault();
2756 bool Save(File) const;
2757 bool Save(VectorBuffer&) const;
2758 bool SaveJSON(JSONValue&) const;
2759 bool SaveXML(XMLElement&) const;
2760 void SendEvent(const String&, VariantMap& = VariantMap ( ));
2761 void SetAnimationTime(float);
2762 bool SetAttribute(const String&, const Variant&);
2763 void SetAttributeAnimation(const String&, ValueAnimation, WrapMode = WM_LOOP, float = 1.0f);
2764 void SetAttributeAnimationSpeed(const String&, float);
2765 void SetAttributeAnimationTime(const String&, float);
2766 void SetAttributeAnimationWrapMode(const String&, WrapMode);
2767 void SetInterceptNetworkUpdate(const String&, bool);
2768 
2769 // Properties:
2770 Vector2 anchor;
2771 bool animationEnabled;
2772 /* readonly */
2773 Array<Variant> attributeDefaults;
2774 /* readonly */
2775 Array<AttributeInfo> attributeInfos;
2776 Array<Variant> attributes;
2777 /* readonly */
2778 String category;
2779 bool collideConnected;
2780 bool enabled;
2781 /* readonly */
2782 bool enabledEffective;
2783 /* readonly */
2784 uint id;
2785 float maxForce;
2786 float maxTorque;
2787 /* readonly */
2788 Node node;
2789 /* readonly */
2790 uint numAttributes;
2791 ObjectAnimation objectAnimation;
2792 RigidBody2D otherBody;
2793 /* readonly */
2794 RigidBody2D ownerBody;
2795 /* readonly */
2796 int refs;
2797 bool temporary;
2798 /* readonly */
2799 StringHash type;
2800 /* readonly */
2801 String typeName;
2802 /* readonly */
2803 int weakRefs;
2804 };
2805 
2806 class ConstraintGear2D
2807 {
2808 public:
2809 // Methods:
2810 void ApplyAttributes();
2811 void DrawDebugGeometry(DebugRenderer, bool);
2812 Variant GetAttribute(const String&) const;
2813 ValueAnimation GetAttributeAnimation(const String&) const;
2814 float GetAttributeAnimationSpeed(const String&) const;
2815 float GetAttributeAnimationTime(const String&) const;
2816 WrapMode GetAttributeAnimationWrapMode(const String&) const;
2817 Variant GetAttributeDefault(const String&) const;
2818 bool GetInterceptNetworkUpdate(const String&) const;
2819 bool HasSubscribedToEvent(Object, const String&);
2820 bool HasSubscribedToEvent(const String&);
2821 bool Load(File, bool = false);
2822 bool Load(VectorBuffer&, bool = false);
2823 bool LoadJSON(const JSONValue&, bool = false);
2824 bool LoadXML(const XMLElement&, bool = false);
2825 void MarkNetworkUpdate() const;
2826 void Remove();
2827 void RemoveAttributeAnimation(const String&);
2828 void RemoveInstanceDefault();
2829 void RemoveObjectAnimation();
2830 void ResetToDefault();
2831 bool Save(File) const;
2832 bool Save(VectorBuffer&) const;
2833 bool SaveJSON(JSONValue&) const;
2834 bool SaveXML(XMLElement&) const;
2835 void SendEvent(const String&, VariantMap& = VariantMap ( ));
2836 void SetAnimationTime(float);
2837 bool SetAttribute(const String&, const Variant&);
2838 void SetAttributeAnimation(const String&, ValueAnimation, WrapMode = WM_LOOP, float = 1.0f);
2839 void SetAttributeAnimationSpeed(const String&, float);
2840 void SetAttributeAnimationTime(const String&, float);
2841 void SetAttributeAnimationWrapMode(const String&, WrapMode);
2842 void SetInterceptNetworkUpdate(const String&, bool);
2843 
2844 // Properties:
2845 bool animationEnabled;
2846 /* readonly */
2847 Array<Variant> attributeDefaults;
2848 /* readonly */
2849 Array<AttributeInfo> attributeInfos;
2850 Array<Variant> attributes;
2851 /* readonly */
2852 String category;
2853 bool collideConnected;
2854 bool enabled;
2855 /* readonly */
2856 bool enabledEffective;
2857 /* readonly */
2858 uint id;
2859 /* readonly */
2860 Node node;
2861 /* readonly */
2862 uint numAttributes;
2863 ObjectAnimation objectAnimation;
2864 RigidBody2D otherBody;
2865 Constraint2D otherConstraint;
2866 /* readonly */
2867 RigidBody2D ownerBody;
2868 Constraint2D ownerConstraint;
2869 float ratio;
2870 /* readonly */
2871 int refs;
2872 bool temporary;
2873 /* readonly */
2874 StringHash type;
2875 /* readonly */
2876 String typeName;
2877 /* readonly */
2878 int weakRefs;
2879 };
2880 
2881 class ConstraintMotor2D
2882 {
2883 public:
2884 // Methods:
2885 void ApplyAttributes();
2886 void DrawDebugGeometry(DebugRenderer, bool);
2887 Variant GetAttribute(const String&) const;
2888 ValueAnimation GetAttributeAnimation(const String&) const;
2889 float GetAttributeAnimationSpeed(const String&) const;
2890 float GetAttributeAnimationTime(const String&) const;
2891 WrapMode GetAttributeAnimationWrapMode(const String&) const;
2892 Variant GetAttributeDefault(const String&) const;
2893 bool GetInterceptNetworkUpdate(const String&) const;
2894 bool HasSubscribedToEvent(Object, const String&);
2895 bool HasSubscribedToEvent(const String&);
2896 bool Load(File, bool = false);
2897 bool Load(VectorBuffer&, bool = false);
2898 bool LoadJSON(const JSONValue&, bool = false);
2899 bool LoadXML(const XMLElement&, bool = false);
2900 void MarkNetworkUpdate() const;
2901 void Remove();
2902 void RemoveAttributeAnimation(const String&);
2903 void RemoveInstanceDefault();
2904 void RemoveObjectAnimation();
2905 void ResetToDefault();
2906 bool Save(File) const;
2907 bool Save(VectorBuffer&) const;
2908 bool SaveJSON(JSONValue&) const;
2909 bool SaveXML(XMLElement&) const;
2910 void SendEvent(const String&, VariantMap& = VariantMap ( ));
2911 void SetAnimationTime(float);
2912 bool SetAttribute(const String&, const Variant&);
2913 void SetAttributeAnimation(const String&, ValueAnimation, WrapMode = WM_LOOP, float = 1.0f);
2914 void SetAttributeAnimationSpeed(const String&, float);
2915 void SetAttributeAnimationTime(const String&, float);
2916 void SetAttributeAnimationWrapMode(const String&, WrapMode);
2917 void SetInterceptNetworkUpdate(const String&, bool);
2918 
2919 // Properties:
2920 float angularOffset;
2921 bool animationEnabled;
2922 /* readonly */
2923 Array<Variant> attributeDefaults;
2924 /* readonly */
2925 Array<AttributeInfo> attributeInfos;
2926 Array<Variant> attributes;
2927 /* readonly */
2928 String category;
2929 bool collideConnected;
2930 float correctionFactor;
2931 bool enabled;
2932 /* readonly */
2933 bool enabledEffective;
2934 /* readonly */
2935 uint id;
2936 Vector2 linearOffset;
2937 float maxForce;
2938 float maxTorque;
2939 /* readonly */
2940 Node node;
2941 /* readonly */
2942 uint numAttributes;
2943 ObjectAnimation objectAnimation;
2944 RigidBody2D otherBody;
2945 /* readonly */
2946 RigidBody2D ownerBody;
2947 /* readonly */
2948 int refs;
2949 bool temporary;
2950 /* readonly */
2951 StringHash type;
2952 /* readonly */
2953 String typeName;
2954 /* readonly */
2955 int weakRefs;
2956 };
2957 
2958 class ConstraintMouse2D
2959 {
2960 public:
2961 // Methods:
2962 void ApplyAttributes();
2963 void DrawDebugGeometry(DebugRenderer, bool);
2964 Variant GetAttribute(const String&) const;
2965 ValueAnimation GetAttributeAnimation(const String&) const;
2966 float GetAttributeAnimationSpeed(const String&) const;
2967 float GetAttributeAnimationTime(const String&) const;
2968 WrapMode GetAttributeAnimationWrapMode(const String&) const;
2969 Variant GetAttributeDefault(const String&) const;
2970 bool GetInterceptNetworkUpdate(const String&) const;
2971 bool HasSubscribedToEvent(Object, const String&);
2972 bool HasSubscribedToEvent(const String&);
2973 bool Load(File, bool = false);
2974 bool Load(VectorBuffer&, bool = false);
2975 bool LoadJSON(const JSONValue&, bool = false);
2976 bool LoadXML(const XMLElement&, bool = false);
2977 void MarkNetworkUpdate() const;
2978 void Remove();
2979 void RemoveAttributeAnimation(const String&);
2980 void RemoveInstanceDefault();
2981 void RemoveObjectAnimation();
2982 void ResetToDefault();
2983 bool Save(File) const;
2984 bool Save(VectorBuffer&) const;
2985 bool SaveJSON(JSONValue&) const;
2986 bool SaveXML(XMLElement&) const;
2987 void SendEvent(const String&, VariantMap& = VariantMap ( ));
2988 void SetAnimationTime(float);
2989 bool SetAttribute(const String&, const Variant&);
2990 void SetAttributeAnimation(const String&, ValueAnimation, WrapMode = WM_LOOP, float = 1.0f);
2991 void SetAttributeAnimationSpeed(const String&, float);
2992 void SetAttributeAnimationTime(const String&, float);
2993 void SetAttributeAnimationWrapMode(const String&, WrapMode);
2994 void SetInterceptNetworkUpdate(const String&, bool);
2995 
2996 // Properties:
2997 bool animationEnabled;
2998 /* readonly */
2999 Array<Variant> attributeDefaults;
3000 /* readonly */
3001 Array<AttributeInfo> attributeInfos;
3002 Array<Variant> attributes;
3003 /* readonly */
3004 String category;
3005 bool collideConnected;
3006 float dampingRatio;
3007 bool enabled;
3008 /* readonly */
3009 bool enabledEffective;
3010 float frequencyHz;
3011 /* readonly */
3012 uint id;
3013 float maxForce;
3014 /* readonly */
3015 Node node;
3016 /* readonly */
3017 uint numAttributes;
3018 ObjectAnimation objectAnimation;
3019 RigidBody2D otherBody;
3020 /* readonly */
3021 RigidBody2D ownerBody;
3022 /* readonly */
3023 int refs;
3024 Vector2 target;
3025 bool temporary;
3026 /* readonly */
3027 StringHash type;
3028 /* readonly */
3029 String typeName;
3030 /* readonly */
3031 int weakRefs;
3032 };
3033 
3034 class ConstraintPrismatic2D
3035 {
3036 public:
3037 // Methods:
3038 void ApplyAttributes();
3039 void DrawDebugGeometry(DebugRenderer, bool);
3040 Variant GetAttribute(const String&) const;
3041 ValueAnimation GetAttributeAnimation(const String&) const;
3042 float GetAttributeAnimationSpeed(const String&) const;
3043 float GetAttributeAnimationTime(const String&) const;
3044 WrapMode GetAttributeAnimationWrapMode(const String&) const;
3045 Variant GetAttributeDefault(const String&) const;
3046 bool GetInterceptNetworkUpdate(const String&) const;
3047 bool HasSubscribedToEvent(Object, const String&);
3048 bool HasSubscribedToEvent(const String&);
3049 bool Load(File, bool = false);
3050 bool Load(VectorBuffer&, bool = false);
3051 bool LoadJSON(const JSONValue&, bool = false);
3052 bool LoadXML(const XMLElement&, bool = false);
3053 void MarkNetworkUpdate() const;
3054 void Remove();
3055 void RemoveAttributeAnimation(const String&);
3056 void RemoveInstanceDefault();
3057 void RemoveObjectAnimation();
3058 void ResetToDefault();
3059 bool Save(File) const;
3060 bool Save(VectorBuffer&) const;
3061 bool SaveJSON(JSONValue&) const;
3062 bool SaveXML(XMLElement&) const;
3063 void SendEvent(const String&, VariantMap& = VariantMap ( ));
3064 void SetAnimationTime(float);
3065 bool SetAttribute(const String&, const Variant&);
3066 void SetAttributeAnimation(const String&, ValueAnimation, WrapMode = WM_LOOP, float = 1.0f);
3067 void SetAttributeAnimationSpeed(const String&, float);
3068 void SetAttributeAnimationTime(const String&, float);
3069 void SetAttributeAnimationWrapMode(const String&, WrapMode);
3070 void SetInterceptNetworkUpdate(const String&, bool);
3071 
3072 // Properties:
3073 Vector2 anchor;
3074 bool animationEnabled;
3075 /* readonly */
3076 Array<Variant> attributeDefaults;
3077 /* readonly */
3078 Array<AttributeInfo> attributeInfos;
3079 Array<Variant> attributes;
3080 Vector2 axis;
3081 /* readonly */
3082 String category;
3083 bool collideConnected;
3084 bool enableLimit;
3085 bool enableMotor;
3086 bool enabled;
3087 /* readonly */
3088 bool enabledEffective;
3089 /* readonly */
3090 uint id;
3091 float lowerTranslation;
3092 float maxMotorForce;
3093 float motorSpeed;
3094 /* readonly */
3095 Node node;
3096 /* readonly */
3097 uint numAttributes;
3098 ObjectAnimation objectAnimation;
3099 RigidBody2D otherBody;
3100 /* readonly */
3101 RigidBody2D ownerBody;
3102 /* readonly */
3103 int refs;
3104 bool temporary;
3105 /* readonly */
3106 StringHash type;
3107 /* readonly */
3108 String typeName;
3109 float upperTranslation;
3110 /* readonly */
3111 int weakRefs;
3112 };
3113 
3114 class ConstraintPulley2D
3115 {
3116 public:
3117 // Methods:
3118 void ApplyAttributes();
3119 void DrawDebugGeometry(DebugRenderer, bool);
3120 Variant GetAttribute(const String&) const;
3121 ValueAnimation GetAttributeAnimation(const String&) const;
3122 float GetAttributeAnimationSpeed(const String&) const;
3123 float GetAttributeAnimationTime(const String&) const;
3124 WrapMode GetAttributeAnimationWrapMode(const String&) const;
3125 Variant GetAttributeDefault(const String&) const;
3126 bool GetInterceptNetworkUpdate(const String&) const;
3127 bool HasSubscribedToEvent(Object, const String&);
3128 bool HasSubscribedToEvent(const String&);
3129 bool Load(File, bool = false);
3130 bool Load(VectorBuffer&, bool = false);
3131 bool LoadJSON(const JSONValue&, bool = false);
3132 bool LoadXML(const XMLElement&, bool = false);
3133 void MarkNetworkUpdate() const;
3134 void Remove();
3135 void RemoveAttributeAnimation(const String&);
3136 void RemoveInstanceDefault();
3137 void RemoveObjectAnimation();
3138 void ResetToDefault();
3139 bool Save(File) const;
3140 bool Save(VectorBuffer&) const;
3141 bool SaveJSON(JSONValue&) const;
3142 bool SaveXML(XMLElement&) const;
3143 void SendEvent(const String&, VariantMap& = VariantMap ( ));
3144 void SetAnimationTime(float);
3145 bool SetAttribute(const String&, const Variant&);
3146 void SetAttributeAnimation(const String&, ValueAnimation, WrapMode = WM_LOOP, float = 1.0f);
3147 void SetAttributeAnimationSpeed(const String&, float);
3148 void SetAttributeAnimationTime(const String&, float);
3149 void SetAttributeAnimationWrapMode(const String&, WrapMode);
3150 void SetInterceptNetworkUpdate(const String&, bool);
3151 
3152 // Properties:
3153 bool animationEnabled;
3154 /* readonly */
3155 Array<Variant> attributeDefaults;
3156 /* readonly */
3157 Array<AttributeInfo> attributeInfos;
3158 Array<Variant> attributes;
3159 /* readonly */
3160 String category;
3161 bool collideConnected;
3162 bool enabled;
3163 /* readonly */
3164 bool enabledEffective;
3165 /* readonly */
3166 uint id;
3167 /* readonly */
3168 Node node;
3169 /* readonly */
3170 uint numAttributes;
3171 ObjectAnimation objectAnimation;
3172 RigidBody2D otherBody;
3173 Vector2 otherBodyAnchor;
3174 Vector2 otherBodyGroundAnchor;
3175 /* readonly */
3176 RigidBody2D ownerBody;
3177 Vector2 ownerBodyAnchor;
3178 Vector2 ownerBodyGroundAnchor;
3179 float ratio;
3180 /* readonly */
3181 int refs;
3182 bool temporary;
3183 /* readonly */
3184 StringHash type;
3185 /* readonly */
3186 String typeName;
3187 /* readonly */
3188 int weakRefs;
3189 };
3190 
3191 class ConstraintRevolute2D
3192 {
3193 public:
3194 // Methods:
3195 void ApplyAttributes();
3196 void DrawDebugGeometry(DebugRenderer, bool);
3197 Variant GetAttribute(const String&) const;
3198 ValueAnimation GetAttributeAnimation(const String&) const;
3199 float GetAttributeAnimationSpeed(const String&) const;
3200 float GetAttributeAnimationTime(const String&) const;
3201 WrapMode GetAttributeAnimationWrapMode(const String&) const;
3202 Variant GetAttributeDefault(const String&) const;
3203 bool GetInterceptNetworkUpdate(const String&) const;
3204 bool HasSubscribedToEvent(Object, const String&);
3205 bool HasSubscribedToEvent(const String&);
3206 bool Load(File, bool = false);
3207 bool Load(VectorBuffer&, bool = false);
3208 bool LoadJSON(const JSONValue&, bool = false);
3209 bool LoadXML(const XMLElement&, bool = false);
3210 void MarkNetworkUpdate() const;
3211 void Remove();
3212 void RemoveAttributeAnimation(const String&);
3213 void RemoveInstanceDefault();
3214 void RemoveObjectAnimation();
3215 void ResetToDefault();
3216 bool Save(File) const;
3217 bool Save(VectorBuffer&) const;
3218 bool SaveJSON(JSONValue&) const;
3219 bool SaveXML(XMLElement&) const;
3220 void SendEvent(const String&, VariantMap& = VariantMap ( ));
3221 void SetAnimationTime(float);
3222 bool SetAttribute(const String&, const Variant&);
3223 void SetAttributeAnimation(const String&, ValueAnimation, WrapMode = WM_LOOP, float = 1.0f);
3224 void SetAttributeAnimationSpeed(const String&, float);
3225 void SetAttributeAnimationTime(const String&, float);
3226 void SetAttributeAnimationWrapMode(const String&, WrapMode);
3227 void SetInterceptNetworkUpdate(const String&, bool);
3228 
3229 // Properties:
3230 Vector2 anchor;
3231 bool animationEnabled;
3232 /* readonly */
3233 Array<Variant> attributeDefaults;
3234 /* readonly */
3235 Array<AttributeInfo> attributeInfos;
3236 Array<Variant> attributes;
3237 /* readonly */
3238 String category;
3239 bool collideConnected;
3240 bool enableLimit;
3241 bool enableMotor;
3242 bool enabled;
3243 /* readonly */
3244 bool enabledEffective;
3245 /* readonly */
3246 uint id;
3247 float lowerAngle;
3248 float maxMotorTorque;
3249 float motorSpeed;
3250 /* readonly */
3251 Node node;
3252 /* readonly */
3253 uint numAttributes;
3254 ObjectAnimation objectAnimation;
3255 RigidBody2D otherBody;
3256 /* readonly */
3257 RigidBody2D ownerBody;
3258 /* readonly */
3259 int refs;
3260 bool temporary;
3261 /* readonly */
3262 StringHash type;
3263 /* readonly */
3264 String typeName;
3265 float upperAngle;
3266 /* readonly */
3267 int weakRefs;
3268 };
3269 
3270 class ConstraintRope2D
3271 {
3272 public:
3273 // Methods:
3274 void ApplyAttributes();
3275 void DrawDebugGeometry(DebugRenderer, bool);
3276 Variant GetAttribute(const String&) const;
3277 ValueAnimation GetAttributeAnimation(const String&) const;
3278 float GetAttributeAnimationSpeed(const String&) const;
3279 float GetAttributeAnimationTime(const String&) const;
3280 WrapMode GetAttributeAnimationWrapMode(const String&) const;
3281 Variant GetAttributeDefault(const String&) const;
3282 bool GetInterceptNetworkUpdate(const String&) const;
3283 bool HasSubscribedToEvent(Object, const String&);
3284 bool HasSubscribedToEvent(const String&);
3285 bool Load(File, bool = false);
3286 bool Load(VectorBuffer&, bool = false);
3287 bool LoadJSON(const JSONValue&, bool = false);
3288 bool LoadXML(const XMLElement&, bool = false);
3289 void MarkNetworkUpdate() const;
3290 void Remove();
3291 void RemoveAttributeAnimation(const String&);
3292 void RemoveInstanceDefault();
3293 void RemoveObjectAnimation();
3294 void ResetToDefault();
3295 bool Save(File) const;
3296 bool Save(VectorBuffer&) const;
3297 bool SaveJSON(JSONValue&) const;
3298 bool SaveXML(XMLElement&) const;
3299 void SendEvent(const String&, VariantMap& = VariantMap ( ));
3300 void SetAnimationTime(float);
3301 bool SetAttribute(const String&, const Variant&);
3302 void SetAttributeAnimation(const String&, ValueAnimation, WrapMode = WM_LOOP, float = 1.0f);
3303 void SetAttributeAnimationSpeed(const String&, float);
3304 void SetAttributeAnimationTime(const String&, float);
3305 void SetAttributeAnimationWrapMode(const String&, WrapMode);
3306 void SetInterceptNetworkUpdate(const String&, bool);
3307 
3308 // Properties:
3309 bool animationEnabled;
3310 /* readonly */
3311 Array<Variant> attributeDefaults;
3312 /* readonly */
3313 Array<AttributeInfo> attributeInfos;
3314 Array<Variant> attributes;
3315 /* readonly */
3316 String category;
3317 bool collideConnected;
3318 bool enabled;
3319 /* readonly */
3320 bool enabledEffective;
3321 /* readonly */
3322 uint id;
3323 float maxLength;
3324 /* readonly */
3325 Node node;
3326 /* readonly */
3327 uint numAttributes;
3328 ObjectAnimation objectAnimation;
3329 RigidBody2D otherBody;
3330 Vector2 otherBodyAnchor;
3331 /* readonly */
3332 RigidBody2D ownerBody;
3333 Vector2 ownerBodyAnchor;
3334 /* readonly */
3335 int refs;
3336 bool temporary;
3337 /* readonly */
3338 StringHash type;
3339 /* readonly */
3340 String typeName;
3341 /* readonly */
3342 int weakRefs;
3343 };
3344 
3345 class ConstraintWeld2D
3346 {
3347 public:
3348 // Methods:
3349 void ApplyAttributes();
3350 void DrawDebugGeometry(DebugRenderer, bool);
3351 Variant GetAttribute(const String&) const;
3352 ValueAnimation GetAttributeAnimation(const String&) const;
3353 float GetAttributeAnimationSpeed(const String&) const;
3354 float GetAttributeAnimationTime(const String&) const;
3355 WrapMode GetAttributeAnimationWrapMode(const String&) const;
3356 Variant GetAttributeDefault(const String&) const;
3357 bool GetInterceptNetworkUpdate(const String&) const;
3358 bool HasSubscribedToEvent(Object, const String&);
3359 bool HasSubscribedToEvent(const String&);
3360 bool Load(File, bool = false);
3361 bool Load(VectorBuffer&, bool = false);
3362 bool LoadJSON(const JSONValue&, bool = false);
3363 bool LoadXML(const XMLElement&, bool = false);
3364 void MarkNetworkUpdate() const;
3365 void Remove();
3366 void RemoveAttributeAnimation(const String&);
3367 void RemoveInstanceDefault();
3368 void RemoveObjectAnimation();
3369 void ResetToDefault();
3370 bool Save(File) const;
3371 bool Save(VectorBuffer&) const;
3372 bool SaveJSON(JSONValue&) const;
3373 bool SaveXML(XMLElement&) const;
3374 void SendEvent(const String&, VariantMap& = VariantMap ( ));
3375 void SetAnimationTime(float);
3376 bool SetAttribute(const String&, const Variant&);
3377 void SetAttributeAnimation(const String&, ValueAnimation, WrapMode = WM_LOOP, float = 1.0f);
3378 void SetAttributeAnimationSpeed(const String&, float);
3379 void SetAttributeAnimationTime(const String&, float);
3380 void SetAttributeAnimationWrapMode(const String&, WrapMode);
3381 void SetInterceptNetworkUpdate(const String&, bool);
3382 
3383 // Properties:
3384 Vector2 anchor;
3385 bool animationEnabled;
3386 /* readonly */
3387 Array<Variant> attributeDefaults;
3388 /* readonly */
3389 Array<AttributeInfo> attributeInfos;
3390 Array<Variant> attributes;
3391 /* readonly */
3392 String category;
3393 bool collideConnected;
3394 float dampingRatio;
3395 bool enabled;
3396 /* readonly */
3397 bool enabledEffective;
3398 float frequencyHz;
3399 /* readonly */
3400 uint id;
3401 /* readonly */
3402 Node node;
3403 /* readonly */
3404 uint numAttributes;
3405 ObjectAnimation objectAnimation;
3406 RigidBody2D otherBody;
3407 /* readonly */
3408 RigidBody2D ownerBody;
3409 /* readonly */
3410 int refs;
3411 bool temporary;
3412 /* readonly */
3413 StringHash type;
3414 /* readonly */
3415 String typeName;
3416 /* readonly */
3417 int weakRefs;
3418 };
3419 
3420 class ConstraintWheel2D
3421 {
3422 public:
3423 // Methods:
3424 void ApplyAttributes();
3425 void DrawDebugGeometry(DebugRenderer, bool);
3426 Variant GetAttribute(const String&) const;
3427 ValueAnimation GetAttributeAnimation(const String&) const;
3428 float GetAttributeAnimationSpeed(const String&) const;
3429 float GetAttributeAnimationTime(const String&) const;
3430 WrapMode GetAttributeAnimationWrapMode(const String&) const;
3431 Variant GetAttributeDefault(const String&) const;
3432 bool GetInterceptNetworkUpdate(const String&) const;
3433 bool HasSubscribedToEvent(Object, const String&);
3434 bool HasSubscribedToEvent(const String&);
3435 bool Load(File, bool = false);
3436 bool Load(VectorBuffer&, bool = false);
3437 bool LoadJSON(const JSONValue&, bool = false);
3438 bool LoadXML(const XMLElement&, bool = false);
3439 void MarkNetworkUpdate() const;
3440 void Remove();
3441 void RemoveAttributeAnimation(const String&);
3442 void RemoveInstanceDefault();
3443 void RemoveObjectAnimation();
3444 void ResetToDefault();
3445 bool Save(File) const;
3446 bool Save(VectorBuffer&) const;
3447 bool SaveJSON(JSONValue&) const;
3448 bool SaveXML(XMLElement&) const;
3449 void SendEvent(const String&, VariantMap& = VariantMap ( ));
3450 void SetAnimationTime(float);
3451 bool SetAttribute(const String&, const Variant&);
3452 void SetAttributeAnimation(const String&, ValueAnimation, WrapMode = WM_LOOP, float = 1.0f);
3453 void SetAttributeAnimationSpeed(const String&, float);
3454 void SetAttributeAnimationTime(const String&, float);
3455 void SetAttributeAnimationWrapMode(const String&, WrapMode);
3456 void SetInterceptNetworkUpdate(const String&, bool);
3457 
3458 // Properties:
3459 Vector2 anchor;
3460 bool animationEnabled;
3461 /* readonly */
3462 Array<Variant> attributeDefaults;
3463 /* readonly */
3464 Array<AttributeInfo> attributeInfos;
3465 Array<Variant> attributes;
3466 Vector2 axis;
3467 /* readonly */
3468 String category;
3469 bool collideConnected;
3470 float dampingRatio;
3471 bool enableMotor;
3472 bool enabled;
3473 /* readonly */
3474 bool enabledEffective;
3475 float frequencyHz;
3476 /* readonly */
3477 uint id;
3478 float maxMotorTorque;
3479 float motorSpeed;
3480 /* readonly */
3481 Node node;
3482 /* readonly */
3483 uint numAttributes;
3484 ObjectAnimation objectAnimation;
3485 RigidBody2D otherBody;
3486 /* readonly */
3487 RigidBody2D ownerBody;
3488 /* readonly */
3489 int refs;
3490 bool temporary;
3491 /* readonly */
3492 StringHash type;
3493 /* readonly */
3494 String typeName;
3495 /* readonly */
3496 int weakRefs;
3497 };
3498 
3499 class Controls
3500 {
3501 public:
3502 ~Controls();
3503 Controls();
3504 Controls(const Controls&in);
3505 // Methods:
3506 bool IsDown(uint) const;
3507 bool IsPressed(uint, const Controls&) const;
3508 void Reset();
3509 void Set(uint, bool);
3510 
3511 // Properties:
3512 uint buttons;
3513 VariantMap extraData;
3514 float pitch;
3515 float yaw;
3516 };
3517 
3518 class CrowdAgent
3519 {
3520 public:
3521 // Methods:
3522 void ApplyAttributes();
3523 void DrawDebugGeometry(DebugRenderer, bool);
3524 void DrawDebugGeometry(bool);
3525 Variant GetAttribute(const String&) const;
3526 ValueAnimation GetAttributeAnimation(const String&) const;
3527 float GetAttributeAnimationSpeed(const String&) const;
3528 float GetAttributeAnimationTime(const String&) const;
3529 WrapMode GetAttributeAnimationWrapMode(const String&) const;
3530 Variant GetAttributeDefault(const String&) const;
3531 bool GetInterceptNetworkUpdate(const String&) const;
3532 bool HasSubscribedToEvent(Object, const String&);
3533 bool HasSubscribedToEvent(const String&);
3534 bool Load(File, bool = false);
3535 bool Load(VectorBuffer&, bool = false);
3536 bool LoadJSON(const JSONValue&, bool = false);
3537 bool LoadXML(const XMLElement&, bool = false);
3538 void MarkNetworkUpdate() const;
3539 void Remove();
3540 void RemoveAttributeAnimation(const String&);
3541 void RemoveInstanceDefault();
3542 void RemoveObjectAnimation();
3543 void ResetTarget();
3544 void ResetToDefault();
3545 bool Save(File) const;
3546 bool Save(VectorBuffer&) const;
3547 bool SaveJSON(JSONValue&) const;
3548 bool SaveXML(XMLElement&) const;
3549 void SendEvent(const String&, VariantMap& = VariantMap ( ));
3550 void SetAnimationTime(float);
3551 bool SetAttribute(const String&, const Variant&);
3552 void SetAttributeAnimation(const String&, ValueAnimation, WrapMode = WM_LOOP, float = 1.0f);
3553 void SetAttributeAnimationSpeed(const String&, float);
3554 void SetAttributeAnimationTime(const String&, float);
3555 void SetAttributeAnimationWrapMode(const String&, WrapMode);
3556 void SetInterceptNetworkUpdate(const String&, bool);
3557 
3558 // Properties:
3559 /* readonly */
3560 Vector3 actualVelocity;
3561 /* readonly */
3562 CrowdAgentState agentState;
3563 bool animationEnabled;
3564 /* readonly */
3565 bool arrived;
3566 /* readonly */
3567 Array<Variant> attributeDefaults;
3568 /* readonly */
3569 Array<AttributeInfo> attributeInfos;
3570 Array<Variant> attributes;
3571 /* readonly */
3572 String category;
3573 /* readonly */
3574 Vector3 desiredVelocity;
3575 bool enabled;
3576 /* readonly */
3577 bool enabledEffective;
3578 float height;
3579 /* readonly */
3580 uint id;
3581 /* readonly */
3582 bool inCrowd;
3583 float maxAccel;
3584 float maxSpeed;
3585 NavigationPushiness navigationPushiness;
3586 NavigationQuality navigationQuality;
3587 /* readonly */
3588 Node node;
3589 /* readonly */
3590 uint numAttributes;
3591 ObjectAnimation objectAnimation;
3592 uint obstacleAvoidanceType;
3593 /* readonly */
3594 Vector3 position;
3595 uint queryFilterType;
3596 float radius;
3597 /* readonly */
3598 int refs;
3599 /* readonly */
3600 bool requestedTarget;
3601 /* readonly */
3602 CrowdAgentRequestedTarget requestedTargetType;
3603 Vector3 targetPosition;
3604 /* readonly */
3605 CrowdAgentTargetState targetState;
3606 Vector3 targetVelocity;
3607 bool temporary;
3608 /* readonly */
3609 StringHash type;
3610 /* readonly */
3611 String typeName;
3612 bool updateNodePosition;
3613 /* readonly */
3614 int weakRefs;
3615 };
3616 
3617 class CrowdManager
3618 {
3619 public:
3620 // Methods:
3621 void ApplyAttributes();
3622 const CrowdObstacleAvoidanceParams& GetObstacleAvoidanceParams(uint);
3623 void DrawDebugGeometry(DebugRenderer, bool);
3624 void DrawDebugGeometry(bool);
3625 Vector3 FindNearestPoint(const Vector3&, int);
3626 Array<CrowdAgent> GetAgents(Node = null, bool = true);
3627 float GetAreaCost(uint, uint);
3628 Variant GetAttribute(const String&) const;
3629 ValueAnimation GetAttributeAnimation(const String&) const;
3630 float GetAttributeAnimationSpeed(const String&) const;
3631 float GetAttributeAnimationTime(const String&) const;
3632 WrapMode GetAttributeAnimationWrapMode(const String&) const;
3633 Variant GetAttributeDefault(const String&) const;
3634 float GetDistanceToWall(const Vector3&, float, int);
3635 uint16 GetExcludeFlags(uint);
3636 uint16 GetIncludeFlags(uint);
3637 bool GetInterceptNetworkUpdate(const String&) const;
3638 Vector3 GetRandomPoint(int);
3639 Vector3 GetRandomPointInCircle(const Vector3&, float, int);
3640 bool HasSubscribedToEvent(Object, const String&);
3641 bool HasSubscribedToEvent(const String&);
3642 bool Load(File, bool = false);
3643 bool Load(VectorBuffer&, bool = false);
3644 bool LoadJSON(const JSONValue&, bool = false);
3645 bool LoadXML(const XMLElement&, bool = false);
3646 void MarkNetworkUpdate() const;
3647 Vector3 MoveAlongSurface(const Vector3&, const Vector3&, int, uint = 3);
3648 Vector3 Raycast(const Vector3&, const Vector3&, int);
3649 void Remove();
3650 void RemoveAttributeAnimation(const String&);
3651 void RemoveInstanceDefault();
3652 void RemoveObjectAnimation();
3653 void ResetCrowdTarget(Node = null);
3654 void ResetToDefault();
3655 bool Save(File) const;
3656 bool Save(VectorBuffer&) const;
3657 bool SaveJSON(JSONValue&) const;
3658 bool SaveXML(XMLElement&) const;
3659 void SendEvent(const String&, VariantMap& = VariantMap ( ));
3660 void SetAnimationTime(float);
3661 void SetAreaCost(uint, uint, float);
3662 bool SetAttribute(const String&, const Variant&);
3663 void SetAttributeAnimation(const String&, ValueAnimation, WrapMode = WM_LOOP, float = 1.0f);
3664 void SetAttributeAnimationSpeed(const String&, float);
3665 void SetAttributeAnimationTime(const String&, float);
3666 void SetAttributeAnimationWrapMode(const String&, WrapMode);
3667 void SetCrowdTarget(const Vector3&, Node = null);
3668 void SetCrowdVelocity(const Vector3&, Node = null);
3669 void SetExcludeFlags(uint, uint16);
3670 void SetIncludeFlags(uint, uint16);
3671 void SetInterceptNetworkUpdate(const String&, bool);
3672 void SetObstacleAvoidanceParams(uint, const CrowdObstacleAvoidanceParams&);
3673 
3674 // Properties:
3675 bool animationEnabled;
3676 /* readonly */
3677 Array<Variant> attributeDefaults;
3678 /* readonly */
3679 Array<AttributeInfo> attributeInfos;
3680 Array<Variant> attributes;
3681 /* readonly */
3682 String category;
3683 bool enabled;
3684 /* readonly */
3685 bool enabledEffective;
3686 /* readonly */
3687 uint id;
3688 float maxAgentRadius;
3689 int maxAgents;
3690 NavigationMesh navMesh;
3691 /* readonly */
3692 Node node;
3693 /* readonly */
3694 Array<uint> numAreas;
3695 /* readonly */
3696 uint numAttributes;
3697 /* readonly */
3698 uint numObstacleAvoidanceTypes;
3699 /* readonly */
3700 uint numQueryFilterTypes;
3701 ObjectAnimation objectAnimation;
3702 /* readonly */
3703 int refs;
3704 bool temporary;
3705 /* readonly */
3706 StringHash type;
3707 /* readonly */
3708 String typeName;
3709 /* readonly */
3710 int weakRefs;
3711 };
3712 
3713 class CrowdObstacleAvoidanceParams
3714 {
3715 public:
3716 
3717 // Properties:
3718 uint8 adaptiveDepth;
3719 uint8 adaptiveDivs;
3720 uint8 adaptiveRings;
3721 uint8 gridSize;
3722 float horizTime;
3723 float velBias;
3724 float weightCurVel;
3725 float weightDesVel;
3726 float weightSide;
3727 float weightToi;
3728 };
3729 
3730 class Cursor
3731 {
3732 public:
3733 Cursor();
3734 Cursor(const String&in);
3735 // Methods:
3736 void AddChild(UIElement);
3737 void AddTag(const String&);
3738 void AddTags(const String&, int8 = ';');
3739 void ApplyAttributes();
3740 void BringToFront();
3741 UIElement CreateChild(const String&, const String& = String ( ), uint = M_MAX_UNSIGNED);
3742 void DefineShape(CursorShape, Texture, const IntRect&, const IntVector2&);
3743 void DefineShape(const String&, Texture, const IntRect&, const IntVector2&);
3744 void DisableLayoutUpdate();
3745 IntVector2 ElementToScreen(const IntVector2&);
3746 void EnableLayoutUpdate();
3747 uint FindChild(UIElement) const;
3748 Variant GetAttribute(const String&) const;
3749 ValueAnimation GetAttributeAnimation(const String&) const;
3750 float GetAttributeAnimationSpeed(const String&) const;
3751 float GetAttributeAnimationTime(const String&) const;
3752 WrapMode GetAttributeAnimationWrapMode(const String&) const;
3753 Variant GetAttributeDefault(const String&) const;
3754 UIElement GetChild(const String&, bool = false) const;
3755 UIElement GetChild(const StringHash&, const Variant& = Variant ( ), bool = false) const;
3756 Array<UIElement> GetChildren(bool = false) const;
3757 Array<UIElement> GetChildrenWithTag(const String&, bool = false) const;
3758 UIElement GetElementEventSender() const;
3759 bool GetInterceptNetworkUpdate(const String&) const;
3760 uint GetNumChildren(bool) const;
3761 bool HasSubscribedToEvent(Object, const String&);
3762 bool HasSubscribedToEvent(const String&);
3763 bool HasTag(const String&) const;
3764 void InsertChild(uint, UIElement);
3765 bool IsInside(IntVector2, bool);
3766 bool IsInsideCombined(IntVector2, bool);
3767 bool Load(File, bool = false);
3768 bool Load(VectorBuffer&, bool = false);
3769 UIElement LoadChildXML(XMLFile, XMLFile = null);
3770 UIElement LoadChildXML(const XMLElement&, XMLFile = null, bool = false);
3771 bool LoadJSON(const JSONValue&, bool = false);
3772 bool LoadXML(File);
3773 bool LoadXML(VectorBuffer&);
3774 bool LoadXML(XMLFile, XMLFile);
3775 bool LoadXML(const XMLElement&, XMLFile, bool = false);
3776 bool LoadXML(const XMLElement&, bool = false);
3777 void MarkNetworkUpdate() const;
3778 void Remove();
3779 void RemoveAllChildren();
3780 void RemoveAllTags();
3781 void RemoveAttributeAnimation(const String&);
3782 void RemoveChild(UIElement, uint = 0);
3783 void RemoveChild(uint);
3784 void RemoveInstanceDefault();
3785 void RemoveObjectAnimation();
3786 bool RemoveTag(const String&);
3787 void ResetDeepEnabled();
3788 void ResetToDefault();
3789 bool Save(File) const;
3790 bool Save(VectorBuffer&) const;
3791 bool SaveJSON(JSONValue&) const;
3792 bool SaveXML(File, const String& = "\t");
3793 bool SaveXML(VectorBuffer&, const String& = "\t");
3794 bool SaveXML(XMLElement&) const;
3795 IntVector2 ScreenToElement(const IntVector2&);
3796 void SendEvent(const String&, VariantMap& = VariantMap ( ));
3797 void SetAlignment(HorizontalAlignment, VerticalAlignment);
3798 void SetAnimationTime(float);
3799 bool SetAttribute(const String&, const Variant&);
3800 void SetAttributeAnimation(const String&, ValueAnimation, WrapMode = WM_LOOP, float = 1.0f);
3801 void SetAttributeAnimationSpeed(const String&, float);
3802 void SetAttributeAnimationTime(const String&, float);
3803 void SetAttributeAnimationWrapMode(const String&, WrapMode);
3804 void SetDeepEnabled(bool);
3805 void SetEnabledRecursive(bool);
3806 void SetFixedHeight(int);
3807 void SetFixedSize(int, int);
3808 void SetFixedWidth(int);
3809 void SetFullImageRect();
3810 void SetHoverOffset(int, int);
3811 void SetInterceptNetworkUpdate(const String&, bool);
3812 void SetLayout(LayoutMode, int = 0, const IntRect& = IntRect ( 0 , 0 , 0 , 0 ));
3813 void SetMaxAnchor(float, float);
3814 void SetMaxSize(int, int);
3815 void SetMinAnchor(float, float);
3816 void SetMinSize(int, int);
3817 void SetParent(UIElement, uint = M_MAX_UNSIGNED);
3818 void SetPivot(float, float);
3819 void SetPosition(int, int);
3820 void SetShape(CursorShape);
3821 void SetShape(const String&);
3822 void SetSize(int, int);
3823 bool SetStyle(const String&, XMLFile = null);
3824 bool SetStyle(const XMLElement&);
3825 bool SetStyleAuto(XMLFile = null);
3826 void UpdateLayout();
3827 const Variant& GetVar(const StringHash&);
3828 
3829 // Properties:
3830 bool animationEnabled;
3831 /* readonly */
3832 Array<Variant> attributeDefaults;
3833 /* readonly */
3834 Array<AttributeInfo> attributeInfos;
3835 Array<Variant> attributes;
3836 BlendMode blendMode;
3837 IntRect border;
3838 bool bringToBack;
3839 bool bringToFront;
3840 /* readonly */
3841 String category;
3842 /* readonly */
3843 IntVector2 childOffset;
3844 /* readonly */
3845 Array<UIElement> children;
3846 IntRect clipBorder;
3847 bool clipChildren;
3848 /* writeonly */
3849 Color color;
3850 /* readonly */
3851 bool colorGradient;
3852 Array<Color> colors;
3853 /* readonly */
3854 IntRect combinedScreenRect;
3855 XMLFile defaultStyle;
3856 /* readonly */
3857 float derivedOpacity;
3858 /* readonly */
3859 uint dragButtonCombo;
3860 /* readonly */
3861 int dragButtonCount;
3862 uint dragDropMode;
3863 bool editable;
3864 bool elementEventSender;
3865 bool enableAnchor;
3866 bool enabled;
3867 /* readonly */
3868 bool enabledSelf;
3869 /* readonly */
3870 bool fixedHeight;
3871 /* readonly */
3872 bool fixedSize;
3873 /* readonly */
3874 bool fixedWidth;
3875 bool focus;
3876 FocusMode focusMode;
3877 int height;
3878 HorizontalAlignment horizontalAlignment;
3879 IntVector2 hoverOffset;
3880 /* readonly */
3881 bool hovering;
3882 IntRect imageBorder;
3883 IntRect imageRect;
3884 int indent;
3885 int indentSpacing;
3886 /* readonly */
3887 int indentWidth;
3888 bool internal;
3889 IntRect layoutBorder;
3890 Vector2 layoutFlexScale;
3891 LayoutMode layoutMode;
3892 int layoutSpacing;
3893 Vector2 maxAnchor;
3894 int maxHeight;
3895 IntVector2 maxOffset;
3896 IntVector2 maxSize;
3897 int maxWidth;
3898 Vector2 minAnchor;
3899 int minHeight;
3900 IntVector2 minOffset;
3901 IntVector2 minSize;
3902 int minWidth;
3903 String name;
3904 /* readonly */
3905 uint numAllChildren;
3906 /* readonly */
3907 uint numAttributes;
3908 /* readonly */
3909 uint numChildren;
3910 ObjectAnimation objectAnimation;
3911 float opacity;
3912 UIElement parent;
3913 Vector2 pivot;
3914 IntVector2 position;
3915 int priority;
3916 /* readonly */
3917 int refs;
3918 /* readonly */
3919 UIElement root;
3920 /* readonly */
3921 IntVector2 screenPosition;
3922 bool selected;
3923 String shape;
3924 IntVector2 size;
3925 bool sortChildren;
3926 String style;
3927 /* readonly */
3928 Array<String> tags;
3929 bool temporary;
3930 Texture texture;
3931 bool tiled;
3932 TraversalMode traversalMode;
3933 /* readonly */
3934 StringHash type;
3935 /* readonly */
3936 String typeName;
3937 bool useDerivedOpacity;
3938 bool useSystemShapes;
3939 /* readonly */
3940 VariantMap vars;
3941 VerticalAlignment verticalAlignment;
3942 bool visible;
3943 /* readonly */
3944 bool visibleEffective;
3945 /* readonly */
3946 int weakRefs;
3947 int width;
3948 };
3949 
3950 class CustomGeometry
3951 {
3952 public:
3953 // Methods:
3954 void ApplyAttributes();
3955 void BeginGeometry(uint, PrimitiveType);
3956 void Clear();
3957 void Commit();
3958 void DefineColor(const Color&);
3959 void DefineGeometry(uint, PrimitiveType, uint, bool, bool, bool, bool);
3960 void DefineNormal(const Vector3&);
3961 void DefineTangent(const Vector4&);
3962 void DefineTexCoord(const Vector2&);
3963 void DefineVertex(const Vector3&);
3964 void DrawDebugGeometry(DebugRenderer, bool);
3965 Variant GetAttribute(const String&) const;
3966 ValueAnimation GetAttributeAnimation(const String&) const;
3967 float GetAttributeAnimationSpeed(const String&) const;
3968 float GetAttributeAnimationTime(const String&) const;
3969 WrapMode GetAttributeAnimationWrapMode(const String&) const;
3970 Variant GetAttributeDefault(const String&) const;
3971 bool GetInterceptNetworkUpdate(const String&) const;
3972 CustomGeometryVertex GetVertex(uint, uint);
3973 bool HasSubscribedToEvent(Object, const String&);
3974 bool HasSubscribedToEvent(const String&);
3975 bool IsInView(Camera) const;
3976 bool Load(File, bool = false);
3977 bool Load(VectorBuffer&, bool = false);
3978 bool LoadJSON(const JSONValue&, bool = false);
3979 bool LoadXML(const XMLElement&, bool = false);
3980 void MarkNetworkUpdate() const;
3981 void Remove();
3982 void RemoveAttributeAnimation(const String&);
3983 void RemoveInstanceDefault();
3984 void RemoveObjectAnimation();
3985 void ResetToDefault();
3986 bool Save(File) const;
3987 bool Save(VectorBuffer&) const;
3988 bool SaveJSON(JSONValue&) const;
3989 bool SaveXML(XMLElement&) const;
3990 void SendEvent(const String&, VariantMap& = VariantMap ( ));
3991 void SetAnimationTime(float);
3992 bool SetAttribute(const String&, const Variant&);
3993 void SetAttributeAnimation(const String&, ValueAnimation, WrapMode = WM_LOOP, float = 1.0f);
3994 void SetAttributeAnimationSpeed(const String&, float);
3995 void SetAttributeAnimationTime(const String&, float);
3996 void SetAttributeAnimationWrapMode(const String&, WrapMode);
3997 void SetInterceptNetworkUpdate(const String&, bool);
3998 
3999 // Properties:
4000 bool animationEnabled;
4001 /* readonly */
4002 Array<Variant> attributeDefaults;
4003 /* readonly */
4004 Array<AttributeInfo> attributeInfos;
4005 Array<Variant> attributes;
4006 /* readonly */
4007 BoundingBox boundingBox;
4008 bool castShadows;
4009 /* readonly */
4010 String category;
4011 float drawDistance;
4012 bool dynamic;
4013 bool enabled;
4014 /* readonly */
4015 bool enabledEffective;
4016 /* readonly */
4017 uint id;
4018 /* readonly */
4019 bool inView;
4020 uint lightMask;
4021 float lodBias;
4022 /* writeonly */
4023 Material material;
4024 Array<Material> materials;
4025 uint maxLights;
4026 /* readonly */
4027 Node node;
4028 /* readonly */
4029 uint numAttributes;
4030 uint numGeometries;
4031 /* readonly */
4032 Array<uint> numVertices;
4033 ObjectAnimation objectAnimation;
4034 bool occludee;
4035 bool occluder;
4036 /* readonly */
4037 int refs;
4038 float shadowDistance;
4039 uint shadowMask;
4040 bool temporary;
4041 /* readonly */
4042 StringHash type;
4043 /* readonly */
4044 String typeName;
4045 uint viewMask;
4046 /* readonly */
4047 int weakRefs;
4048 /* readonly */
4049 BoundingBox worldBoundingBox;
4050 /* readonly */
4051 Zone zone;
4052 uint zoneMask;
4053 };
4054 
4055 class CustomGeometryVertex
4056 {
4057 public:
4058 
4059 // Properties:
4060 uint color;
4061 Vector3 normal;
4062 Vector3 position;
4063 Vector4 tangent;
4064 Vector2 texCoord;
4065 };
4066 
4067 class Database
4068 {
4069 public:
4070 // Methods:
4071 DbConnection Connect(const String&);
4072 void Disconnect(DbConnection);
4073 bool HasSubscribedToEvent(Object, const String&);
4074 bool HasSubscribedToEvent(const String&);
4075 void SendEvent(const String&, VariantMap& = VariantMap ( ));
4076 
4077 // Properties:
4078 /* readonly */
4079 String category;
4080 uint poolSize;
4081 /* readonly */
4082 bool pooling;
4083 /* readonly */
4084 int refs;
4085 /* readonly */
4086 StringHash type;
4087 /* readonly */
4088 String typeName;
4089 /* readonly */
4090 int weakRefs;
4091 };
4092 
4093 class DbConnection
4094 {
4095 public:
4096 // Methods:
4097 DbResult Execute(const String&, bool = false);
4098 bool HasSubscribedToEvent(Object, const String&);
4099 bool HasSubscribedToEvent(const String&);
4100 void SendEvent(const String&, VariantMap& = VariantMap ( ));
4101 
4102 // Properties:
4103 /* readonly */
4104 String category;
4105 /* readonly */
4106 bool connected;
4107 /* readonly */
4108 String connectionString;
4109 /* readonly */
4110 int refs;
4111 /* readonly */
4112 StringHash type;
4113 /* readonly */
4114 String typeName;
4115 /* readonly */
4116 int weakRefs;
4117 };
4118 
4119 class DbResult
4120 {
4121 public:
4122 ~DbResult();
4123 DbResult();
4124 DbResult(const DbResult&in);
4125 
4126 // Properties:
4127 /* readonly */
4128 Array<String> columns;
4129 /* readonly */
4130 int64 numAffectedRows;
4131 /* readonly */
4132 uint numColumns;
4133 /* readonly */
4134 uint numRows;
4135 /* readonly */
4136 Array<Array<Variant>> row;
4137 };
4138 
4139 class DebugHud
4140 {
4141 public:
4142 // Methods:
4143 void ClearAppStats();
4144 bool HasSubscribedToEvent(Object, const String&);
4145 bool HasSubscribedToEvent(const String&);
4146 void ResetAppStats(const String&);
4147 void SendEvent(const String&, VariantMap& = VariantMap ( ));
4148 void SetAppStats(const String&, const String&);
4149 void SetAppStats(const String&, const Variant&);
4150 void Toggle(uint);
4151 void ToggleAll();
4152 void Update();
4153 
4154 // Properties:
4155 /* readonly */
4156 String category;
4157 XMLFile defaultStyle;
4158 /* readonly */
4159 Text memoryText;
4160 uint mode;
4161 /* readonly */
4162 Text modeText;
4163 float profilerInterval;
4164 uint profilerMaxDepth;
4165 /* readonly */
4166 Text profilerText;
4167 /* readonly */
4168 int refs;
4169 /* readonly */
4170 Text statsText;
4171 /* readonly */
4172 StringHash type;
4173 /* readonly */
4174 String typeName;
4175 bool useRendererStats;
4176 /* readonly */
4177 int weakRefs;
4178 };
4179 
4180 class DebugRenderer
4181 {
4182 public:
4183 // Methods:
4184 void AddBoundingBox(const BoundingBox&, const Color&, bool = true, bool = false);
4185 void AddCircle(const Vector3&, const Vector3&, float, const Color&, int = 64, bool = true);
4186 void AddCross(const Vector3&, float, const Color&, bool = true);
4187 void AddFrustum(const Frustum&, const Color&, bool = true);
4188 void AddLine(const Vector3&, const Vector3&, const Color&, bool = true);
4189 void AddNode(Node, float = 1.0, bool = true);
4190 void AddPolygon(const Vector3&, const Vector3&, const Vector3&, const Vector3&, const Color&, bool = true);
4191 void AddPolyhedron(const Polyhedron&, const Color&, bool = true);
4192 void AddQuad(const Vector3&, float, float, const Color&, bool = true);
4193 void AddSkeleton(Skeleton, const Color&, bool = true);
4194 void AddSphere(const Sphere&, const Color&, bool = true);
4195 void AddSphereSector(const Sphere&, const Quaternion&, float, bool, const Color&, bool = true);
4196 void AddTriangle(const Vector3&, const Vector3&, const Vector3&, const Color&, bool = true);
4197 void ApplyAttributes();
4198 void DrawDebugGeometry(DebugRenderer, bool);
4199 Variant GetAttribute(const String&) const;
4200 ValueAnimation GetAttributeAnimation(const String&) const;
4201 float GetAttributeAnimationSpeed(const String&) const;
4202 float GetAttributeAnimationTime(const String&) const;
4203 WrapMode GetAttributeAnimationWrapMode(const String&) const;
4204 Variant GetAttributeDefault(const String&) const;
4205 bool GetInterceptNetworkUpdate(const String&) const;
4206 bool HasSubscribedToEvent(Object, const String&);
4207 bool HasSubscribedToEvent(const String&);
4208 bool Load(File, bool = false);
4209 bool Load(VectorBuffer&, bool = false);
4210 bool LoadJSON(const JSONValue&, bool = false);
4211 bool LoadXML(const XMLElement&, bool = false);
4212 void MarkNetworkUpdate() const;
4213 void Remove();
4214 void RemoveAttributeAnimation(const String&);
4215 void RemoveInstanceDefault();
4216 void RemoveObjectAnimation();
4217 void ResetToDefault();
4218 bool Save(File) const;
4219 bool Save(VectorBuffer&) const;
4220 bool SaveJSON(JSONValue&) const;
4221 bool SaveXML(XMLElement&) const;
4222 void SendEvent(const String&, VariantMap& = VariantMap ( ));
4223 void SetAnimationTime(float);
4224 bool SetAttribute(const String&, const Variant&);
4225 void SetAttributeAnimation(const String&, ValueAnimation, WrapMode = WM_LOOP, float = 1.0f);
4226 void SetAttributeAnimationSpeed(const String&, float);
4227 void SetAttributeAnimationTime(const String&, float);
4228 void SetAttributeAnimationWrapMode(const String&, WrapMode);
4229 void SetInterceptNetworkUpdate(const String&, bool);
4230 
4231 // Properties:
4232 bool animationEnabled;
4233 /* readonly */
4234 Array<Variant> attributeDefaults;
4235 /* readonly */
4236 Array<AttributeInfo> attributeInfos;
4237 Array<Variant> attributes;
4238 /* readonly */
4239 String category;
4240 bool enabled;
4241 /* readonly */
4242 bool enabledEffective;
4243 /* readonly */
4244 uint id;
4245 bool lineAntiAlias;
4246 /* readonly */
4247 Node node;
4248 /* readonly */
4249 uint numAttributes;
4250 ObjectAnimation objectAnimation;
4251 /* readonly */
4252 int refs;
4253 bool temporary;
4254 /* readonly */
4255 StringHash type;
4256 /* readonly */
4257 String typeName;
4258 /* readonly */
4259 int weakRefs;
4260 };
4261 
4262 class DecalSet
4263 {
4264 public:
4265 // Methods:
4266 bool AddDecal(Drawable, const Vector3&, const Quaternion&, float, float, float, const Vector2&, const Vector2&, float = 0.0, float = 0.1, uint = 0xffffffff);
4267 void ApplyAttributes();
4268 void DrawDebugGeometry(DebugRenderer, bool);
4269 Variant GetAttribute(const String&) const;
4270 ValueAnimation GetAttributeAnimation(const String&) const;
4271 float GetAttributeAnimationSpeed(const String&) const;
4272 float GetAttributeAnimationTime(const String&) const;
4273 WrapMode GetAttributeAnimationWrapMode(const String&) const;
4274 Variant GetAttributeDefault(const String&) const;
4275 bool GetInterceptNetworkUpdate(const String&) const;
4276 bool HasSubscribedToEvent(Object, const String&);
4277 bool HasSubscribedToEvent(const String&);
4278 bool IsInView(Camera) const;
4279 bool Load(File, bool = false);
4280 bool Load(VectorBuffer&, bool = false);
4281 bool LoadJSON(const JSONValue&, bool = false);
4282 bool LoadXML(const XMLElement&, bool = false);
4283 void MarkNetworkUpdate() const;
4284 void Remove();
4285 void RemoveAllDecals();
4286 void RemoveAttributeAnimation(const String&);
4287 void RemoveDecals(uint);
4288 void RemoveInstanceDefault();
4289 void RemoveObjectAnimation();
4290 void ResetToDefault();
4291 bool Save(File) const;
4292 bool Save(VectorBuffer&) const;
4293 bool SaveJSON(JSONValue&) const;
4294 bool SaveXML(XMLElement&) const;
4295 void SendEvent(const String&, VariantMap& = VariantMap ( ));
4296 void SetAnimationTime(float);
4297 bool SetAttribute(const String&, const Variant&);
4298 void SetAttributeAnimation(const String&, ValueAnimation, WrapMode = WM_LOOP, float = 1.0f);
4299 void SetAttributeAnimationSpeed(const String&, float);
4300 void SetAttributeAnimationTime(const String&, float);
4301 void SetAttributeAnimationWrapMode(const String&, WrapMode);
4302 void SetInterceptNetworkUpdate(const String&, bool);
4303 
4304 // Properties:
4305 bool animationEnabled;
4306 /* readonly */
4307 Array<Variant> attributeDefaults;
4308 /* readonly */
4309 Array<AttributeInfo> attributeInfos;
4310 Array<Variant> attributes;
4311 /* readonly */
4312 BoundingBox boundingBox;
4313 bool castShadows;
4314 /* readonly */
4315 String category;
4316 float drawDistance;
4317 bool enabled;
4318 /* readonly */
4319 bool enabledEffective;
4320 /* readonly */
4321 uint id;
4322 /* readonly */
4323 bool inView;
4324 uint lightMask;
4325 float lodBias;
4326 Material material;
4327 uint maxIndices;
4328 uint maxLights;
4329 uint maxVertices;
4330 /* readonly */
4331 Node node;
4332 /* readonly */
4333 uint numAttributes;
4334 /* readonly */
4335 uint numDecals;
4336 /* readonly */
4337 uint numIndices;
4338 /* readonly */
4339 uint numVertices;
4340 ObjectAnimation objectAnimation;
4341 bool occludee;
4342 bool occluder;
4343 bool optimizeBufferSize;
4344 /* readonly */
4345 int refs;
4346 float shadowDistance;
4347 uint shadowMask;
4348 bool temporary;
4349 /* readonly */
4350 StringHash type;
4351 /* readonly */
4352 String typeName;
4353 uint viewMask;
4354 /* readonly */
4355 int weakRefs;
4356 /* readonly */
4357 BoundingBox worldBoundingBox;
4358 /* readonly */
4359 Zone zone;
4360 uint zoneMask;
4361 };
4362 
4363 class Deserializer
4364 {
4365 public:
4366 // Methods:
4367 Array<uint8> Read(uint);
4368 bool ReadBool();
4369 BoundingBox ReadBoundingBox();
4370 int8 ReadByte();
4371 Color ReadColor();
4372 double ReadDouble();
4373 String ReadFileID();
4374 float ReadFloat();
4375 int ReadInt();
4376 int64 ReadInt64();
4377 IntRect ReadIntRect();
4378 IntVector2 ReadIntVector2();
4379 String ReadLine();
4380 Matrix3 ReadMatrix3();
4381 Matrix3x4 ReadMatrix3x4();
4382 Matrix4 ReadMatrix4();
4383 uint ReadNetID();
4384 Quaternion ReadPackedQuaternion();
4385 Vector3 ReadPackedVector3(float);
4386 Quaternion ReadQuaternion();
4387 int16 ReadShort();
4388 String ReadString();
4389 StringHash ReadStringHash();
4390 uint8 ReadUByte();
4391 uint ReadUInt();
4392 uint64 ReadUInt64();
4393 uint16 ReadUShort();
4394 uint ReadVLE();
4395 Variant ReadVariant();
4396 VariantMap ReadVariantMap();
4397 Vector2 ReadVector2();
4398 Vector3 ReadVector3();
4399 Vector4 ReadVector4();
4400 VectorBuffer ReadVectorBuffer(uint);
4401 uint Seek(uint);
4402 uint SeekRelative(int);
4403 uint Tell() const;
4404 
4405 // Properties:
4406 /* readonly */
4407 uint checksum;
4408 /* readonly */
4409 bool eof;
4410 /* readonly */
4411 String name;
4412 /* readonly */
4413 uint position;
4414 /* readonly */
4415 uint size;
4416 };
4417 
4418 class Dictionary
4419 {
4420 public:
4421 Dictionary();
4422 // Methods:
4423 void Clear();
4424 void Erase(const String&);
4425 bool Exists(const String&) const;
4426 bool Get(const String&, void*) const;
4427 bool Get(const String&, double&) const;
4428 bool Get(const String&, int64&) const;
4429 void Set(const String&, const void*);
4430 void Set(const String&, const double&);
4431 void Set(const String&, const int64&);
4432 
4433 // Properties:
4434 /* readonly */
4435 bool empty;
4436 /* readonly */
4437 Array<String> keys;
4438 /* readonly */
4439 uint length;
4440 };
4441 
4442 class DictionaryValue
4443 {
4444 public:
4445 ~DictionaryValue();
4446 DictionaryValue();
4447 };
4448 
4449 class Drawable
4450 {
4451 public:
4452 // Methods:
4453 void ApplyAttributes();
4454 void DrawDebugGeometry(DebugRenderer, bool);
4455 Variant GetAttribute(const String&) const;
4456 ValueAnimation GetAttributeAnimation(const String&) const;
4457 float GetAttributeAnimationSpeed(const String&) const;
4458 float GetAttributeAnimationTime(const String&) const;
4459 WrapMode GetAttributeAnimationWrapMode(const String&) const;
4460 Variant GetAttributeDefault(const String&) const;
4461 bool GetInterceptNetworkUpdate(const String&) const;
4462 bool HasSubscribedToEvent(Object, const String&);
4463 bool HasSubscribedToEvent(const String&);
4464 bool IsInView(Camera) const;
4465 bool Load(File, bool = false);
4466 bool Load(VectorBuffer&, bool = false);
4467 bool LoadJSON(const JSONValue&, bool = false);
4468 bool LoadXML(const XMLElement&, bool = false);
4469 void MarkNetworkUpdate() const;
4470 void Remove();
4471 void RemoveAttributeAnimation(const String&);
4472 void RemoveInstanceDefault();
4473 void RemoveObjectAnimation();
4474 void ResetToDefault();
4475 bool Save(File) const;
4476 bool Save(VectorBuffer&) const;
4477 bool SaveJSON(JSONValue&) const;
4478 bool SaveXML(XMLElement&) const;
4479 void SendEvent(const String&, VariantMap& = VariantMap ( ));
4480 void SetAnimationTime(float);
4481 bool SetAttribute(const String&, const Variant&);
4482 void SetAttributeAnimation(const String&, ValueAnimation, WrapMode = WM_LOOP, float = 1.0f);
4483 void SetAttributeAnimationSpeed(const String&, float);
4484 void SetAttributeAnimationTime(const String&, float);
4485 void SetAttributeAnimationWrapMode(const String&, WrapMode);
4486 void SetInterceptNetworkUpdate(const String&, bool);
4487 
4488 // Properties:
4489 bool animationEnabled;
4490 /* readonly */
4491 Array<Variant> attributeDefaults;
4492 /* readonly */
4493 Array<AttributeInfo> attributeInfos;
4494 Array<Variant> attributes;
4495 /* readonly */
4496 BoundingBox boundingBox;
4497 bool castShadows;
4498 /* readonly */
4499 String category;
4500 float drawDistance;
4501 bool enabled;
4502 /* readonly */
4503 bool enabledEffective;
4504 /* readonly */
4505 uint id;
4506 /* readonly */
4507 bool inView;
4508 uint lightMask;
4509 float lodBias;
4510 uint maxLights;
4511 /* readonly */
4512 Node node;
4513 /* readonly */
4514 uint numAttributes;
4515 ObjectAnimation objectAnimation;
4516 bool occludee;
4517 bool occluder;
4518 /* readonly */
4519 int refs;
4520 float shadowDistance;
4521 uint shadowMask;
4522 bool temporary;
4523 /* readonly */
4524 StringHash type;
4525 /* readonly */
4526 String typeName;
4527 uint viewMask;
4528 /* readonly */
4529 int weakRefs;
4530 /* readonly */
4531 BoundingBox worldBoundingBox;
4532 uint zoneMask;
4533 };
4534 
4535 class Drawable2D
4536 {
4537 public:
4538 // Methods:
4539 void ApplyAttributes();
4540 void DrawDebugGeometry(DebugRenderer, bool);
4541 Variant GetAttribute(const String&) const;
4542 ValueAnimation GetAttributeAnimation(const String&) const;
4543 float GetAttributeAnimationSpeed(const String&) const;
4544 float GetAttributeAnimationTime(const String&) const;
4545 WrapMode GetAttributeAnimationWrapMode(const String&) const;
4546 Variant GetAttributeDefault(const String&) const;
4547 bool GetInterceptNetworkUpdate(const String&) const;
4548 bool HasSubscribedToEvent(Object, const String&);
4549 bool HasSubscribedToEvent(const String&);
4550 bool IsInView(Camera) const;
4551 bool Load(File, bool = false);
4552 bool Load(VectorBuffer&, bool = false);
4553 bool LoadJSON(const JSONValue&, bool = false);
4554 bool LoadXML(const XMLElement&, bool = false);
4555 void MarkNetworkUpdate() const;
4556 void Remove();
4557 void RemoveAttributeAnimation(const String&);
4558 void RemoveInstanceDefault();
4559 void RemoveObjectAnimation();
4560 void ResetToDefault();
4561 bool Save(File) const;
4562 bool Save(VectorBuffer&) const;
4563 bool SaveJSON(JSONValue&) const;
4564 bool SaveXML(XMLElement&) const;
4565 void SendEvent(const String&, VariantMap& = VariantMap ( ));
4566 void SetAnimationTime(float);
4567 bool SetAttribute(const String&, const Variant&);
4568 void SetAttributeAnimation(const String&, ValueAnimation, WrapMode = WM_LOOP, float = 1.0f);
4569 void SetAttributeAnimationSpeed(const String&, float);
4570 void SetAttributeAnimationTime(const String&, float);
4571 void SetAttributeAnimationWrapMode(const String&, WrapMode);
4572 void SetInterceptNetworkUpdate(const String&, bool);
4573 
4574 // Properties:
4575 bool animationEnabled;
4576 /* readonly */
4577 Array<Variant> attributeDefaults;
4578 /* readonly */
4579 Array<AttributeInfo> attributeInfos;
4580 Array<Variant> attributes;
4581 /* readonly */
4582 BoundingBox boundingBox;
4583 bool castShadows;
4584 /* readonly */
4585 String category;
4586 float drawDistance;
4587 bool enabled;
4588 /* readonly */
4589 bool enabledEffective;
4590 /* readonly */
4591 uint id;
4592 /* readonly */
4593 bool inView;
4594 int layer;
4595 uint lightMask;
4596 float lodBias;
4597 uint maxLights;
4598 /* readonly */
4599 Node node;
4600 /* readonly */
4601 uint numAttributes;
4602 ObjectAnimation objectAnimation;
4603 bool occludee;
4604 bool occluder;
4605 int orderInLayer;
4606 /* readonly */
4607 int refs;
4608 float shadowDistance;
4609 uint shadowMask;
4610 bool temporary;
4611 /* readonly */
4612 StringHash type;
4613 /* readonly */
4614 String typeName;
4615 uint viewMask;
4616 /* readonly */
4617 int weakRefs;
4618 /* readonly */
4619 BoundingBox worldBoundingBox;
4620 uint zoneMask;
4621 };
4622 
4623 class DropDownList
4624 {
4625 public:
4626 DropDownList();
4627 DropDownList(const String&in);
4628 // Methods:
4629 void AddChild(UIElement);
4630 void AddItem(UIElement);
4631 void AddTag(const String&);
4632 void AddTags(const String&, int8 = ';');
4633 void ApplyAttributes();
4634 void BringToFront();
4635 UIElement CreateChild(const String&, const String& = String ( ), uint = M_MAX_UNSIGNED);
4636 void DisableLayoutUpdate();
4637 IntVector2 ElementToScreen(const IntVector2&);
4638 void EnableLayoutUpdate();
4639 uint FindChild(UIElement) const;
4640 Variant GetAttribute(const String&) const;
4641 ValueAnimation GetAttributeAnimation(const String&) const;
4642 float GetAttributeAnimationSpeed(const String&) const;
4643 float GetAttributeAnimationTime(const String&) const;
4644 WrapMode GetAttributeAnimationWrapMode(const String&) const;
4645 Variant GetAttributeDefault(const String&) const;
4646 UIElement GetChild(const String&, bool = false) const;
4647 UIElement GetChild(const StringHash&, const Variant& = Variant ( ), bool = false) const;
4648 Array<UIElement> GetChildren(bool = false) const;
4649 Array<UIElement> GetChildrenWithTag(const String&, bool = false) const;
4650 UIElement GetElementEventSender() const;
4651 bool GetInterceptNetworkUpdate(const String&) const;
4652 Array<UIElement> GetItems() const;
4653 uint GetNumChildren(bool) const;
4654 bool HasSubscribedToEvent(Object, const String&);
4655 bool HasSubscribedToEvent(const String&);
4656 bool HasTag(const String&) const;
4657 void InsertChild(uint, UIElement);
4658 void InsertItem(uint, UIElement);
4659 bool IsInside(IntVector2, bool);
4660 bool IsInsideCombined(IntVector2, bool);
4661 bool Load(File, bool = false);
4662 bool Load(VectorBuffer&, bool = false);
4663 UIElement LoadChildXML(XMLFile, XMLFile = null);
4664 UIElement LoadChildXML(const XMLElement&, XMLFile = null, bool = false);
4665 bool LoadJSON(const JSONValue&, bool = false);
4666 bool LoadXML(File);
4667 bool LoadXML(VectorBuffer&);
4668 bool LoadXML(XMLFile, XMLFile);
4669 bool LoadXML(const XMLElement&, XMLFile, bool = false);
4670 bool LoadXML(const XMLElement&, bool = false);
4671 void MarkNetworkUpdate() const;
4672 void Remove();
4673 void RemoveAllChildren();
4674 void RemoveAllItems();
4675 void RemoveAllTags();
4676 void RemoveAttributeAnimation(const String&);
4677 void RemoveChild(UIElement, uint = 0);
4678 void RemoveChild(uint);
4679 void RemoveInstanceDefault();
4680 void RemoveItem(UIElement);
4681 void RemoveItem(uint);
4682 void RemoveObjectAnimation();
4683 bool RemoveTag(const String&);
4684 void ResetDeepEnabled();
4685 void ResetToDefault();
4686 bool Save(File) const;
4687 bool Save(VectorBuffer&) const;
4688 bool SaveJSON(JSONValue&) const;
4689 bool SaveXML(File, const String& = "\t");
4690 bool SaveXML(VectorBuffer&, const String& = "\t");
4691 bool SaveXML(XMLElement&) const;
4692 IntVector2 ScreenToElement(const IntVector2&);
4693 void SendEvent(const String&, VariantMap& = VariantMap ( ));
4694 void SetAccelerator(int, int);
4695 void SetAlignment(HorizontalAlignment, VerticalAlignment);
4696 void SetAnimationTime(float);
4697 bool SetAttribute(const String&, const Variant&);
4698 void SetAttributeAnimation(const String&, ValueAnimation, WrapMode = WM_LOOP, float = 1.0f);
4699 void SetAttributeAnimationSpeed(const String&, float);
4700 void SetAttributeAnimationTime(const String&, float);
4701 void SetAttributeAnimationWrapMode(const String&, WrapMode);
4702 void SetDeepEnabled(bool);
4703 void SetEnabledRecursive(bool);
4704 void SetFixedHeight(int);
4705 void SetFixedSize(int, int);
4706 void SetFixedWidth(int);
4707 void SetFullImageRect();
4708 void SetHoverOffset(int, int);
4709 void SetInterceptNetworkUpdate(const String&, bool);
4710 void SetLayout(LayoutMode, int = 0, const IntRect& = IntRect ( 0 , 0 , 0 , 0 ));
4711 void SetMaxAnchor(float, float);
4712 void SetMaxSize(int, int);
4713 void SetMinAnchor(float, float);
4714 void SetMinSize(int, int);
4715 void SetParent(UIElement, uint = M_MAX_UNSIGNED);
4716 void SetPivot(float, float);
4717 void SetPosition(int, int);
4718 void SetPressedChildOffset(int, int);
4719 void SetPressedOffset(int, int);
4720 void SetRepeat(float, float);
4721 void SetSize(int, int);
4722 bool SetStyle(const String&, XMLFile = null);
4723 bool SetStyle(const XMLElement&);
4724 bool SetStyleAuto(XMLFile = null);
4725 void UpdateLayout();
4726 const Variant& GetVar(const StringHash&);
4727 UIElement getPopup() const;
4728 
4729 // Properties:
4730 /* readonly */
4731 int acceleratorKey;
4732 /* readonly */
4733 int acceleratorQualifiers;
4734 bool animationEnabled;
4735 /* readonly */
4736 Array<Variant> attributeDefaults;
4737 /* readonly */
4738 Array<AttributeInfo> attributeInfos;
4739 Array<Variant> attributes;
4740 BlendMode blendMode;
4741 IntRect border;
4742 bool bringToBack;
4743 bool bringToFront;
4744 /* readonly */
4745 String category;
4746 /* readonly */
4747 IntVector2 childOffset;
4748 /* readonly */
4749 Array<UIElement> children;
4750 IntRect clipBorder;
4751 bool clipChildren;
4752 /* writeonly */
4753 Color color;
4754 /* readonly */
4755 bool colorGradient;
4756 Array<Color> colors;
4757 /* readonly */
4758 IntRect combinedScreenRect;
4759 XMLFile defaultStyle;
4760 /* readonly */
4761 float derivedOpacity;
4762 /* readonly */
4763 uint dragButtonCombo;
4764 /* readonly */
4765 int dragButtonCount;
4766 uint dragDropMode;
4767 bool editable;
4768 bool elementEventSender;
4769 bool enableAnchor;
4770 bool enabled;
4771 /* readonly */
4772 bool enabledSelf;
4773 /* readonly */
4774 bool fixedHeight;
4775 /* readonly */
4776 bool fixedSize;
4777 /* readonly */
4778 bool fixedWidth;
4779 bool focus;
4780 FocusMode focusMode;
4781 int height;
4782 HorizontalAlignment horizontalAlignment;
4783 IntVector2 hoverOffset;
4784 /* readonly */
4785 bool hovering;
4786 IntRect imageBorder;
4787 IntRect imageRect;
4788 int indent;
4789 int indentSpacing;
4790 /* readonly */
4791 int indentWidth;
4792 bool internal;
4793 /* readonly */
4794 Array<UIElement> items;
4795 IntRect layoutBorder;
4796 Vector2 layoutFlexScale;
4797 LayoutMode layoutMode;
4798 int layoutSpacing;
4799 /* readonly */
4800 ListView listView;
4801 Vector2 maxAnchor;
4802 int maxHeight;
4803 IntVector2 maxOffset;
4804 IntVector2 maxSize;
4805 int maxWidth;
4806 Vector2 minAnchor;
4807 int minHeight;
4808 IntVector2 minOffset;
4809 IntVector2 minSize;
4810 int minWidth;
4811 String name;
4812 /* readonly */
4813 uint numAllChildren;
4814 /* readonly */
4815 uint numAttributes;
4816 /* readonly */
4817 uint numChildren;
4818 /* readonly */
4819 uint numItems;
4820 ObjectAnimation objectAnimation;
4821 float opacity;
4822 UIElement parent;
4823 Vector2 pivot;
4824 /* readonly */
4825 UIElement placeholder;
4826 String placeholderText;
4827 IntVector2 position;
4828 /* readonly */
4829 bool pressed;
4830 IntVector2 pressedChildOffset;
4831 IntVector2 pressedOffset;
4832 int priority;
4833 /* readonly */
4834 int refs;
4835 float repeatDelay;
4836 float repeatRate;
4837 bool resizePopup;
4838 /* readonly */
4839 UIElement root;
4840 /* readonly */
4841 IntVector2 screenPosition;
4842 bool selected;
4843 /* readonly */
4844 UIElement selectedItem;
4845 uint selection;
4846 bool showPopup;
4847 IntVector2 size;
4848 bool sortChildren;
4849 String style;
4850 /* readonly */
4851 Array<String> tags;
4852 bool temporary;
4853 Texture texture;
4854 bool tiled;
4855 TraversalMode traversalMode;
4856 /* readonly */
4857 StringHash type;
4858 /* readonly */
4859 String typeName;
4860 bool useDerivedOpacity;
4861 /* readonly */
4862 VariantMap vars;
4863 VerticalAlignment verticalAlignment;
4864 bool visible;
4865 /* readonly */
4866 bool visibleEffective;
4867 /* readonly */
4868 int weakRefs;
4869 int width;
4870 };
4871 
4872 class DynamicNavigationMesh
4873 {
4874 public:
4875 // Methods:
4876 bool AddTile(const VectorBuffer&) const;
4877 bool Allocate(const BoundingBox&, uint);
4878 void ApplyAttributes();
4879 bool Build();
4880 bool Build(const BoundingBox&);
4881 bool Build(const IntVector2&, const IntVector2&);
4882 void DrawDebugGeometry(DebugRenderer, bool);
4883 void DrawDebugGeometry(bool);
4884 Vector3 FindNearestPoint(const Vector3&, const Vector3& = Vector3 ( 1.0 , 1.0 , 1.0 ));
4885 Array<Vector3> FindPath(const Vector3&, const Vector3&, const Vector3& = Vector3 ( 1.0 , 1.0 , 1.0 ));
4886 float GetAreaCost(uint) const;
4887 Variant GetAttribute(const String&) const;
4888 ValueAnimation GetAttributeAnimation(const String&) const;
4889 float GetAttributeAnimationSpeed(const String&) const;
4890 float GetAttributeAnimationTime(const String&) const;
4891 WrapMode GetAttributeAnimationWrapMode(const String&) const;
4892 Variant GetAttributeDefault(const String&) const;
4893 float GetDistanceToWall(const Vector3&, float, const Vector3& = Vector3 ( 1.0 , 1.0 , 1.0 ));
4894 bool GetInterceptNetworkUpdate(const String&) const;
4895 Vector3 GetRandomPoint();
4896 Vector3 GetRandomPointInCircle(const Vector3&, float, const Vector3& = Vector3 ( 1.0 , 1.0 , 1.0 ));
4897 BoundingBox GetTileBoudningBox(const IntVector2&) const;
4898 VectorBuffer GetTileData(const IntVector2&) const;
4899 IntVector2 GetTileIndex(const Vector3&) const;
4900 bool HasSubscribedToEvent(Object, const String&);
4901 bool HasSubscribedToEvent(const String&);
4902 bool HasTile(const IntVector2&) const;
4903 bool Load(File, bool = false);
4904 bool Load(VectorBuffer&, bool = false);
4905 bool LoadJSON(const JSONValue&, bool = false);
4906 bool LoadXML(const XMLElement&, bool = false);
4907 void MarkNetworkUpdate() const;
4908 Vector3 MoveAlongSurface(const Vector3&, const Vector3&, const Vector3& = Vector3 ( 1.0 , 1.0 , 1.0 ), int = 3);
4909 Vector3 Raycast(const Vector3&, const Vector3&, const Vector3& = Vector3 ( 1.0 , 1.0 , 1.0 ));
4910 void Remove();
4911 void RemoveAllTiles();
4912 void RemoveAttributeAnimation(const String&);
4913 void RemoveInstanceDefault();
4914 void RemoveObjectAnimation();
4915 void RemoveTile(const IntVector2&);
4916 void ResetToDefault();
4917 bool Save(File) const;
4918 bool Save(VectorBuffer&) const;
4919 bool SaveJSON(JSONValue&) const;
4920 bool SaveXML(XMLElement&) const;
4921 void SendEvent(const String&, VariantMap& = VariantMap ( ));
4922 void SetAnimationTime(float);
4923 void SetAreaCost(uint, float);
4924 bool SetAttribute(const String&, const Variant&);
4925 void SetAttributeAnimation(const String&, ValueAnimation, WrapMode = WM_LOOP, float = 1.0f);
4926 void SetAttributeAnimationSpeed(const String&, float);
4927 void SetAttributeAnimationTime(const String&, float);
4928 void SetAttributeAnimationWrapMode(const String&, WrapMode);
4929 void SetInterceptNetworkUpdate(const String&, bool);
4930 
4931 // Properties:
4932 float agentHeight;
4933 float agentMaxClimb;
4934 float agentMaxSlope;
4935 float agentRadius;
4936 bool animationEnabled;
4937 /* readonly */
4938 Array<Variant> attributeDefaults;
4939 /* readonly */
4940 Array<AttributeInfo> attributeInfos;
4941 Array<Variant> attributes;
4942 /* readonly */
4943 BoundingBox boundingBox;
4944 /* readonly */
4945 String category;
4946 float cellHeight;
4947 float cellSize;
4948 float detailSampleDistance;
4949 float detailSampleMaxError;
4950 bool drawNavAreas;
4951 bool drawObstacles;
4952 bool drawOffMeshConnections;
4953 float edgeMaxError;
4954 float edgeMaxLength;
4955 bool enabled;
4956 /* readonly */
4957 bool enabledEffective;
4958 /* readonly */
4959 uint id;
4960 /* readonly */
4961 bool initialized;
4962 bool maxLayers;
4963 uint maxObstacles;
4964 /* readonly */
4965 Node node;
4966 /* readonly */
4967 uint numAttributes;
4968 /* readonly */
4969 IntVector2 numTiles;
4970 ObjectAnimation objectAnimation;
4971 Vector3 padding;
4972 NavmeshPartitionType partitionType;
4973 /* readonly */
4974 int refs;
4975 float regionMergeSize;
4976 float regionMinSize;
4977 bool temporary;
4978 int tileSize;
4979 /* readonly */
4980 StringHash type;
4981 /* readonly */
4982 String typeName;
4983 /* readonly */
4984 int weakRefs;
4985 /* readonly */
4986 BoundingBox worldBoundingBox;
4987 };
4988 
4989 class Engine
4990 {
4991 public:
4992 // Methods:
4993 Console CreateConsole();
4994 DebugHud CreateDebugHud();
4995 void DumpMemory();
4996 void DumpProfiler();
4997 void DumpResources(bool = false);
4998 void Exit();
4999 bool HasSubscribedToEvent(Object, const String&);
5000 bool HasSubscribedToEvent(const String&);
5001 void RunFrame();
5002 void SendEvent(const String&, VariantMap& = VariantMap ( ));
5003 
5004 // Properties:
5005 bool autoExit;
5006 /* readonly */
5007 String category;
5008 /* readonly */
5009 bool exiting;
5010 /* readonly */
5011 bool headless;
5012 /* readonly */
5013 bool initialized;
5014 int maxFps;
5015 int maxInactiveFps;
5016 int minFps;
5017 bool pauseMinimized;
5018 /* readonly */
5019 int refs;
5020 int timeStepSmoothing;
5021 /* readonly */
5022 StringHash type;
5023 /* readonly */
5024 String typeName;
5025 /* readonly */
5026 int weakRefs;
5027 };
5028 
5029 class File
5030 {
5031 public:
5032 File();
5033 File(const String&in, FileMode mode = FILE_READ);
5034 // Methods:
5035 void Close();
5036 bool HasSubscribedToEvent(Object, const String&);
5037 bool HasSubscribedToEvent(const String&);
5038 bool Open(const String&, FileMode = FILE_READ);
5039 Array<uint8> Read(uint);
5040 bool ReadBool();
5041 BoundingBox ReadBoundingBox();
5042 int8 ReadByte();
5043 Color ReadColor();
5044 double ReadDouble();
5045 String ReadFileID();
5046 float ReadFloat();
5047 int ReadInt();
5048 int64 ReadInt64();
5049 IntRect ReadIntRect();
5050 IntVector2 ReadIntVector2();
5051 String ReadLine();
5052 Matrix3 ReadMatrix3();
5053 Matrix3x4 ReadMatrix3x4();
5054 Matrix4 ReadMatrix4();
5055 uint ReadNetID();
5056 Quaternion ReadPackedQuaternion();
5057 Vector3 ReadPackedVector3(float);
5058 Quaternion ReadQuaternion();
5059 int16 ReadShort();
5060 String ReadString();
5061 StringHash ReadStringHash();
5062 uint8 ReadUByte();
5063 uint ReadUInt();
5064 uint64 ReadUInt64();
5065 uint16 ReadUShort();
5066 uint ReadVLE();
5067 Variant ReadVariant();
5068 VariantMap ReadVariantMap();
5069 Vector2 ReadVector2();
5070 Vector3 ReadVector3();
5071 Vector4 ReadVector4();
5072 VectorBuffer ReadVectorBuffer(uint);
5073 uint Seek(uint);
5074 uint SeekRelative(int);
5075 void SendEvent(const String&, VariantMap& = VariantMap ( ));
5076 uint Tell() const;
5077 uint Write(Array<uint8>);
5078 bool WriteBool(bool);
5079 bool WriteBoundingBox(const BoundingBox&);
5080 bool WriteByte(int8);
5081 bool WriteColor(const Color&);
5082 bool WriteDouble(double);
5083 bool WriteFileID(const String&);
5084 bool WriteFloat(float);
5085 bool WriteInt(int);
5086 bool WriteInt64(int64);
5087 bool WriteIntRect(const IntRect&);
5088 bool WriteIntVector2(const IntVector2&);
5089 bool WriteLine(const String&);
5090 bool WriteMatrix3(const Matrix3&);
5091 bool WriteMatrix3x4(const Matrix3x4&);
5092 bool WriteMatrix4(const Matrix4&);
5093 bool WriteNetID(uint);
5094 bool WritePackedQuaternion(const Quaternion&);
5095 bool WritePackedVector3(const Vector3&, float);
5096 bool WriteQuaternion(const Quaternion&);
5097 bool WriteShort(int16);
5098 bool WriteString(const String&);
5099 bool WriteStringHash(const StringHash&);
5100 bool WriteUByte(uint8);
5101 bool WriteUInt(uint);
5102 bool WriteUInt64(uint64);
5103 bool WriteUShort(uint16);
5104 bool WriteVLE(uint);
5105 bool WriteVariant(const Variant&);
5106 bool WriteVariantMap(const VariantMap&);
5107 bool WriteVector2(const Vector2&);
5108 bool WriteVector3(const Vector3&);
5109 bool WriteVector4(const Vector4&);
5110 bool WriteVectorBuffer(const VectorBuffer&);
5111 
5112 // Properties:
5113 /* readonly */
5114 String category;
5115 /* readonly */
5116 uint checksum;
5117 /* readonly */
5118 bool eof;
5119 /* readonly */
5120 FileMode mode;
5121 /* readonly */
5122 String name;
5123 /* readonly */
5124 bool open;
5125 /* readonly */
5126 bool packaged;
5127 /* readonly */
5128 uint position;
5129 /* readonly */
5130 int refs;
5131 /* readonly */
5132 uint size;
5133 /* readonly */
5134 StringHash type;
5135 /* readonly */
5136 String typeName;
5137 /* readonly */
5138 int weakRefs;
5139 };
5140 
5141 class FileSelector
5142 {
5143 public:
5144 FileSelector();
5145 // Methods:
5146 bool HasSubscribedToEvent(Object, const String&);
5147 bool HasSubscribedToEvent(const String&);
5148 void SendEvent(const String&, VariantMap& = VariantMap ( ));
5149 void SetButtonTexts(const String&, const String&);
5150 void SetFilters(Array<String>, uint);
5151 void UpdateElements();
5152 
5153 // Properties:
5154 /* readonly */
5155 Button cancelButton;
5156 /* readonly */
5157 String category;
5158 XMLFile defaultStyle;
5159 bool directoryMode;
5160 /* readonly */
5161 ListView fileList;
5162 String fileName;
5163 /* readonly */
5164 LineEdit fileNameEdit;
5165 /* readonly */
5166 String filter;
5167 /* readonly */
5168 uint filterIndex;
5169 /* readonly */
5170 DropDownList filterList;
5171 /* readonly */
5172 Button okButton;
5173 String path;
5174 /* readonly */
5175 LineEdit pathEdit;
5176 /* readonly */
5177 int refs;
5178 String title;
5179 /* readonly */
5180 Text titleText;
5181 /* readonly */
5182 StringHash type;
5183 /* readonly */
5184 String typeName;
5185 /* readonly */
5186 int weakRefs;
5187 /* readonly */
5188 Window window;
5189 };
5190 
5191 class FileSystem
5192 {
5193 public:
5194 // Methods:
5195 bool Copy(const String&, const String&);
5196 bool CreateDir(const String&);
5197 bool Delete(const String&);
5198 bool DirExists(const String&) const;
5199 bool FileExists(const String&) const;
5200 String GetAppPreferencesDir(const String&, const String&) const;
5201 uint GetLastModifiedTime(const String&) const;
5202 bool HasSubscribedToEvent(Object, const String&);
5203 bool HasSubscribedToEvent(const String&);
5204 bool Rename(const String&, const String&);
5205 Array<String> ScanDir(const String&, const String&, uint, bool) const;
5206 void SendEvent(const String&, VariantMap& = VariantMap ( ));
5207 bool SetLastModifiedTime(const String&, uint);
5208 int SystemCommand(const String&, bool = false);
5209 uint SystemCommandAsync(const String&);
5210 bool SystemOpen(const String&, const String&);
5211 int SystemRun(const String&, Array<String>);
5212 uint SystemRunAsync(const String&, Array<String>);
5213 
5214 // Properties:
5215 /* readonly */
5216 String category;
5217 String currentDir;
5218 bool executeConsoleCommands;
5219 /* readonly */
5220 String programDir;
5221 /* readonly */
5222 int refs;
5223 /* readonly */
5224 StringHash type;
5225 /* readonly */
5226 String typeName;
5227 /* readonly */
5228 String userDocumentsDir;
5229 /* readonly */
5230 int weakRefs;
5231 };
5232 
5233 class FocusParameters
5234 {
5235 public:
5236 FocusParameters();
5237 FocusParameters(const FocusParameters&in);
5238 FocusParameters(bool, bool, bool, float, float);
5239 
5240 // Properties:
5241 bool autoSize;
5242 bool focus;
5243 float minView;
5244 bool nonUniform;
5245 float quantize;
5246 };
5247 
5248 class Font
5249 {
5250 public:
5251 Font();
5252 Font(const String&in);
5253 // Methods:
5254 IntVector2 GetTotalGlyphOffset(float) const;
5255 bool HasSubscribedToEvent(Object, const String&);
5256 bool HasSubscribedToEvent(const String&);
5257 bool Load(File);
5258 bool Load(VectorBuffer&);
5259 bool Load(const String&);
5260 bool Save(File) const;
5261 bool Save(VectorBuffer&) const;
5262 bool Save(const String&) const;
5263 bool SaveXML(File, int, bool = false, const String& = "\t");
5264 bool SaveXML(VectorBuffer&, int, bool = false, const String& = "\t");
5265 bool SaveXML(const String&, int, bool = false, const String& = "\t");
5266 void SendEvent(const String&, VariantMap& = VariantMap ( ));
5267 
5268 // Properties:
5269 IntVector2 absoluteGlyphOffset;
5270 /* readonly */
5271 String category;
5272 /* readonly */
5273 FontType fontType;
5274 /* readonly */
5275 uint memoryUse;
5276 String name;
5277 /* readonly */
5278 int refs;
5279 Vector2 scaledGlyphOffset;
5280 /* readonly */
5281 StringHash type;
5282 /* readonly */
5283 String typeName;
5284 /* readonly */
5285 uint useTimer;
5286 /* readonly */
5287 int weakRefs;
5288 };
5289 
5290 class Frustum
5291 {
5292 public:
5293 ~Frustum();
5294 Frustum();
5295 Frustum(const Frustum&in);
5296 // Methods:
5297 void Define(const BoundingBox&, const Matrix3x4&);
5298 void Define(const Matrix4&);
5299 void Define(const Vector3&, const Vector3&, const Matrix3x4&);
5300 void Define(float, float, float, float, float, const Matrix3x4&);
5301 void DefineOrtho(float, float, float, float, float, const Matrix3x4&);
5302 void DefineSplit(const Matrix4&, float, float);
5303 float Distance(const Vector3&) const;
5304 Intersection IsInside(const BoundingBox&);
5305 Intersection IsInside(const Sphere&);
5306 Intersection IsInside(const Vector3&);
5307 Intersection IsInsideFast(const BoundingBox&) const;
5308 Intersection IsInsideFast(const Sphere&) const;
5309 void Transform(const Matrix3&);
5310 void Transform(const Matrix3x4&);
5311 Frustum Transformed(const Matrix3&) const;
5312 Frustum Transformed(const Matrix3x4&) const;
5313 
5314 // Properties:
5315 /* readonly */
5316 Array<Vector3> vertices;
5317 };
5318 
5319 class Geometry
5320 {
5321 public:
5322 Geometry();
5323 // Methods:
5324 bool HasSubscribedToEvent(Object, const String&);
5325 bool HasSubscribedToEvent(const String&);
5326 void SendEvent(const String&, VariantMap& = VariantMap ( ));
5327 bool SetDrawRange(PrimitiveType, uint, uint, bool = true);
5328 bool SetDrawRange(PrimitiveType, uint, uint, uint, uint, bool = true);
5329 void SetIndexBuffer(IndexBuffer);
5330 bool SetVertexBuffer(uint, VertexBuffer);
5331 
5332 // Properties:
5333 /* readonly */
5334 String category;
5335 /* readonly */
5336 bool empty;
5337 IndexBuffer indexBuffer;
5338 /* readonly */
5339 uint indexCount;
5340 /* readonly */
5341 uint indexStart;
5342 float lodDistance;
5343 uint numVertexBuffers;
5344 /* readonly */
5345 PrimitiveType primitiveType;
5346 /* readonly */
5347 int refs;
5348 /* readonly */
5349 StringHash type;
5350 /* readonly */
5351 String typeName;
5352 /* readonly */
5353 Array<VertexBuffer> vertexBuffers;
5354 /* readonly */
5355 uint vertexCount;
5356 /* readonly */
5357 uint vertexStart;
5358 /* readonly */
5359 int weakRefs;
5360 };
5361 
5362 class Graphics
5363 {
5364 public:
5365 // Methods:
5366 void BeginDumpShaders(const String&);
5367 void Close();
5368 void EndDumpShaders();
5369 bool HasSubscribedToEvent(Object, const String&);
5370 bool HasSubscribedToEvent(const String&);
5371 void Maximize();
5372 void Minimize();
5373 void PrecacheShaders(File);
5374 void PrecacheShaders(VectorBuffer&);
5375 void SendEvent(const String&, VariantMap& = VariantMap ( ));
5376 bool SetMode(int, int);
5377 bool SetMode(int, int, bool, bool, bool, bool, bool, bool, int, int, int);
5378 void SetWindowPosition(int, int);
5379 bool TakeScreenShot(Image);
5380 bool ToggleFullscreen();
5381 
5382 // Properties:
5383 /* readonly */
5384 String apiName;
5385 /* readonly */
5386 bool borderless;
5387 /* readonly */
5388 String category;
5389 /* readonly */
5390 bool deferredSupport;
5391 /* readonly */
5392 Array<IntVector2> desktopResolution;
5393 /* readonly */
5394 bool deviceLost;
5395 bool dither;
5396 bool flushGPU;
5397 /* readonly */
5398 bool fullscreen;
5399 /* readonly */
5400 bool hardwareShadowSupport;
5401 /* readonly */
5402 int height;
5403 /* readonly */
5404 bool initialized;
5405 /* readonly */
5406 bool instancingSupport;
5407 /* readonly */
5408 bool lightPrepassSupport;
5409 /* readonly */
5410 int monitorCount;
5411 /* readonly */
5412 int multiSample;
5413 /* readonly */
5414 Array<int> multiSampleLevels;
5415 /* readonly */
5416 uint numBatches;
5417 /* readonly */
5418 uint numPrimitives;
5419 String orientations;
5420 /* readonly */
5421 bool readableDepthSupport;
5422 /* readonly */
5423 int refs;
5424 /* readonly */
5425 bool resizable;
5426 /* readonly */
5427 Array<Array<IntVector3>> resolutions;
5428 bool sRGB;
5429 /* readonly */
5430 bool sRGBSupport;
5431 /* readonly */
5432 bool sRGBWriteSupport;
5433 String shaderCacheDir;
5434 /* readonly */
5435 IntVector2 size;
5436 /* readonly */
5437 bool tripleBuffer;
5438 /* readonly */
5439 StringHash type;
5440 /* readonly */
5441 String typeName;
5442 /* readonly */
5443 bool vsync;
5444 /* readonly */
5445 int weakRefs;
5446 /* readonly */
5447 int width;
5448 /* writeonly */
5449 Image windowIcon;
5450 IntVector2 windowPosition;
5451 String windowTitle;
5452 };
5453 
5454 class HttpRequest
5455 {
5456 public:
5457 // Methods:
5458 Array<uint8> Read(uint);
5459 bool ReadBool();
5460 BoundingBox ReadBoundingBox();
5461 int8 ReadByte();
5462 Color ReadColor();
5463 double ReadDouble();
5464 String ReadFileID();
5465 float ReadFloat();
5466 int ReadInt();
5467 int64 ReadInt64();
5468 IntRect ReadIntRect();
5469 IntVector2 ReadIntVector2();
5470 String ReadLine();
5471 Matrix3 ReadMatrix3();
5472 Matrix3x4 ReadMatrix3x4();
5473 Matrix4 ReadMatrix4();
5474 uint ReadNetID();
5475 Quaternion ReadPackedQuaternion();
5476 Vector3 ReadPackedVector3(float);
5477 Quaternion ReadQuaternion();
5478 int16 ReadShort();
5479 String ReadString();
5480 StringHash ReadStringHash();
5481 uint8 ReadUByte();
5482 uint ReadUInt();
5483 uint64 ReadUInt64();
5484 uint16 ReadUShort();
5485 uint ReadVLE();
5486 Variant ReadVariant();
5487 VariantMap ReadVariantMap();
5488 Vector2 ReadVector2();
5489 Vector3 ReadVector3();
5490 Vector4 ReadVector4();
5491 VectorBuffer ReadVectorBuffer(uint);
5492 uint Seek(uint);
5493 uint SeekRelative(int);
5494 uint Tell() const;
5495 
5496 // Properties:
5497 /* readonly */
5498 uint availableSize;
5499 /* readonly */
5500 uint checksum;
5501 /* readonly */
5502 bool eof;
5503 /* readonly */
5504 String error;
5505 /* readonly */
5506 String name;
5507 /* readonly */
5508 bool open;
5509 /* readonly */
5510 uint position;
5511 /* readonly */
5512 int refs;
5513 /* readonly */
5514 uint size;
5515 /* readonly */
5516 HttpRequestState state;
5517 /* readonly */
5518 String url;
5519 /* readonly */
5520 String verb;
5521 /* readonly */
5522 int weakRefs;
5523 };
5524 
5525 class IKEffector
5526 {
5527 public:
5528 // Methods:
5529 void ApplyAttributes();
5530 void DrawDebugGeometry(DebugRenderer, bool);
5531 void DrawDebugGeometry(bool);
5532 Variant GetAttribute(const String&) const;
5533 ValueAnimation GetAttributeAnimation(const String&) const;
5534 float GetAttributeAnimationSpeed(const String&) const;
5535 float GetAttributeAnimationTime(const String&) const;
5536 WrapMode GetAttributeAnimationWrapMode(const String&) const;
5537 Variant GetAttributeDefault(const String&) const;
5538 bool GetInterceptNetworkUpdate(const String&) const;
5539 bool HasSubscribedToEvent(Object, const String&);
5540 bool HasSubscribedToEvent(const String&);
5541 bool Load(File, bool = false);
5542 bool Load(VectorBuffer&, bool = false);
5543 bool LoadJSON(const JSONValue&, bool = false);
5544 bool LoadXML(const XMLElement&, bool = false);
5545 void MarkNetworkUpdate() const;
5546 void Remove();
5547 void RemoveAttributeAnimation(const String&);
5548 void RemoveInstanceDefault();
5549 void RemoveObjectAnimation();
5550 void ResetToDefault();
5551 bool Save(File) const;
5552 bool Save(VectorBuffer&) const;
5553 bool SaveJSON(JSONValue&) const;
5554 bool SaveXML(XMLElement&) const;
5555 void SendEvent(const String&, VariantMap& = VariantMap ( ));
5556 void SetAnimationTime(float);
5557 bool SetAttribute(const String&, const Variant&);
5558 void SetAttributeAnimation(const String&, ValueAnimation, WrapMode = WM_LOOP, float = 1.0f);
5559 void SetAttributeAnimationSpeed(const String&, float);
5560 void SetAttributeAnimationTime(const String&, float);
5561 void SetAttributeAnimationWrapMode(const String&, WrapMode);
5562 void SetInterceptNetworkUpdate(const String&, bool);
5563 
5564 // Properties:
5565 bool animationEnabled;
5566 /* readonly */
5567 Array<Variant> attributeDefaults;
5568 /* readonly */
5569 Array<AttributeInfo> attributeInfos;
5570 Array<Variant> attributes;
5571 /* readonly */
5572 String category;
5573 uint chainLength;
5574 bool enabled;
5575 /* readonly */
5576 bool enabledEffective;
5577 /* readonly */
5578 uint id;
5579 /* readonly */
5580 Node node;
5581 /* readonly */
5582 uint numAttributes;
5583 ObjectAnimation objectAnimation;
5584 /* readonly */
5585 int refs;
5586 float rotationDecay;
5587 float rotationWeight;
5588 String targetName;
5589 Node targetNode;
5590 Vector3 targetPosition;
5591 Quaternion targetRotation;
5592 bool temporary;
5593 /* readonly */
5594 StringHash type;
5595 /* readonly */
5596 String typeName;
5597 /* readonly */
5598 int weakRefs;
5599 float weight;
5600 };
5601 
5602 class IKSolver
5603 {
5604 public:
5605 // Methods:
5606 void ApplyActivePoseToScene();
5607 void ApplyAttributes();
5608 void ApplyOriginalPoseToActivePose();
5609 void ApplyOriginalPoseToScene();
5610 void ApplySceneToActivePose();
5611 void ApplySceneToInitialPose();
5612 void CalculateJointRotations();
5613 void DrawDebugGeometry(DebugRenderer, bool);
5614 void DrawDebugGeometry(bool);
5615 Variant GetAttribute(const String&) const;
5616 ValueAnimation GetAttributeAnimation(const String&) const;
5617 float GetAttributeAnimationSpeed(const String&) const;
5618 float GetAttributeAnimationTime(const String&) const;
5619 WrapMode GetAttributeAnimationWrapMode(const String&) const;
5620 Variant GetAttributeDefault(const String&) const;
5621 bool GetInterceptNetworkUpdate(const String&) const;
5622 bool HasSubscribedToEvent(Object, const String&);
5623 bool HasSubscribedToEvent(const String&);
5624 bool Load(File, bool = false);
5625 bool Load(VectorBuffer&, bool = false);
5626 bool LoadJSON(const JSONValue&, bool = false);
5627 bool LoadXML(const XMLElement&, bool = false);
5628 void MarkNetworkUpdate() const;
5629 void RebuildChainTrees();
5630 void RecalculateSegmentLengths();
5631 void Remove();
5632 void RemoveAttributeAnimation(const String&);
5633 void RemoveInstanceDefault();
5634 void RemoveObjectAnimation();
5635 void ResetToDefault();
5636 bool Save(File) const;
5637 bool Save(VectorBuffer&) const;
5638 bool SaveJSON(JSONValue&) const;
5639 bool SaveXML(XMLElement&) const;
5640 void SendEvent(const String&, VariantMap& = VariantMap ( ));
5641 void SetAnimationTime(float);
5642 bool SetAttribute(const String&, const Variant&);
5643 void SetAttributeAnimation(const String&, ValueAnimation, WrapMode = WM_LOOP, float = 1.0f);
5644 void SetAttributeAnimationSpeed(const String&, float);
5645 void SetAttributeAnimationTime(const String&, float);
5646 void SetAttributeAnimationWrapMode(const String&, WrapMode);
5647 void SetInterceptNetworkUpdate(const String&, bool);
5648 void Solve();
5649 
5650 // Properties:
5651 bool AUTO_SOLVE;
5652 bool CONSTRAINTS;
5653 bool JOINT_ROTATIONS;
5654 bool TARGET_ROTATIONS;
5655 bool UPDATE_ACTIVE_POSE;
5656 bool UPDATE_ORIGINAL_POSE;
5657 bool USE_ORIGINAL_POSE;
5658 IKAlgorithm algorithm;
5659 bool animationEnabled;
5660 /* readonly */
5661 Array<Variant> attributeDefaults;
5662 /* readonly */
5663 Array<AttributeInfo> attributeInfos;
5664 Array<Variant> attributes;
5665 /* readonly */
5666 String category;
5667 bool enabled;
5668 /* readonly */
5669 bool enabledEffective;
5670 /* readonly */
5671 uint id;
5672 uint maximumIterations;
5673 /* readonly */
5674 Node node;
5675 /* readonly */
5676 uint numAttributes;
5677 ObjectAnimation objectAnimation;
5678 /* readonly */
5679 int refs;
5680 bool temporary;
5681 float tolerance;
5682 /* readonly */
5683 StringHash type;
5684 /* readonly */
5685 String typeName;
5686 /* readonly */
5687 int weakRefs;
5688 };
5689 
5690 class Image
5691 {
5692 public:
5693 Image();
5694 Image(const String&in);
5695 // Methods:
5696 void Clear(const Color&);
5697 void ClearInt(uint);
5698 bool FlipHorizontal();
5699 bool FlipVertical();
5700 Color GetPixel(int, int) const;
5701 Color GetPixel(int, int, int) const;
5702 Color GetPixelBilinear(float, float) const;
5703 uint GetPixelInt(int, int) const;
5704 uint GetPixelInt(int, int, int) const;
5705 Color GetPixelTrilinear(float, float, float) const;
5706 Image GetSubimage(const IntRect&) const;
5707 bool HasSubscribedToEvent(Object, const String&);
5708 bool HasSubscribedToEvent(const String&);
5709 bool Load(File);
5710 bool Load(VectorBuffer&);
5711 bool Load(const String&);
5712 bool LoadColorLUT(File);
5713 bool LoadColorLUT(VectorBuffer&);
5714 bool Resize(int, int);
5715 bool Save(File) const;
5716 bool Save(VectorBuffer&) const;
5717 bool Save(const String&) const;
5718 bool SaveBMP(const String&) const;
5719 bool SaveDDS(const String&) const;
5720 bool SaveJPG(const String&, int) const;
5721 bool SavePNG(const String&) const;
5722 bool SaveTGA(const String&) const;
5723 bool SaveWEBP(const String&, float = 0.0f) const;
5724 void SendEvent(const String&, VariantMap& = VariantMap ( ));
5725 void SetPixel(int, int, const Color&);
5726 void SetPixel(int, int, int, const Color&);
5727 void SetPixelInt(int, int, int, uint);
5728 void SetPixelInt(int, int, uint);
5729 bool SetSize(int, int, int, uint);
5730 bool SetSize(int, int, uint);
5731 
5732 // Properties:
5733 /* readonly */
5734 bool array;
5735 /* readonly */
5736 String category;
5737 /* readonly */
5738 uint components;
5739 /* readonly */
5740 bool compressed;
5741 /* readonly */
5742 CompressedFormat compressedFormat;
5743 /* readonly */
5744 bool cubemap;
5745 /* readonly */
5746 int depth;
5747 /* readonly */
5748 int height;
5749 /* readonly */
5750 uint memoryUse;
5751 String name;
5752 /* readonly */
5753 uint numCompressedLevels;
5754 /* readonly */
5755 int refs;
5756 /* readonly */
5757 bool sRGB;
5758 /* readonly */
5759 StringHash type;
5760 /* readonly */
5761 String typeName;
5762 /* readonly */
5763 uint useTimer;
5764 /* readonly */
5765 int weakRefs;
5766 /* readonly */
5767 int width;
5768 };
5769 
5770 class IndexBuffer
5771 {
5772 public:
5773 IndexBuffer();
5774 // Methods:
5775 VectorBuffer GetData();
5776 bool HasSubscribedToEvent(Object, const String&);
5777 bool HasSubscribedToEvent(const String&);
5778 void SendEvent(const String&, VariantMap& = VariantMap ( ));
5779 bool SetData(VectorBuffer&);
5780 bool SetDataRange(VectorBuffer&, uint, uint, bool = false);
5781 void SetSize(uint, bool, bool = false);
5782 
5783 // Properties:
5784 /* readonly */
5785 String category;
5786 /* readonly */
5787 bool dynamic;
5788 /* readonly */
5789 uint indexCount;
5790 /* readonly */
5791 uint indexSize;
5792 /* readonly */
5793 int refs;
5794 bool shadowed;
5795 /* readonly */
5796 StringHash type;
5797 /* readonly */
5798 String typeName;
5799 /* readonly */
5800 int weakRefs;
5801 };
5802 
5803 class Input
5804 {
5805 public:
5806 // Methods:
5807 int AddScreenJoystick(XMLFile = null, XMLFile = null);
5808 void CenterMousePosition();
5809 int GetKeyFromName(const String&) const;
5810 int GetKeyFromScancode(int) const;
5811 String GetKeyName(int) const;
5812 int GetScancodeFromKey(int) const;
5813 int GetScancodeFromName(const String&) const;
5814 String GetScancodeName(int) const;
5815 bool HasSubscribedToEvent(Object, const String&);
5816 bool HasSubscribedToEvent(const String&);
5817 uint LoadGestures(File);
5818 uint LoadGestures(VectorBuffer&);
5819 bool RecordGesture();
5820 void RemoveAllGestures();
5821 bool RemoveGesture(uint);
5822 bool RemoveScreenJoystick(int);
5823 void ResetMouseGrabbed();
5824 void ResetMouseMode();
5825 void ResetMouseVisible();
5826 bool SaveGesture(File, uint);
5827 bool SaveGesture(VectorBuffer&, uint);
5828 bool SaveGestures(File);
5829 bool SaveGestures(VectorBuffer&);
5830 void SendEvent(const String&, VariantMap& = VariantMap ( ));
5831 void SetMouseGrabbed(bool, bool = false);
5832 void SetMouseMode(MouseMode, bool = false);
5833 void SetMouseVisible(bool, bool = false);
5834 
5835 // Properties:
5836 /* readonly */
5837 String category;
5838 /* readonly */
5839 bool focus;
5840 /* readonly */
5841 Vector2 inputScale;
5842 /* readonly */
5843 Array<JoystickState> joysticks;
5844 /* readonly */
5845 Array<JoystickState> joysticksByIndex;
5846 /* readonly */
5847 Array<JoystickState> joysticksByName;
5848 /* readonly */
5849 Array<bool> keyDown;
5850 /* readonly */
5851 Array<bool> keyPress;
5852 /* readonly */
5853 bool minimized;
5854 /* readonly */
5855 Array<bool> mouseButtonDown;
5856 /* readonly */
5857 Array<bool> mouseButtonPress;
5858 bool mouseGrabbed;
5859 /* readonly */
5860 bool mouseLocked;
5861 MouseMode mouseMode;
5862 /* readonly */
5863 IntVector2 mouseMove;
5864 /* readonly */
5865 int mouseMoveWheel;
5866 /* readonly */
5867 int mouseMoveX;
5868 /* readonly */
5869 int mouseMoveY;
5870 IntVector2 mousePosition;
5871 bool mouseVisible;
5872 /* readonly */
5873 uint numJoysticks;
5874 /* readonly */
5875 uint numTouches;
5876 /* readonly */
5877 Array<bool> qualifierDown;
5878 /* readonly */
5879 Array<bool> qualifierPress;
5880 /* readonly */
5881 int qualifiers;
5882 /* readonly */
5883 int refs;
5884 /* readonly */
5885 Array<bool> scancodeDown;
5886 /* readonly */
5887 Array<bool> scancodePress;
5888 Array<bool> screenJoystickVisible;
5889 /* readonly */
5890 bool screenKeyboardSupport;
5891 bool screenKeyboardVisible;
5892 bool toggleFullscreen;
5893 bool touchEmulation;
5894 /* readonly */
5895 Array<TouchState> touches;
5896 /* readonly */
5897 StringHash type;
5898 /* readonly */
5899 String typeName;
5900 /* readonly */
5901 int weakRefs;
5902 };
5903 
5904 class IntRect
5905 {
5906 public:
5907 IntRect();
5908 IntRect(const IntRect&in);
5909 IntRect(int, int, int, int);
5910 IntRect(int[]&inout);
5911 // Methods:
5912 Intersection IsInside(const IntVector2&) const;
5913 
5914 // Properties:
5915 int bottom;
5916 /* readonly */
5917 Array<int> data;
5918 /* readonly */
5919 int height;
5920 int left;
5921 int right;
5922 /* readonly */
5923 IntVector2 size;
5924 int top;
5925 /* readonly */
5926 int width;
5927 };
5928 
5929 class IntVector2
5930 {
5931 public:
5932 IntVector2();
5933 IntVector2(const IntVector2&in);
5934 IntVector2(int, int);
5935 IntVector2(int[]&inout);
5936 // Methods:
5937 float Length() const;
5938 uint ToHash() const;
5939 String ToString() const;
5940 
5941 // Properties:
5942 /* readonly */
5943 Array<int> data;
5944 int x;
5945 int y;
5946 
5947 // Constants:
5948 static const IntVector2 DOWN;
5949 static const IntVector2 LEFT;
5950 static const IntVector2 ONE;
5951 static const IntVector2 RIGHT;
5952 static const IntVector2 UP;
5953 static const IntVector2 ZERO;
5954 };
5955 
5956 class IntVector3
5957 {
5958 public:
5959 IntVector3();
5960 IntVector3(const IntVector3&in);
5961 IntVector3(int, int, int);
5962 IntVector3(int[]&inout);
5963 // Methods:
5964 float Length() const;
5965 uint ToHash() const;
5966 String ToString() const;
5967 
5968 // Properties:
5969 /* readonly */
5970 Array<int> data;
5971 int x;
5972 int y;
5973 int z;
5974 
5975 // Constants:
5976 static const IntVector3 BACK;
5977 static const IntVector3 DOWN;
5978 static const IntVector3 FORWARD;
5979 static const IntVector3 LEFT;
5980 static const IntVector3 ONE;
5981 static const IntVector3 RIGHT;
5982 static const IntVector3 UP;
5983 static const IntVector3 ZERO;
5984 };
5985 
5986 class JSONFile
5987 {
5988 public:
5989 JSONFile();
5990 JSONFile(const String&in);
5991 // Methods:
5992 bool FromString(const String&);
5993 JSONValue& GetRoot();
5994 bool HasSubscribedToEvent(Object, const String&);
5995 bool HasSubscribedToEvent(const String&);
5996 bool Load(File);
5997 bool Load(VectorBuffer&);
5998 bool Load(const String&);
5999 bool Save(File) const;
6000 bool Save(File, const String&) const;
6001 bool Save(VectorBuffer&) const;
6002 bool Save(const String&) const;
6003 void SendEvent(const String&, VariantMap& = VariantMap ( ));
6004 
6005 // Properties:
6006 /* readonly */
6007 String category;
6008 /* readonly */
6009 uint memoryUse;
6010 String name;
6011 /* readonly */
6012 int refs;
6013 /* readonly */
6014 JSONValue root;
6015 /* readonly */
6016 StringHash type;
6017 /* readonly */
6018 String typeName;
6019 /* readonly */
6020 uint useTimer;
6021 /* readonly */
6022 int weakRefs;
6023 };
6024 
6025 class JSONValue
6026 {
6027 public:
6028 ~JSONValue();
6029 JSONValue();
6030 JSONValue(bool);
6031 JSONValue(int);
6032 JSONValue(uint);
6033 JSONValue(float);
6034 JSONValue(double);
6035 JSONValue(const String&in);
6036 JSONValue(const JSONValue&in);
6037 // Methods:
6038 void Clear();
6039 bool Contains(const String&) const;
6040 void Erase(const String&);
6041 void Erase(uint, uint = 1);
6042 bool GetBool() const;
6043 double GetDouble() const;
6044 float GetFloat() const;
6045 int GetInt() const;
6046 uint GetUInt() const;
6047 Variant GetVariant() const;
6048 VariantMap GetVariantMap() const;
6049 void Insert(uint, const JSONValue&);
6050 const JSONValue& Get(const String&) const;
6051 void Pop();
6052 void Push(const JSONValue&);
6053 void Resize(uint);
6054 void Set(const String&, const JSONValue&);
6055 void SetVariant(const Variant&);
6056 void SetVariantMap(const VariantMap&);
6057 const String& GetString() const;
6058 
6059 // Properties:
6060 /* readonly */
6061 bool isArray;
6062 /* readonly */
6063 bool isBool;
6064 /* readonly */
6065 bool isNull;
6066 /* readonly */
6067 bool isNumber;
6068 /* readonly */
6069 bool isObject;
6070 /* readonly */
6071 bool isString;
6072 /* readonly */
6073 Array<String> keys;
6074 /* readonly */
6075 JSONNumberType numberType;
6076 /* readonly */
6077 String numberTypeName;
6078 /* readonly */
6079 uint size;
6080 /* readonly */
6081 JSONValueType valueType;
6082 /* readonly */
6083 String valueTypeName;
6084 /* readonly */
6085 Array<JSONValue> values;
6086 };
6087 
6088 class JoystickState
6089 {
6090 public:
6091 
6092 // Properties:
6093 /* readonly */
6094 Array<float> axisPosition;
6095 /* readonly */
6096 Array<bool> buttonDown;
6097 /* readonly */
6098 Array<bool> buttonPress;
6099 /* readonly */
6100 bool controller;
6101 /* readonly */
6102 Array<int> hatPosition;
6103 int joystickID;
6104 String name;
6105 /* readonly */
6106 uint numAxes;
6107 /* readonly */
6108 uint numButtons;
6109 /* readonly */
6110 uint numHats;
6111 };
6112 
6113 class Light
6114 {
6115 public:
6116 // Methods:
6117 void ApplyAttributes();
6118 void DrawDebugGeometry(DebugRenderer, bool);
6119 Variant GetAttribute(const String&) const;
6120 ValueAnimation GetAttributeAnimation(const String&) const;
6121 float GetAttributeAnimationSpeed(const String&) const;
6122 float GetAttributeAnimationTime(const String&) const;
6123 WrapMode GetAttributeAnimationWrapMode(const String&) const;
6124 Variant GetAttributeDefault(const String&) const;
6125 bool GetInterceptNetworkUpdate(const String&) const;
6126 bool HasSubscribedToEvent(Object, const String&);
6127 bool HasSubscribedToEvent(const String&);
6128 bool IsInView(Camera) const;
6129 bool Load(File, bool = false);
6130 bool Load(VectorBuffer&, bool = false);
6131 bool LoadJSON(const JSONValue&, bool = false);
6132 bool LoadXML(const XMLElement&, bool = false);
6133 void MarkNetworkUpdate() const;
6134 void Remove();
6135 void RemoveAttributeAnimation(const String&);
6136 void RemoveInstanceDefault();
6137 void RemoveObjectAnimation();
6138 void ResetToDefault();
6139 bool Save(File) const;
6140 bool Save(VectorBuffer&) const;
6141 bool SaveJSON(JSONValue&) const;
6142 bool SaveXML(XMLElement&) const;
6143 void SendEvent(const String&, VariantMap& = VariantMap ( ));
6144 void SetAnimationTime(float);
6145 bool SetAttribute(const String&, const Variant&);
6146 void SetAttributeAnimation(const String&, ValueAnimation, WrapMode = WM_LOOP, float = 1.0f);
6147 void SetAttributeAnimationSpeed(const String&, float);
6148 void SetAttributeAnimationTime(const String&, float);
6149 void SetAttributeAnimationWrapMode(const String&, WrapMode);
6150 void SetInterceptNetworkUpdate(const String&, bool);
6151 
6152 // Properties:
6153 bool animationEnabled;
6154 float aspectRatio;
6155 /* readonly */
6156 Array<Variant> attributeDefaults;
6157 /* readonly */
6158 Array<AttributeInfo> attributeInfos;
6159 Array<Variant> attributes;
6160 /* readonly */
6161 BoundingBox boundingBox;
6162 float brightness;
6163 bool castShadows;
6164 /* readonly */
6165 String category;
6166 Color color;
6167 /* readonly */
6168 Color colorFromTemperature;
6169 float drawDistance;
6170 /* readonly */
6171 Color effectiveColor;
6172 /* readonly */
6173 float effectiveSpecularIntensity;
6174 bool enabled;
6175 /* readonly */
6176 bool enabledEffective;
6177 float fadeDistance;
6178 float fov;
6179 /* readonly */
6180 Frustum frustum;
6181 /* readonly */
6182 uint id;
6183 /* readonly */
6184 bool inView;
6185 float length;
6186 uint lightMask;
6187 LightType lightType;
6188 float lodBias;
6189 uint maxLights;
6190 /* readonly */
6191 bool negative;
6192 /* readonly */
6193 Node node;
6194 /* readonly */
6195 uint numAttributes;
6196 /* readonly */
6197 int numShadowSplits;
6198 ObjectAnimation objectAnimation;
6199 bool occludee;
6200 bool occluder;
6201 bool perVertex;
6202 float radius;
6203 Texture rampTexture;
6204 float range;
6205 /* readonly */
6206 int refs;
6207 BiasParameters shadowBias;
6208 CascadeParameters shadowCascade;
6209 float shadowDistance;
6210 float shadowFadeDistance;
6211 FocusParameters shadowFocus;
6212 float shadowIntensity;
6213 uint shadowMask;
6214 float shadowMaxExtrusion;
6215 float shadowNearFarRatio;
6216 float shadowResolution;
6217 Texture shapeTexture;
6218 float specularIntensity;
6219 float temperature;
6220 bool temporary;
6221 /* readonly */
6222 StringHash type;
6223 /* readonly */
6224 String typeName;
6225 bool usePhysicalValues;
6226 uint viewMask;
6227 /* readonly */
6228 int weakRefs;
6229 /* readonly */
6230 BoundingBox worldBoundingBox;
6231 uint zoneMask;
6232 };
6233 
6234 class LineEdit
6235 {
6236 public:
6237 LineEdit();
6238 LineEdit(const String&in);
6239 // Methods:
6240 void AddChild(UIElement);
6241 void AddTag(const String&);
6242 void AddTags(const String&, int8 = ';');
6243 void ApplyAttributes();
6244 void BringToFront();
6245 UIElement CreateChild(const String&, const String& = String ( ), uint = M_MAX_UNSIGNED);
6246 void DisableLayoutUpdate();
6247 IntVector2 ElementToScreen(const IntVector2&);
6248 void EnableLayoutUpdate();
6249 uint FindChild(UIElement) const;
6250 Variant GetAttribute(const String&) const;
6251 ValueAnimation GetAttributeAnimation(const String&) const;
6252 float GetAttributeAnimationSpeed(const String&) const;
6253 float GetAttributeAnimationTime(const String&) const;
6254 WrapMode GetAttributeAnimationWrapMode(const String&) const;
6255 Variant GetAttributeDefault(const String&) const;
6256 UIElement GetChild(const String&, bool = false) const;
6257 UIElement GetChild(const StringHash&, const Variant& = Variant ( ), bool = false) const;
6258 Array<UIElement> GetChildren(bool = false) const;
6259 Array<UIElement> GetChildrenWithTag(const String&, bool = false) const;
6260 UIElement GetElementEventSender() const;
6261 bool GetInterceptNetworkUpdate(const String&) const;
6262 uint GetNumChildren(bool) const;
6263 bool HasSubscribedToEvent(Object, const String&);
6264 bool HasSubscribedToEvent(const String&);
6265 bool HasTag(const String&) const;
6266 void InsertChild(uint, UIElement);
6267 bool IsInside(IntVector2, bool);
6268 bool IsInsideCombined(IntVector2, bool);
6269 bool Load(File, bool = false);
6270 bool Load(VectorBuffer&, bool = false);
6271 UIElement LoadChildXML(XMLFile, XMLFile = null);
6272 UIElement LoadChildXML(const XMLElement&, XMLFile = null, bool = false);
6273 bool LoadJSON(const JSONValue&, bool = false);
6274 bool LoadXML(File);
6275 bool LoadXML(VectorBuffer&);
6276 bool LoadXML(XMLFile, XMLFile);
6277 bool LoadXML(const XMLElement&, XMLFile, bool = false);
6278 bool LoadXML(const XMLElement&, bool = false);
6279 void MarkNetworkUpdate() const;
6280 void Remove();
6281 void RemoveAllChildren();
6282 void RemoveAllTags();
6283 void RemoveAttributeAnimation(const String&);
6284 void RemoveChild(UIElement, uint = 0);
6285 void RemoveChild(uint);
6286 void RemoveInstanceDefault();
6287 void RemoveObjectAnimation();
6288 bool RemoveTag(const String&);
6289 void ResetDeepEnabled();
6290 void ResetToDefault();
6291 bool Save(File) const;
6292 bool Save(VectorBuffer&) const;
6293 bool SaveJSON(JSONValue&) const;
6294 bool SaveXML(File, const String& = "\t");
6295 bool SaveXML(VectorBuffer&, const String& = "\t");
6296 bool SaveXML(XMLElement&) const;
6297 IntVector2 ScreenToElement(const IntVector2&);
6298 void SendEvent(const String&, VariantMap& = VariantMap ( ));
6299 void SetAlignment(HorizontalAlignment, VerticalAlignment);
6300 void SetAnimationTime(float);
6301 bool SetAttribute(const String&, const Variant&);
6302 void SetAttributeAnimation(const String&, ValueAnimation, WrapMode = WM_LOOP, float = 1.0f);
6303 void SetAttributeAnimationSpeed(const String&, float);
6304 void SetAttributeAnimationTime(const String&, float);
6305 void SetAttributeAnimationWrapMode(const String&, WrapMode);
6306 void SetDeepEnabled(bool);
6307 void SetEnabledRecursive(bool);
6308 void SetFixedHeight(int);
6309 void SetFixedSize(int, int);
6310 void SetFixedWidth(int);
6311 void SetFullImageRect();
6312 void SetHoverOffset(int, int);
6313 void SetInterceptNetworkUpdate(const String&, bool);
6314 void SetLayout(LayoutMode, int = 0, const IntRect& = IntRect ( 0 , 0 , 0 , 0 ));
6315 void SetMaxAnchor(float, float);
6316 void SetMaxSize(int, int);
6317 void SetMinAnchor(float, float);
6318 void SetMinSize(int, int);
6319 void SetParent(UIElement, uint = M_MAX_UNSIGNED);
6320 void SetPivot(float, float);
6321 void SetPosition(int, int);
6322 void SetSize(int, int);
6323 bool SetStyle(const String&, XMLFile = null);
6324 bool SetStyle(const XMLElement&);
6325 bool SetStyleAuto(XMLFile = null);
6326 void UpdateLayout();
6327 const Variant& GetVar(const StringHash&);
6328 
6329 // Properties:
6330 bool animationEnabled;
6331 /* readonly */
6332 Array<Variant> attributeDefaults;
6333 /* readonly */
6334 Array<AttributeInfo> attributeInfos;
6335 Array<Variant> attributes;
6336 BlendMode blendMode;
6337 IntRect border;
6338 bool bringToBack;
6339 bool bringToFront;
6340 /* readonly */
6341 String category;
6342 /* readonly */
6343 IntVector2 childOffset;
6344 /* readonly */
6345 Array<UIElement> children;
6346 IntRect clipBorder;
6347 bool clipChildren;
6348 /* writeonly */
6349 Color color;
6350 /* readonly */
6351 bool colorGradient;
6352 Array<Color> colors;
6353 /* readonly */
6354 IntRect combinedScreenRect;
6355 /* readonly */
6356 BorderImage cursor;
6357 float cursorBlinkRate;
6358 bool cursorMovable;
6359 uint cursorPosition;
6360 XMLFile defaultStyle;
6361 /* readonly */
6362 float derivedOpacity;
6363 /* readonly */
6364 uint dragButtonCombo;
6365 /* readonly */
6366 int dragButtonCount;
6367 uint dragDropMode;
6368 uint echoCharacter;
6369 bool editable;
6370 bool elementEventSender;
6371 bool enableAnchor;
6372 bool enabled;
6373 /* readonly */
6374 bool enabledSelf;
6375 /* readonly */
6376 bool fixedHeight;
6377 /* readonly */
6378 bool fixedSize;
6379 /* readonly */
6380 bool fixedWidth;
6381 bool focus;
6382 FocusMode focusMode;
6383 int height;
6384 HorizontalAlignment horizontalAlignment;
6385 IntVector2 hoverOffset;
6386 /* readonly */
6387 bool hovering;
6388 IntRect imageBorder;
6389 IntRect imageRect;
6390 int indent;
6391 int indentSpacing;
6392 /* readonly */
6393 int indentWidth;
6394 bool internal;
6395 IntRect layoutBorder;
6396 Vector2 layoutFlexScale;
6397 LayoutMode layoutMode;
6398 int layoutSpacing;
6399 Vector2 maxAnchor;
6400 int maxHeight;
6401 uint maxLength;
6402 IntVector2 maxOffset;
6403 IntVector2 maxSize;
6404 int maxWidth;
6405 Vector2 minAnchor;
6406 int minHeight;
6407 IntVector2 minOffset;
6408 IntVector2 minSize;
6409 int minWidth;
6410 String name;
6411 /* readonly */
6412 uint numAllChildren;
6413 /* readonly */
6414 uint numAttributes;
6415 /* readonly */
6416 uint numChildren;
6417 ObjectAnimation objectAnimation;
6418 float opacity;
6419 UIElement parent;
6420 Vector2 pivot;
6421 IntVector2 position;
6422 int priority;
6423 /* readonly */
6424 int refs;
6425 /* readonly */
6426 UIElement root;
6427 /* readonly */
6428 IntVector2 screenPosition;
6429 bool selected;
6430 IntVector2 size;
6431 bool sortChildren;
6432 String style;
6433 /* readonly */
6434 Array<String> tags;
6435 bool temporary;
6436 String text;
6437 bool textCopyable;
6438 /* readonly */
6439 Text textElement;
6440 bool textSelectable;
6441 Texture texture;
6442 bool tiled;
6443 TraversalMode traversalMode;
6444 /* readonly */
6445 StringHash type;
6446 /* readonly */
6447 String typeName;
6448 bool useDerivedOpacity;
6449 /* readonly */
6450 VariantMap vars;
6451 VerticalAlignment verticalAlignment;
6452 bool visible;
6453 /* readonly */
6454 bool visibleEffective;
6455 /* readonly */
6456 int weakRefs;
6457 int width;
6458 };
6459 
6460 class ListView
6461 {
6462 public:
6463 ListView();
6464 ListView(const String&in);
6465 // Methods:
6466 void AddChild(UIElement);
6467 void AddItem(UIElement);
6468 void AddSelection(uint);
6469 void AddTag(const String&);
6470 void AddTags(const String&, int8 = ';');
6471 void ApplyAttributes();
6472 void BringToFront();
6473 void ChangeSelection(int, bool);
6474 void ClearSelection();
6475 void CopySelectedItemsToClipboard();
6476 UIElement CreateChild(const String&, const String& = String ( ), uint = M_MAX_UNSIGNED);
6477 void DisableLayoutUpdate();
6478 IntVector2 ElementToScreen(const IntVector2&);
6479 void EnableLayoutUpdate();
6480 void Expand(uint, bool, bool = false);
6481 uint FindChild(UIElement) const;
6482 uint FindItem(UIElement);
6483 Variant GetAttribute(const String&) const;
6484 ValueAnimation GetAttributeAnimation(const String&) const;
6485 float GetAttributeAnimationSpeed(const String&) const;
6486 float GetAttributeAnimationTime(const String&) const;
6487 WrapMode GetAttributeAnimationWrapMode(const String&) const;
6488 Variant GetAttributeDefault(const String&) const;
6489 UIElement GetChild(const String&, bool = false) const;
6490 UIElement GetChild(const StringHash&, const Variant& = Variant ( ), bool = false) const;
6491 Array<UIElement> GetChildren(bool = false) const;
6492 Array<UIElement> GetChildrenWithTag(const String&, bool = false) const;
6493 UIElement GetElementEventSender() const;
6494 bool GetInterceptNetworkUpdate(const String&) const;
6495 Array<UIElement> GetItems() const;
6496 uint GetNumChildren(bool) const;
6497 bool HasSubscribedToEvent(Object, const String&);
6498 bool HasSubscribedToEvent(const String&);
6499 bool HasTag(const String&) const;
6500 void InsertChild(uint, UIElement);
6501 void InsertItem(uint, UIElement, UIElement = null);
6502 bool IsExpanded(uint) const;
6503 bool IsInside(IntVector2, bool);
6504 bool IsInsideCombined(IntVector2, bool);
6505 bool IsSelected(uint) const;
6506 bool Load(File, bool = false);
6507 bool Load(VectorBuffer&, bool = false);
6508 UIElement LoadChildXML(XMLFile, XMLFile = null);
6509 UIElement LoadChildXML(const XMLElement&, XMLFile = null, bool = false);
6510 bool LoadJSON(const JSONValue&, bool = false);
6511 bool LoadXML(File);
6512 bool LoadXML(VectorBuffer&);
6513 bool LoadXML(XMLFile, XMLFile);
6514 bool LoadXML(const XMLElement&, XMLFile, bool = false);
6515 bool LoadXML(const XMLElement&, bool = false);
6516 void MarkNetworkUpdate() const;
6517 void Remove();
6518 void RemoveAllChildren();
6519 void RemoveAllItems();
6520 void RemoveAllTags();
6521 void RemoveAttributeAnimation(const String&);
6522 void RemoveChild(UIElement, uint = 0);
6523 void RemoveChild(uint);
6524 void RemoveInstanceDefault();
6525 void RemoveItem(UIElement, uint = 0);
6526 void RemoveItem(uint);
6527 void RemoveObjectAnimation();
6528 void RemoveSelection(uint);
6529 bool RemoveTag(const String&);
6530 void ResetDeepEnabled();
6531 void ResetToDefault();
6532 bool Save(File) const;
6533 bool Save(VectorBuffer&) const;
6534 bool SaveJSON(JSONValue&) const;
6535 bool SaveXML(File, const String& = "\t");
6536 bool SaveXML(VectorBuffer&, const String& = "\t");
6537 bool SaveXML(XMLElement&) const;
6538 IntVector2 ScreenToElement(const IntVector2&);
6539 void SendEvent(const String&, VariantMap& = VariantMap ( ));
6540 void SetAlignment(HorizontalAlignment, VerticalAlignment);
6541 void SetAnimationTime(float);
6542 bool SetAttribute(const String&, const Variant&);
6543 void SetAttributeAnimation(const String&, ValueAnimation, WrapMode = WM_LOOP, float = 1.0f);
6544 void SetAttributeAnimationSpeed(const String&, float);
6545 void SetAttributeAnimationTime(const String&, float);
6546 void SetAttributeAnimationWrapMode(const String&, WrapMode);
6547 void SetDeepEnabled(bool);
6548 void SetEnabledRecursive(bool);
6549 void SetFixedHeight(int);
6550 void SetFixedSize(int, int);
6551 void SetFixedWidth(int);
6552 void SetInterceptNetworkUpdate(const String&, bool);
6553 void SetLayout(LayoutMode, int = 0, const IntRect& = IntRect ( 0 , 0 , 0 , 0 ));
6554 void SetMaxAnchor(float, float);
6555 void SetMaxSize(int, int);
6556 void SetMinAnchor(float, float);
6557 void SetMinSize(int, int);
6558 void SetParent(UIElement, uint = M_MAX_UNSIGNED);
6559 void SetPivot(float, float);
6560 void SetPosition(int, int);
6561 void SetScrollBarsVisible(bool, bool);
6562 void SetSelections(Array<uint>);
6563 void SetSize(int, int);
6564 bool SetStyle(const String&, XMLFile = null);
6565 bool SetStyle(const XMLElement&);
6566 bool SetStyleAuto(XMLFile = null);
6567 void SetViewPosition(int, int);
6568 void ToggleExpand(uint, bool = false);
6569 void ToggleSelection(uint);
6570 void UpdateLayout();
6571 const Variant& GetVar(const StringHash&);
6572 
6573 // Properties:
6574 bool animationEnabled;
6575 /* readonly */
6576 Array<Variant> attributeDefaults;
6577 /* readonly */
6578 Array<AttributeInfo> attributeInfos;
6579 Array<Variant> attributes;
6580 bool autoDisableChildren;
6581 float autoDisableThreshold;
6582 int baseIndent;
6583 bool bringToBack;
6584 bool bringToFront;
6585 /* readonly */
6586 String category;
6587 /* readonly */
6588 IntVector2 childOffset;
6589 /* readonly */
6590 Array<UIElement> children;
6591 bool clearSelectionOnDefocus;
6592 IntRect clipBorder;
6593 bool clipChildren;
6594 /* writeonly */
6595 Color color;
6596 /* readonly */
6597 bool colorGradient;
6598 Array<Color> colors;
6599 /* readonly */
6600 IntRect combinedScreenRect;
6601 /* readonly */
6602 UIElement contentElement;
6603 XMLFile defaultStyle;
6604 /* readonly */
6605 float derivedOpacity;
6606 /* readonly */
6607 uint dragButtonCombo;
6608 /* readonly */
6609 int dragButtonCount;
6610 uint dragDropMode;
6611 bool editable;
6612 bool elementEventSender;
6613 bool enableAnchor;
6614 bool enabled;
6615 /* readonly */
6616 bool enabledSelf;
6617 /* readonly */
6618 bool fixedHeight;
6619 /* readonly */
6620 bool fixedSize;
6621 /* readonly */
6622 bool fixedWidth;
6623 bool focus;
6624 FocusMode focusMode;
6625 int height;
6626 bool hierarchyMode;
6627 HighlightMode highlightMode;
6628 HorizontalAlignment horizontalAlignment;
6629 /* readonly */
6630 ScrollBar horizontalScrollBar;
6631 /* readonly */
6632 bool hovering;
6633 int indent;
6634 int indentSpacing;
6635 /* readonly */
6636 int indentWidth;
6637 bool internal;
6638 /* readonly */
6639 Array<UIElement> items;
6640 IntRect layoutBorder;
6641 Vector2 layoutFlexScale;
6642 LayoutMode layoutMode;
6643 int layoutSpacing;
6644 Vector2 maxAnchor;
6645 int maxHeight;
6646 IntVector2 maxOffset;
6647 IntVector2 maxSize;
6648 int maxWidth;
6649 Vector2 minAnchor;
6650 int minHeight;
6651 IntVector2 minOffset;
6652 IntVector2 minSize;
6653 int minWidth;
6654 bool multiselect;
6655 String name;
6656 /* readonly */
6657 uint numAllChildren;
6658 /* readonly */
6659 uint numAttributes;
6660 /* readonly */
6661 uint numChildren;
6662 /* readonly */
6663 uint numItems;
6664 ObjectAnimation objectAnimation;
6665 float opacity;
6666 float pageStep;
6667 UIElement parent;
6668 Vector2 pivot;
6669 IntVector2 position;
6670 int priority;
6671 /* readonly */
6672 int refs;
6673 /* readonly */
6674 UIElement root;
6675 /* readonly */
6676 IntVector2 screenPosition;
6677 bool scrollBarsAutoVisible;
6678 float scrollDeceleration;
6679 /* readonly */
6680 BorderImage scrollPanel;
6681 float scrollSnapEpsilon;
6682 float scrollStep;
6683 bool selectOnClickEnd;
6684 bool selected;
6685 /* readonly */
6686 UIElement selectedItem;
6687 /* readonly */
6688 Array<UIElement> selectedItems;
6689 uint selection;
6690 /* readonly */
6691 Array<uint> selections;
6692 IntVector2 size;
6693 bool sortChildren;
6694 String style;
6695 /* readonly */
6696 Array<String> tags;
6697 bool temporary;
6698 TraversalMode traversalMode;
6699 /* readonly */
6700 StringHash type;
6701 /* readonly */
6702 String typeName;
6703 bool useDerivedOpacity;
6704 /* readonly */
6705 VariantMap vars;
6706 VerticalAlignment verticalAlignment;
6707 /* readonly */
6708 ScrollBar verticalScrollBar;
6709 IntVector2 viewPosition;
6710 bool visible;
6711 /* readonly */
6712 bool visibleEffective;
6713 /* readonly */
6714 int weakRefs;
6715 int width;
6716 };
6717 
6718 class Localization
6719 {
6720 public:
6721 // Methods:
6722 String Get(const String&);
6723 String GetLanguage(int);
6724 int GetLanguageIndex(const String&);
6725 bool HasSubscribedToEvent(Object, const String&);
6726 bool HasSubscribedToEvent(const String&);
6727 void LoadJSON(const JSONValue&);
6728 void LoadJSONFile(const String&);
6729 void Reset();
6730 void SendEvent(const String&, VariantMap& = VariantMap ( ));
6731 void SetLanguage(const String&);
6732 void SetLanguage(int);
6733 
6734 // Properties:
6735 /* readonly */
6736 String category;
6737 /* readonly */
6738 String language;
6739 /* readonly */
6740 int languageIndex;
6741 /* readonly */
6742 int numLanguages;
6743 /* readonly */
6744 int refs;
6745 /* readonly */
6746 StringHash type;
6747 /* readonly */
6748 String typeName;
6749 /* readonly */
6750 int weakRefs;
6751 };
6752 
6753 class Log
6754 {
6755 public:
6756 // Methods:
6757 void Close();
6758 void Debug(const String&);
6759 void Error(const String&);
6760 bool HasSubscribedToEvent(Object, const String&);
6761 bool HasSubscribedToEvent(const String&);
6762 void Info(const String&);
6763 void Open(const String&);
6764 void SendEvent(const String&, VariantMap& = VariantMap ( ));
6765 void Warning(const String&);
6766 void Write(const String&, bool = false);
6767 
6768 // Properties:
6769 /* readonly */
6770 String category;
6771 /* readonly */
6772 String lastMessage;
6773 int level;
6774 bool quiet;
6775 /* readonly */
6776 int refs;
6777 bool timeStamp;
6778 /* readonly */
6779 StringHash type;
6780 /* readonly */
6781 String typeName;
6782 /* readonly */
6783 int weakRefs;
6784 };
6785 
6786 class Material
6787 {
6788 public:
6789 Material();
6790 Material(const String&in);
6791 // Methods:
6792 Material Clone(const String& = String ( )) const;
6793 Pass GetPass(uint, const String&);
6794 ValueAnimation GetShaderParameterAnimation(const String&) const;
6795 float GetShaderParameterAnimationSpeed(const String&) const;
6796 WrapMode GetShaderParameterAnimationWrapMode(const String&) const;
6797 bool HasSubscribedToEvent(Object, const String&);
6798 bool HasSubscribedToEvent(const String&);
6799 bool Load(File);
6800 bool Load(VectorBuffer&);
6801 bool Load(const JSONValue&);
6802 bool Load(const String&);
6803 bool Load(const XMLElement&);
6804 void RemoveShaderParameter(const String&);
6805 bool Save(File) const;
6806 bool Save(JSONValue&) const;
6807 bool Save(VectorBuffer&) const;
6808 bool Save(XMLElement&) const;
6809 bool Save(const String&) const;
6810 void SendEvent(const String&, VariantMap& = VariantMap ( ));
6811 void SetShaderParameterAnimation(const String&, ValueAnimation, WrapMode = WM_LOOP, float = 1.0f);
6812 void SetShaderParameterAnimationSpeed(const String&, float);
6813 void SetShaderParameterAnimationWrapMode(const String&, WrapMode);
6814 void SetTechnique(uint, Technique, uint = 0, float = 0.0);
6815 void SetUVTransform(const Vector2&, float, const Vector2&);
6816 void SetUVTransform(const Vector2&, float, float);
6817 void SortTechniques();
6818 
6819 // Properties:
6820 bool alphaToCoverage;
6821 /* readonly */
6822 String category;
6823 CullMode cullMode;
6824 BiasParameters depthBias;
6825 FillMode fillMode;
6826 bool lineAntiAlias;
6827 /* readonly */
6828 uint memoryUse;
6829 String name;
6830 uint numTechniques;
6831 bool occlusion;
6832 String pixelShaderDefines;
6833 /* readonly */
6834 int refs;
6835 uint8 renderOrder;
6836 Scene scene;
6837 /* readonly */
6838 Array<String> shaderParameterNames;
6839 Array<Variant> shaderParameters;
6840 CullMode shadowCullMode;
6841 /* readonly */
6842 Array<TechniqueEntry> techniqueEntries;
6843 /* readonly */
6844 Array<Technique> techniques;
6845 Array<Texture> textures;
6846 /* readonly */
6847 StringHash type;
6848 /* readonly */
6849 String typeName;
6850 /* readonly */
6851 uint useTimer;
6852 String vertexShaderDefines;
6853 /* readonly */
6854 int weakRefs;
6855 };
6856 
6857 class Matrix2
6858 {
6859 public:
6860 Matrix2();
6861 Matrix2(const Matrix2&in);
6862 Matrix2(float, float, float, float);
6863 // Methods:
6864 bool Equals(const Matrix2&) const;
6865 Matrix2 Inverse() const;
6866 Vector2 Scale() const;
6867 Matrix2 Scaled(const Vector2&) const;
6868 void SetScale(const Vector2&);
6869 void SetScale(float);
6870 String ToString() const;
6871 Matrix2 Transpose() const;
6872 
6873 // Properties:
6874 float m00;
6875 float m01;
6876 float m10;
6877 float m11;
6878 };
6879 
6880 class Matrix3
6881 {
6882 public:
6883 Matrix3();
6884 Matrix3(const Matrix3&in);
6885 Matrix3(float, float, float, float, float, float, float, float, float);
6886 // Methods:
6887 bool Equals(const Matrix3&) const;
6888 Matrix3 Inverse() const;
6889 Vector3 Scale() const;
6890 Matrix3 Scaled(const Vector3&) const;
6891 void SetScale(const Vector3&);
6892 void SetScale(float);
6893 String ToString() const;
6894 Matrix3 Transpose() const;
6895 
6896 // Properties:
6897 float m00;
6898 float m01;
6899 float m02;
6900 float m10;
6901 float m11;
6902 float m12;
6903 float m20;
6904 float m21;
6905 float m22;
6906 };
6907 
6908 class Matrix3x4
6909 {
6910 public:
6911 Matrix3x4();
6912 Matrix3x4(const Matrix3x4&in);
6913 Matrix3x4(const Matrix3&in);
6914 Matrix3x4(const Matrix4&in);
6915 Matrix3x4(float, float, float, float, float, float, float, float, float, float, float, float);
6916 Matrix3x4(const Vector3&in, const Quaternion&in, const Vector3&in);
6917 Matrix3x4(const Vector3&in, const Quaternion&in, float);
6918 // Methods:
6919 void Decompose(Vector3&, Quaternion&, Vector3&) const;
6920 bool Equals(const Matrix3x4&) const;
6921 Matrix3x4 Inverse() const;
6922 Quaternion Rotation() const;
6923 Matrix3 RotationMatrix() const;
6924 Vector3 Scale() const;
6925 void SetRotation(const Matrix3&);
6926 void SetScale(const Vector3&);
6927 void SetScale(float);
6928 void SetTranslation(const Vector3&);
6929 Matrix3 ToMatrix3() const;
6930 Matrix4 ToMatrix4() const;
6931 String ToString() const;
6932 Vector3 Translation() const;
6933 
6934 // Properties:
6935 float m00;
6936 float m01;
6937 float m02;
6938 float m03;
6939 float m10;
6940 float m11;
6941 float m12;
6942 float m13;
6943 float m20;
6944 float m21;
6945 float m22;
6946 float m23;
6947 };
6948 
6949 class Matrix4
6950 {
6951 public:
6952 Matrix4();
6953 Matrix4(const Matrix4&in);
6954 Matrix4(const Matrix3&in);
6955 Matrix4(float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float);
6956 // Methods:
6957 void Decompose(Vector3&, Quaternion&, Vector3&) const;
6958 bool Equals(const Matrix4&) const;
6959 Matrix4 Inverse() const;
6960 Quaternion Rotation() const;
6961 Matrix3 RotationMatrix() const;
6962 Vector3 Scale() const;
6963 void SetRotation(const Matrix3&);
6964 void SetScale(const Vector3&);
6965 void SetScale(float);
6966 void SetTranslation(const Vector3&);
6967 Matrix3 ToMatrix3() const;
6968 String ToString() const;
6969 Vector3 Translation() const;
6970 Matrix4 Transpose() const;
6971 
6972 // Properties:
6973 float m00;
6974 float m01;
6975 float m02;
6976 float m03;
6977 float m10;
6978 float m11;
6979 float m12;
6980 float m13;
6981 float m20;
6982 float m21;
6983 float m22;
6984 float m23;
6985 float m30;
6986 float m31;
6987 float m32;
6988 float m33;
6989 };
6990 
6991 class Menu
6992 {
6993 public:
6994 Menu();
6995 Menu(const String&in);
6996 // Methods:
6997 void AddChild(UIElement);
6998 void AddTag(const String&);
6999 void AddTags(const String&, int8 = ';');
7000 void ApplyAttributes();
7001 void BringToFront();
7002 UIElement CreateChild(const String&, const String& = String ( ), uint = M_MAX_UNSIGNED);
7003 void DisableLayoutUpdate();
7004 IntVector2 ElementToScreen(const IntVector2&);
7005 void EnableLayoutUpdate();
7006 uint FindChild(UIElement) const;
7007 Variant GetAttribute(const String&) const;
7008 ValueAnimation GetAttributeAnimation(const String&) const;
7009 float GetAttributeAnimationSpeed(const String&) const;
7010 float GetAttributeAnimationTime(const String&) const;
7011 WrapMode GetAttributeAnimationWrapMode(const String&) const;
7012 Variant GetAttributeDefault(const String&) const;
7013 UIElement GetChild(const String&, bool = false) const;
7014 UIElement GetChild(const StringHash&, const Variant& = Variant ( ), bool = false) const;
7015 Array<UIElement> GetChildren(bool = false) const;
7016 Array<UIElement> GetChildrenWithTag(const String&, bool = false) const;
7017 UIElement GetElementEventSender() const;
7018 bool GetInterceptNetworkUpdate(const String&) const;
7019 uint GetNumChildren(bool) const;
7020 bool HasSubscribedToEvent(Object, const String&);
7021 bool HasSubscribedToEvent(const String&);
7022 bool HasTag(const String&) const;
7023 void InsertChild(uint, UIElement);
7024 bool IsInside(IntVector2, bool);
7025 bool IsInsideCombined(IntVector2, bool);
7026 bool Load(File, bool = false);
7027 bool Load(VectorBuffer&, bool = false);
7028 UIElement LoadChildXML(XMLFile, XMLFile = null);
7029 UIElement LoadChildXML(const XMLElement&, XMLFile = null, bool = false);
7030 bool LoadJSON(const JSONValue&, bool = false);
7031 bool LoadXML(File);
7032 bool LoadXML(VectorBuffer&);
7033 bool LoadXML(XMLFile, XMLFile);
7034 bool LoadXML(const XMLElement&, XMLFile, bool = false);
7035 bool LoadXML(const XMLElement&, bool = false);
7036 void MarkNetworkUpdate() const;
7037 void Remove();
7038 void RemoveAllChildren();
7039 void RemoveAllTags();
7040 void RemoveAttributeAnimation(const String&);
7041 void RemoveChild(UIElement, uint = 0);
7042 void RemoveChild(uint);
7043 void RemoveInstanceDefault();
7044 void RemoveObjectAnimation();
7045 bool RemoveTag(const String&);
7046 void ResetDeepEnabled();
7047 void ResetToDefault();
7048 bool Save(File) const;
7049 bool Save(VectorBuffer&) const;
7050 bool SaveJSON(JSONValue&) const;
7051 bool SaveXML(File, const String& = "\t");
7052 bool SaveXML(VectorBuffer&, const String& = "\t");
7053 bool SaveXML(XMLElement&) const;
7054 IntVector2 ScreenToElement(const IntVector2&);
7055 void SendEvent(const String&, VariantMap& = VariantMap ( ));
7056 void SetAccelerator(int, int);
7057 void SetAlignment(HorizontalAlignment, VerticalAlignment);
7058 void SetAnimationTime(float);
7059 bool SetAttribute(const String&, const Variant&);
7060 void SetAttributeAnimation(const String&, ValueAnimation, WrapMode = WM_LOOP, float = 1.0f);
7061 void SetAttributeAnimationSpeed(const String&, float);
7062 void SetAttributeAnimationTime(const String&, float);
7063 void SetAttributeAnimationWrapMode(const String&, WrapMode);
7064 void SetDeepEnabled(bool);
7065 void SetEnabledRecursive(bool);
7066 void SetFixedHeight(int);
7067 void SetFixedSize(int, int);
7068 void SetFixedWidth(int);
7069 void SetFullImageRect();
7070 void SetHoverOffset(int, int);
7071 void SetInterceptNetworkUpdate(const String&, bool);
7072 void SetLayout(LayoutMode, int = 0, const IntRect& = IntRect ( 0 , 0 , 0 , 0 ));
7073 void SetMaxAnchor(float, float);
7074 void SetMaxSize(int, int);
7075 void SetMinAnchor(float, float);
7076 void SetMinSize(int, int);
7077 void SetParent(UIElement, uint = M_MAX_UNSIGNED);
7078 void SetPivot(float, float);
7079 void SetPopupOffset(int, int);
7080 void SetPosition(int, int);
7081 void SetPressedChildOffset(int, int);
7082 void SetPressedOffset(int, int);
7083 void SetRepeat(float, float);
7084 void SetSize(int, int);
7085 bool SetStyle(const String&, XMLFile = null);
7086 bool SetStyle(const XMLElement&);
7087 bool SetStyleAuto(XMLFile = null);
7088 void UpdateLayout();
7089 const Variant& GetVar(const StringHash&);
7090 
7091 // Properties:
7092 /* readonly */
7093 int acceleratorKey;
7094 /* readonly */
7095 int acceleratorQualifiers;
7096 bool animationEnabled;
7097 /* readonly */
7098 Array<Variant> attributeDefaults;
7099 /* readonly */
7100 Array<AttributeInfo> attributeInfos;
7101 Array<Variant> attributes;
7102 BlendMode blendMode;
7103 IntRect border;
7104 bool bringToBack;
7105 bool bringToFront;
7106 /* readonly */
7107 String category;
7108 /* readonly */
7109 IntVector2 childOffset;
7110 /* readonly */
7111 Array<UIElement> children;
7112 IntRect clipBorder;
7113 bool clipChildren;
7114 /* writeonly */
7115 Color color;
7116 /* readonly */
7117 bool colorGradient;
7118 Array<Color> colors;
7119 /* readonly */
7120 IntRect combinedScreenRect;
7121 XMLFile defaultStyle;
7122 /* readonly */
7123 float derivedOpacity;
7124 /* readonly */
7125 uint dragButtonCombo;
7126 /* readonly */
7127 int dragButtonCount;
7128 uint dragDropMode;
7129 bool editable;
7130 bool elementEventSender;
7131 bool enableAnchor;
7132 bool enabled;
7133 /* readonly */
7134 bool enabledSelf;
7135 /* readonly */
7136 bool fixedHeight;
7137 /* readonly */
7138 bool fixedSize;
7139 /* readonly */
7140 bool fixedWidth;
7141 bool focus;
7142 FocusMode focusMode;
7143 int height;
7144 HorizontalAlignment horizontalAlignment;
7145 IntVector2 hoverOffset;
7146 /* readonly */
7147 bool hovering;
7148 IntRect imageBorder;
7149 IntRect imageRect;
7150 int indent;
7151 int indentSpacing;
7152 /* readonly */
7153 int indentWidth;
7154 bool internal;
7155 IntRect layoutBorder;
7156 Vector2 layoutFlexScale;
7157 LayoutMode layoutMode;
7158 int layoutSpacing;
7159 Vector2 maxAnchor;
7160 int maxHeight;
7161 IntVector2 maxOffset;
7162 IntVector2 maxSize;
7163 int maxWidth;
7164 Vector2 minAnchor;
7165 int minHeight;
7166 IntVector2 minOffset;
7167 IntVector2 minSize;
7168 int minWidth;
7169 String name;
7170 /* readonly */
7171 uint numAllChildren;
7172 /* readonly */
7173 uint numAttributes;
7174 /* readonly */
7175 uint numChildren;
7176 ObjectAnimation objectAnimation;
7177 float opacity;
7178 UIElement parent;
7179 Vector2 pivot;
7180 UIElement popup;
7181 IntVector2 popupOffset;
7182 IntVector2 position;
7183 /* readonly */
7184 bool pressed;
7185 IntVector2 pressedChildOffset;
7186 IntVector2 pressedOffset;
7187 int priority;
7188 /* readonly */
7189 int refs;
7190 float repeatDelay;
7191 float repeatRate;
7192 /* readonly */
7193 UIElement root;
7194 /* readonly */
7195 IntVector2 screenPosition;
7196 bool selected;
7197 bool showPopup;
7198 IntVector2 size;
7199 bool sortChildren;
7200 String style;
7201 /* readonly */
7202 Array<String> tags;
7203 bool temporary;
7204 Texture texture;
7205 bool tiled;
7206 TraversalMode traversalMode;
7207 /* readonly */
7208 StringHash type;
7209 /* readonly */
7210 String typeName;
7211 bool useDerivedOpacity;
7212 /* readonly */
7213 VariantMap vars;
7214 VerticalAlignment verticalAlignment;
7215 bool visible;
7216 /* readonly */
7217 bool visibleEffective;
7218 /* readonly */
7219 int weakRefs;
7220 int width;
7221 };
7222 
7223 class MessageBox
7224 {
7225 public:
7226 MessageBox(const String&in messageString = String ( ), const String&in titleString = String ( ), XMLFile& layoutFile = null, XMLFile& styleFile = null);
7227 // Methods:
7228 bool HasSubscribedToEvent(Object, const String&);
7229 bool HasSubscribedToEvent(const String&);
7230 void SendEvent(const String&, VariantMap& = VariantMap ( ));
7231 
7232 // Properties:
7233 /* readonly */
7234 String category;
7235 String message;
7236 /* readonly */
7237 int refs;
7238 String title;
7239 /* readonly */
7240 StringHash type;
7241 /* readonly */
7242 String typeName;
7243 /* readonly */
7244 int weakRefs;
7245 /* readonly */
7246 UIElement window;
7247 };
7248 
7249 class Model
7250 {
7251 public:
7252 Model();
7253 Model(const String&in);
7254 // Methods:
7255 void AddMetadata(const String&, const Variant&);
7256 Model Clone(const String& = String ( )) const;
7257 Geometry GetGeometry(uint, uint) const;
7258 bool HasSubscribedToEvent(Object, const String&);
7259 bool HasSubscribedToEvent(const String&);
7260 bool Load(File);
7261 bool Load(VectorBuffer&);
7262 bool Load(const String&);
7263 void RemoveAllMetadata();
7264 void RemoveMetadata(const String&);
7265 bool Save(File) const;
7266 bool Save(VectorBuffer&) const;
7267 bool Save(const String&) const;
7268 void SendEvent(const String&, VariantMap& = VariantMap ( ));
7269 bool SetGeometry(uint, uint, Geometry);
7270 bool SetIndexBuffers(Array<IndexBuffer>);
7271 bool SetVertexBuffers(Array<Array<Array<VertexBuffer>, uint>, uint>);
7272 
7273 // Properties:
7274 BoundingBox boundingBox;
7275 /* readonly */
7276 String category;
7277 Array<Vector3> geometryCenters;
7278 /* readonly */
7279 bool hasMetadata;
7280 /* readonly */
7281 uint memoryUse;
7282 Array<Variant> metadata;
7283 String name;
7284 uint numGeometries;
7285 Array<uint> numGeometryLodLevels;
7286 /* readonly */
7287 uint numMorphs;
7288 /* readonly */
7289 int refs;
7290 /* readonly */
7291 Skeleton skeleton;
7292 /* readonly */
7293 StringHash type;
7294 /* readonly */
7295 String typeName;
7296 /* readonly */
7297 uint useTimer;
7298 /* readonly */
7299 int weakRefs;
7300 };
7301 
7302 class NamedPipe
7303 {
7304 public:
7305 NamedPipe();
7306 NamedPipe(const String&in, bool);
7307 // Methods:
7308 void Close();
7309 bool HasSubscribedToEvent(Object, const String&);
7310 bool HasSubscribedToEvent(const String&);
7311 bool Open(const String&, bool);
7312 Array<uint8> Read(uint);
7313 bool ReadBool();
7314 BoundingBox ReadBoundingBox();
7315 int8 ReadByte();
7316 Color ReadColor();
7317 double ReadDouble();
7318 String ReadFileID();
7319 float ReadFloat();
7320 int ReadInt();
7321 int64 ReadInt64();
7322 IntRect ReadIntRect();
7323 IntVector2 ReadIntVector2();
7324 String ReadLine();
7325 Matrix3 ReadMatrix3();
7326 Matrix3x4 ReadMatrix3x4();
7327 Matrix4 ReadMatrix4();
7328 uint ReadNetID();
7329 Quaternion ReadPackedQuaternion();
7330 Vector3 ReadPackedVector3(float);
7331 Quaternion ReadQuaternion();
7332 int16 ReadShort();
7333 String ReadString();
7334 StringHash ReadStringHash();
7335 uint8 ReadUByte();
7336 uint ReadUInt();
7337 uint64 ReadUInt64();
7338 uint16 ReadUShort();
7339 uint ReadVLE();
7340 Variant ReadVariant();
7341 VariantMap ReadVariantMap();
7342 Vector2 ReadVector2();
7343 Vector3 ReadVector3();
7344 Vector4 ReadVector4();
7345 VectorBuffer ReadVectorBuffer(uint);
7346 uint Seek(uint);
7347 uint SeekRelative(int);
7348 void SendEvent(const String&, VariantMap& = VariantMap ( ));
7349 uint Tell() const;
7350 uint Write(Array<uint8>);
7351 bool WriteBool(bool);
7352 bool WriteBoundingBox(const BoundingBox&);
7353 bool WriteByte(int8);
7354 bool WriteColor(const Color&);
7355 bool WriteDouble(double);
7356 bool WriteFileID(const String&);
7357 bool WriteFloat(float);
7358 bool WriteInt(int);
7359 bool WriteInt64(int64);
7360 bool WriteIntRect(const IntRect&);
7361 bool WriteIntVector2(const IntVector2&);
7362 bool WriteLine(const String&);
7363 bool WriteMatrix3(const Matrix3&);
7364 bool WriteMatrix3x4(const Matrix3x4&);
7365 bool WriteMatrix4(const Matrix4&);
7366 bool WriteNetID(uint);
7367 bool WritePackedQuaternion(const Quaternion&);
7368 bool WritePackedVector3(const Vector3&, float);
7369 bool WriteQuaternion(const Quaternion&);
7370 bool WriteShort(int16);
7371 bool WriteString(const String&);
7372 bool WriteStringHash(const StringHash&);
7373 bool WriteUByte(uint8);
7374 bool WriteUInt(uint);
7375 bool WriteUInt64(uint64);
7376 bool WriteUShort(uint16);
7377 bool WriteVLE(uint);
7378 bool WriteVariant(const Variant&);
7379 bool WriteVariantMap(const VariantMap&);
7380 bool WriteVector2(const Vector2&);
7381 bool WriteVector3(const Vector3&);
7382 bool WriteVector4(const Vector4&);
7383 bool WriteVectorBuffer(const VectorBuffer&);
7384 
7385 // Properties:
7386 /* readonly */
7387 String category;
7388 /* readonly */
7389 uint checksum;
7390 /* readonly */
7391 bool eof;
7392 /* readonly */
7393 String name;
7394 /* readonly */
7395 bool open;
7396 /* readonly */
7397 uint position;
7398 /* readonly */
7399 int refs;
7400 /* readonly */
7401 bool server;
7402 /* readonly */
7403 uint size;
7404 /* readonly */
7405 StringHash type;
7406 /* readonly */
7407 String typeName;
7408 /* readonly */
7409 int weakRefs;
7410 };
7411 
7412 class NavArea
7413 {
7414 public:
7415 // Methods:
7416 void ApplyAttributes();
7417 void DrawDebugGeometry(DebugRenderer, bool);
7418 Variant GetAttribute(const String&) const;
7419 ValueAnimation GetAttributeAnimation(const String&) const;
7420 float GetAttributeAnimationSpeed(const String&) const;
7421 float GetAttributeAnimationTime(const String&) const;
7422 WrapMode GetAttributeAnimationWrapMode(const String&) const;
7423 Variant GetAttributeDefault(const String&) const;
7424 bool GetInterceptNetworkUpdate(const String&) const;
7425 bool HasSubscribedToEvent(Object, const String&);
7426 bool HasSubscribedToEvent(const String&);
7427 bool Load(File, bool = false);
7428 bool Load(VectorBuffer&, bool = false);
7429 bool LoadJSON(const JSONValue&, bool = false);
7430 bool LoadXML(const XMLElement&, bool = false);
7431 void MarkNetworkUpdate() const;
7432 void Remove();
7433 void RemoveAttributeAnimation(const String&);
7434 void RemoveInstanceDefault();
7435 void RemoveObjectAnimation();
7436 void ResetToDefault();
7437 bool Save(File) const;
7438 bool Save(VectorBuffer&) const;
7439 bool SaveJSON(JSONValue&) const;
7440 bool SaveXML(XMLElement&) const;
7441 void SendEvent(const String&, VariantMap& = VariantMap ( ));
7442 void SetAnimationTime(float);
7443 bool SetAttribute(const String&, const Variant&);
7444 void SetAttributeAnimation(const String&, ValueAnimation, WrapMode = WM_LOOP, float = 1.0f);
7445 void SetAttributeAnimationSpeed(const String&, float);
7446 void SetAttributeAnimationTime(const String&, float);
7447 void SetAttributeAnimationWrapMode(const String&, WrapMode);
7448 void SetInterceptNetworkUpdate(const String&, bool);
7449 
7450 // Properties:
7451 bool animationEnabled;
7452 uint areaID;
7453 /* readonly */
7454 Array<Variant> attributeDefaults;
7455 /* readonly */
7456 Array<AttributeInfo> attributeInfos;
7457 Array<Variant> attributes;
7458 BoundingBox boundingBox;
7459 /* readonly */
7460 String category;
7461 bool enabled;
7462 /* readonly */
7463 bool enabledEffective;
7464 /* readonly */
7465 uint id;
7466 /* readonly */
7467 Node node;
7468 /* readonly */
7469 uint numAttributes;
7470 ObjectAnimation objectAnimation;
7471 /* readonly */
7472 int refs;
7473 bool temporary;
7474 /* readonly */
7475 StringHash type;
7476 /* readonly */
7477 String typeName;
7478 /* readonly */
7479 int weakRefs;
7480 /* readonly */
7481 BoundingBox worldBoundingBox;
7482 };
7483 
7484 class Navigable
7485 {
7486 public:
7487 // Methods:
7488 void ApplyAttributes();
7489 void DrawDebugGeometry(DebugRenderer, bool);
7490 Variant GetAttribute(const String&) const;
7491 ValueAnimation GetAttributeAnimation(const String&) const;
7492 float GetAttributeAnimationSpeed(const String&) const;
7493 float GetAttributeAnimationTime(const String&) const;
7494 WrapMode GetAttributeAnimationWrapMode(const String&) const;
7495 Variant GetAttributeDefault(const String&) const;
7496 bool GetInterceptNetworkUpdate(const String&) const;
7497 bool HasSubscribedToEvent(Object, const String&);
7498 bool HasSubscribedToEvent(const String&);
7499 bool Load(File, bool = false);
7500 bool Load(VectorBuffer&, bool = false);
7501 bool LoadJSON(const JSONValue&, bool = false);
7502 bool LoadXML(const XMLElement&, bool = false);
7503 void MarkNetworkUpdate() const;
7504 void Remove();
7505 void RemoveAttributeAnimation(const String&);
7506 void RemoveInstanceDefault();
7507 void RemoveObjectAnimation();
7508 void ResetToDefault();
7509 bool Save(File) const;
7510 bool Save(VectorBuffer&) const;
7511 bool SaveJSON(JSONValue&) const;
7512 bool SaveXML(XMLElement&) const;
7513 void SendEvent(const String&, VariantMap& = VariantMap ( ));
7514 void SetAnimationTime(float);
7515 bool SetAttribute(const String&, const Variant&);
7516 void SetAttributeAnimation(const String&, ValueAnimation, WrapMode = WM_LOOP, float = 1.0f);
7517 void SetAttributeAnimationSpeed(const String&, float);
7518 void SetAttributeAnimationTime(const String&, float);
7519 void SetAttributeAnimationWrapMode(const String&, WrapMode);
7520 void SetInterceptNetworkUpdate(const String&, bool);
7521 
7522 // Properties:
7523 bool animationEnabled;
7524 /* readonly */
7525 Array<Variant> attributeDefaults;
7526 /* readonly */
7527 Array<AttributeInfo> attributeInfos;
7528 Array<Variant> attributes;
7529 /* readonly */
7530 String category;
7531 bool enabled;
7532 /* readonly */
7533 bool enabledEffective;
7534 /* readonly */
7535 uint id;
7536 /* readonly */
7537 Node node;
7538 /* readonly */
7539 uint numAttributes;
7540 ObjectAnimation objectAnimation;
7541 bool recursive;
7542 /* readonly */
7543 int refs;
7544 bool temporary;
7545 /* readonly */
7546 StringHash type;
7547 /* readonly */
7548 String typeName;
7549 /* readonly */
7550 int weakRefs;
7551 };
7552 
7553 class NavigationMesh
7554 {
7555 public:
7556 // Methods:
7557 bool AddTile(const VectorBuffer&) const;
7558 bool Allocate(const BoundingBox&, uint);
7559 void ApplyAttributes();
7560 bool Build();
7561 bool Build(const BoundingBox&);
7562 bool Build(const IntVector2&, const IntVector2&);
7563 void DrawDebugGeometry(DebugRenderer, bool);
7564 void DrawDebugGeometry(bool);
7565 Vector3 FindNearestPoint(const Vector3&, const Vector3& = Vector3 ( 1.0 , 1.0 , 1.0 ));
7566 Array<Vector3> FindPath(const Vector3&, const Vector3&, const Vector3& = Vector3 ( 1.0 , 1.0 , 1.0 ));
7567 float GetAreaCost(uint) const;
7568 Variant GetAttribute(const String&) const;
7569 ValueAnimation GetAttributeAnimation(const String&) const;
7570 float GetAttributeAnimationSpeed(const String&) const;
7571 float GetAttributeAnimationTime(const String&) const;
7572 WrapMode GetAttributeAnimationWrapMode(const String&) const;
7573 Variant GetAttributeDefault(const String&) const;
7574 float GetDistanceToWall(const Vector3&, float, const Vector3& = Vector3 ( 1.0 , 1.0 , 1.0 ));
7575 bool GetInterceptNetworkUpdate(const String&) const;
7576 Vector3 GetRandomPoint();
7577 Vector3 GetRandomPointInCircle(const Vector3&, float, const Vector3& = Vector3 ( 1.0 , 1.0 , 1.0 ));
7578 BoundingBox GetTileBoudningBox(const IntVector2&) const;
7579 VectorBuffer GetTileData(const IntVector2&) const;
7580 IntVector2 GetTileIndex(const Vector3&) const;
7581 bool HasSubscribedToEvent(Object, const String&);
7582 bool HasSubscribedToEvent(const String&);
7583 bool HasTile(const IntVector2&) const;
7584 bool Load(File, bool = false);
7585 bool Load(VectorBuffer&, bool = false);
7586 bool LoadJSON(const JSONValue&, bool = false);
7587 bool LoadXML(const XMLElement&, bool = false);
7588 void MarkNetworkUpdate() const;
7589 Vector3 MoveAlongSurface(const Vector3&, const Vector3&, const Vector3& = Vector3 ( 1.0 , 1.0 , 1.0 ), int = 3);
7590 Vector3 Raycast(const Vector3&, const Vector3&, const Vector3& = Vector3 ( 1.0 , 1.0 , 1.0 ));
7591 void Remove();
7592 void RemoveAllTiles();
7593 void RemoveAttributeAnimation(const String&);
7594 void RemoveInstanceDefault();
7595 void RemoveObjectAnimation();
7596 void RemoveTile(const IntVector2&);
7597 void ResetToDefault();
7598 bool Save(File) const;
7599 bool Save(VectorBuffer&) const;
7600 bool SaveJSON(JSONValue&) const;
7601 bool SaveXML(XMLElement&) const;
7602 void SendEvent(const String&, VariantMap& = VariantMap ( ));
7603 void SetAnimationTime(float);
7604 void SetAreaCost(uint, float);
7605 bool SetAttribute(const String&, const Variant&);
7606 void SetAttributeAnimation(const String&, ValueAnimation, WrapMode = WM_LOOP, float = 1.0f);
7607 void SetAttributeAnimationSpeed(const String&, float);
7608 void SetAttributeAnimationTime(const String&, float);
7609 void SetAttributeAnimationWrapMode(const String&, WrapMode);
7610 void SetInterceptNetworkUpdate(const String&, bool);
7611 
7612 // Properties:
7613 float agentHeight;
7614 float agentMaxClimb;
7615 float agentMaxSlope;
7616 float agentRadius;
7617 bool animationEnabled;
7618 /* readonly */
7619 Array<Variant> attributeDefaults;
7620 /* readonly */
7621 Array<AttributeInfo> attributeInfos;
7622 Array<Variant> attributes;
7623 /* readonly */
7624 BoundingBox boundingBox;
7625 /* readonly */
7626 String category;
7627 float cellHeight;
7628 float cellSize;
7629 float detailSampleDistance;
7630 float detailSampleMaxError;
7631 bool drawNavAreas;
7632 bool drawOffMeshConnections;
7633 float edgeMaxError;
7634 float edgeMaxLength;
7635 bool enabled;
7636 /* readonly */
7637 bool enabledEffective;
7638 /* readonly */
7639 uint id;
7640 /* readonly */
7641 bool initialized;
7642 /* readonly */
7643 Node node;
7644 /* readonly */
7645 uint numAttributes;
7646 /* readonly */
7647 IntVector2 numTiles;
7648 ObjectAnimation objectAnimation;
7649 Vector3 padding;
7650 NavmeshPartitionType partitionType;
7651 /* readonly */
7652 int refs;
7653 float regionMergeSize;
7654 float regionMinSize;
7655 bool temporary;
7656 int tileSize;
7657 /* readonly */
7658 StringHash type;
7659 /* readonly */
7660 String typeName;
7661 /* readonly */
7662 int weakRefs;
7663 /* readonly */
7664 BoundingBox worldBoundingBox;
7665 };
7666 
7667 class Network
7668 {
7669 public:
7670 // Methods:
7671 void BroadcastMessage(int, bool, bool, const VectorBuffer&, uint = 0);
7672 void BroadcastRemoteEvent(Node, const String&, bool, const VariantMap& = VariantMap ( ));
7673 void BroadcastRemoteEvent(Scene, const String&, bool, const VariantMap& = VariantMap ( ));
7674 void BroadcastRemoteEvent(const String&, bool, const VariantMap& = VariantMap ( ));
7675 bool CheckRemoteEvent(const String&) const;
7676 bool Connect(const String&, uint16, Scene, const VariantMap& = VariantMap ( ));
7677 void Disconnect(int = 0);
7678 bool HasSubscribedToEvent(Object, const String&);
7679 bool HasSubscribedToEvent(const String&);
7680 HttpRequest MakeHttpRequest(const String&, const String& = String ( ), Array<String> = null, const String& = String ( ));
7681 void RegisterRemoteEvent(const String&) const;
7682 void SendEvent(const String&, VariantMap& = VariantMap ( ));
7683 void SendPackageToClients(Scene, PackageFile);
7684 bool StartServer(uint16);
7685 void StopServer();
7686 void UnregisterAllRemoteEvents();
7687 void UnregisterRemoteEvent(const String&) const;
7688 
7689 // Properties:
7690 /* readonly */
7691 String category;
7692 /* readonly */
7693 Array<Connection> clientConnections;
7694 String packageCacheDir;
7695 /* readonly */
7696 int refs;
7697 /* readonly */
7698 Connection serverConnection;
7699 /* readonly */
7700 bool serverRunning;
7701 int simulatedLatency;
7702 float simulatedPacketLoss;
7703 /* readonly */
7704 StringHash type;
7705 /* readonly */
7706 String typeName;
7707 int updateFps;
7708 /* readonly */
7709 int weakRefs;
7710 };
7711 
7712 class NetworkPriority
7713 {
7714 public:
7715 // Methods:
7716 void ApplyAttributes();
7717 void DrawDebugGeometry(DebugRenderer, bool);
7718 Variant GetAttribute(const String&) const;
7719 ValueAnimation GetAttributeAnimation(const String&) const;
7720 float GetAttributeAnimationSpeed(const String&) const;
7721 float GetAttributeAnimationTime(const String&) const;
7722 WrapMode GetAttributeAnimationWrapMode(const String&) const;
7723 Variant GetAttributeDefault(const String&) const;
7724 bool GetInterceptNetworkUpdate(const String&) const;
7725 bool HasSubscribedToEvent(Object, const String&);
7726 bool HasSubscribedToEvent(const String&);
7727 bool Load(File, bool = false);
7728 bool Load(VectorBuffer&, bool = false);
7729 bool LoadJSON(const JSONValue&, bool = false);
7730 bool LoadXML(const XMLElement&, bool = false);
7731 void MarkNetworkUpdate() const;
7732 void Remove();
7733 void RemoveAttributeAnimation(const String&);
7734 void RemoveInstanceDefault();
7735 void RemoveObjectAnimation();
7736 void ResetToDefault();
7737 bool Save(File) const;
7738 bool Save(VectorBuffer&) const;
7739 bool SaveJSON(JSONValue&) const;
7740 bool SaveXML(XMLElement&) const;
7741 void SendEvent(const String&, VariantMap& = VariantMap ( ));
7742 void SetAnimationTime(float);
7743 bool SetAttribute(const String&, const Variant&);
7744 void SetAttributeAnimation(const String&, ValueAnimation, WrapMode = WM_LOOP, float = 1.0f);
7745 void SetAttributeAnimationSpeed(const String&, float);
7746 void SetAttributeAnimationTime(const String&, float);
7747 void SetAttributeAnimationWrapMode(const String&, WrapMode);
7748 void SetInterceptNetworkUpdate(const String&, bool);
7749 
7750 // Properties:
7751 bool alwaysUpdateOwner;
7752 bool animationEnabled;
7753 /* readonly */
7754 Array<Variant> attributeDefaults;
7755 /* readonly */
7756 Array<AttributeInfo> attributeInfos;
7757 Array<Variant> attributes;
7758 float basePriority;
7759 /* readonly */
7760 String category;
7761 float distanceFactor;
7762 bool enabled;
7763 /* readonly */
7764 bool enabledEffective;
7765 /* readonly */
7766 uint id;
7767 float minPriority;
7768 /* readonly */
7769 Node node;
7770 /* readonly */
7771 uint numAttributes;
7772 ObjectAnimation objectAnimation;
7773 /* readonly */
7774 int refs;
7775 bool temporary;
7776 /* readonly */
7777 StringHash type;
7778 /* readonly */
7779 String typeName;
7780 /* readonly */
7781 int weakRefs;
7782 };
7783 
7784 class Node
7785 {
7786 public:
7787 Node();
7788 Node(const String&in);
7789 // Methods:
7790 void AddChild(Node, uint = M_MAX_UNSIGNED);
7791 void AddTag(const String&);
7792 void AddTags(const String&, int8 = ';');
7793 void ApplyAttributes();
7794 Node Clone(CreateMode = REPLICATED);
7795 Component CloneComponent(Component, CreateMode, uint = 0);
7796 Component CloneComponent(Component, uint = 0);
7797 Node CreateChild(const String& = String ( ), CreateMode = REPLICATED, uint = 0, bool = false);
7798 Component CreateComponent(const String&, CreateMode = REPLICATED, uint = 0);
7799 ScriptObject CreateScriptObject(ScriptFile, const String&, CreateMode = REPLICATED);
7800 ScriptObject CreateScriptObject(const String&, const String&, CreateMode = REPLICATED);
7801 Node CreateTemporaryChild(const String& = String ( ), CreateMode = REPLICATED, uint = 0);
7802 Variant GetAttribute(const String&) const;
7803 ValueAnimation GetAttributeAnimation(const String&) const;
7804 float GetAttributeAnimationSpeed(const String&) const;
7805 float GetAttributeAnimationTime(const String&) const;
7806 WrapMode GetAttributeAnimationWrapMode(const String&) const;
7807 Variant GetAttributeDefault(const String&) const;
7808 Node GetChild(const String&, bool = false) const;
7809 Array<Node> GetChildren(bool = false) const;
7810 Array<Node> GetChildrenWithComponent(const String&, bool = false) const;
7811 Array<Node> GetChildrenWithScript(bool = false) const;
7812 Array<Node> GetChildrenWithScript(const String&, bool = false) const;
7813 Array<Node> GetChildrenWithTag(const String&, bool = false) const;
7814 Component GetComponent(const String&, bool = false) const;
7815 Array<Component> GetComponents() const;
7816 Array<Component> GetComponents(const String&, bool = false) const;
7817 bool GetInterceptNetworkUpdate(const String&) const;
7818 Component GetOrCreateComponent(const String&, CreateMode = REPLICATED, uint = 0);
7819 Component GetParentComponent(const String&, bool = false) const;
7820 ScriptObject GetScriptObject() const;
7821 ScriptObject GetScriptObject(const String&) const;
7822 bool HasComponent(const String&) const;
7823 bool HasSubscribedToEvent(Object, const String&);
7824 bool HasSubscribedToEvent(const String&);
7825 bool HasTag(const String&);
7826 bool IsChildOf(Node) const;
7827 bool Load(File, bool = false);
7828 bool Load(VectorBuffer&, bool = false);
7829 bool LoadJSON(const JSONValue&, bool = false);
7830 bool LoadXML(const XMLElement&, bool = false);
7831 Vector3 LocalToWorld(const Vector3&) const;
7832 Vector3 LocalToWorld(const Vector4&) const;
7833 Vector2 LocalToWorld2D(const Vector2&) const;
7834 bool LookAt(const Vector3&, const Vector3& = Vector3 ( 0 , 1 , 0 ), TransformSpace = TS_WORLD);
7835 void MarkDirty();
7836 void MarkNetworkUpdate() const;
7837 void Pitch(float, TransformSpace = TS_LOCAL);
7838 void Remove();
7839 void RemoveAllChildren();
7840 void RemoveAllComponents();
7841 void RemoveAllTags();
7842 void RemoveAttributeAnimation(const String&);
7843 void RemoveChild(Node);
7844 void RemoveChildren(bool, bool, bool);
7845 void RemoveComponent(Component);
7846 void RemoveComponent(const String&);
7847 void RemoveComponents(bool, bool);
7848 void RemoveComponents(const String&);
7849 void RemoveInstanceDefault();
7850 void RemoveObjectAnimation();
7851 bool RemoveTag(const String&);
7852 void ReorderComponent(Component, uint);
7853 void ResetDeepEnabled();
7854 void ResetToDefault();
7855 void Roll(float, TransformSpace = TS_LOCAL);
7856 void Rotate(const Quaternion&, TransformSpace = TS_LOCAL);
7857 void Rotate2D(float, TransformSpace = TS_LOCAL);
7858 void RotateAround(const Vector3&, const Quaternion&, TransformSpace = TS_LOCAL);
7859 void RotateAround2D(const Vector2&, float, TransformSpace = TS_LOCAL);
7860 bool Save(File) const;
7861 bool Save(VectorBuffer&) const;
7862 bool SaveJSON(File);
7863 bool SaveJSON(JSONValue&) const;
7864 bool SaveJSON(VectorBuffer&);
7865 bool SaveXML(File, const String& = "\t");
7866 bool SaveXML(VectorBuffer&, const String& = "\t");
7867 bool SaveXML(XMLElement&) const;
7868 void Scale(const Vector3&);
7869 void Scale(float);
7870 void Scale2D(const Vector2&);
7871 void SendEvent(const String&, VariantMap& = VariantMap ( ));
7872 void SetAnimationTime(float);
7873 bool SetAttribute(const String&, const Variant&);
7874 void SetAttributeAnimation(const String&, ValueAnimation, WrapMode = WM_LOOP, float = 1.0f);
7875 void SetAttributeAnimationSpeed(const String&, float);
7876 void SetAttributeAnimationTime(const String&, float);
7877 void SetAttributeAnimationWrapMode(const String&, WrapMode);
7878 void SetDeepEnabled(bool);
7879 void SetEnabledRecursive(bool);
7880 void SetInterceptNetworkUpdate(const String&, bool);
7881 void SetPosition2D(float, float);
7882 void SetScale(float);
7883 void SetScale2D(float, float);
7884 void SetTransform(const Matrix3x4&);
7885 void SetTransform(const Vector3&, const Quaternion&);
7886 void SetTransform(const Vector3&, const Quaternion&, const Vector3&);
7887 void SetTransform(const Vector3&, const Quaternion&, float);
7888 void SetTransform2D(const Vector2&, float);
7889 void SetTransform2D(const Vector2&, float, const Vector2&);
7890 void SetTransform2D(const Vector2&, float, float);
7891 void SetWorldTransform(const Vector3&, const Quaternion&);
7892 void SetWorldTransform(const Vector3&, const Quaternion&, const Vector3&);
7893 void SetWorldTransform(const Vector3&, const Quaternion&, float);
7894 void SetWorldTransform2D(const Vector2&, float);
7895 void SetWorldTransform2D(const Vector2&, float, const Vector2&);
7896 void SetWorldTransform2D(const Vector2&, float, float);
7897 void Translate(const Vector3&, TransformSpace = TS_LOCAL);
7898 void Translate2D(const Vector2&, TransformSpace = TS_LOCAL);
7899 Vector3 WorldToLocal(const Vector3&) const;
7900 Vector3 WorldToLocal(const Vector4&) const;
7901 Vector2 WorldToLocal2D(const Vector2&) const;
7902 void Yaw(float, TransformSpace = TS_LOCAL);
7903 
7904 // Properties:
7905 /* readonly */
7906 Array<Node> allChildrenByName;
7907 bool animationEnabled;
7908 /* readonly */
7909 Array<Variant> attributeDefaults;
7910 /* readonly */
7911 Array<AttributeInfo> attributeInfos;
7912 Array<Variant> attributes;
7913 /* readonly */
7914 String category;
7915 /* readonly */
7916 Array<Node> children;
7917 /* readonly */
7918 Array<Node> childrenByName;
7919 /* readonly */
7920 Array<Component> components;
7921 Vector3 direction;
7922 bool enabled;
7923 /* readonly */
7924 bool enabledSelf;
7925 uint id;
7926 String name;
7927 /* readonly */
7928 uint numAllChildren;
7929 /* readonly */
7930 uint numAttributes;
7931 /* readonly */
7932 uint numChildren;
7933 /* readonly */
7934 uint numComponents;
7935 ObjectAnimation objectAnimation;
7936 Connection owner;
7937 Node parent;
7938 Vector3 position;
7939 Vector2 position2D;
7940 /* readonly */
7941 int refs;
7942 /* readonly */
7943 Vector3 right;
7944 Quaternion rotation;
7945 float rotation2D;
7946 Vector3 scale;
7947 Vector2 scale2D;
7948 /* readonly */
7949 Scene scene;
7950 /* readonly */
7951 ScriptObject scriptObject;
7952 /* readonly */
7953 Vector3 signedWorldScale;
7954 /* readonly */
7955 Array<String> tags;
7956 bool temporary;
7957 /* readonly */
7958 Matrix3x4 transform;
7959 /* readonly */
7960 StringHash type;
7961 /* readonly */
7962 String typeName;
7963 /* readonly */
7964 Vector3 up;
7965 /* readonly */
7966 VariantMap vars;
7967 /* readonly */
7968 int weakRefs;
7969 Vector3 worldDirection;
7970 Vector3 worldPosition;
7971 Vector2 worldPosition2D;
7972 /* readonly */
7973 Vector3 worldRight;
7974 Quaternion worldRotation;
7975 float worldRotation2D;
7976 Vector3 worldScale;
7977 Vector2 worldScale2D;
7978 /* readonly */
7979 Matrix3x4 worldTransform;
7980 /* readonly */
7981 Vector3 worldUp;
7982 };
7983 
7984 class Object
7985 {
7986 public:
7987 // Methods:
7988 bool HasSubscribedToEvent(Object, const String&);
7989 bool HasSubscribedToEvent(const String&);
7990 void SendEvent(const String&, VariantMap& = VariantMap ( ));
7991 
7992 // Properties:
7993 /* readonly */
7994 String category;
7995 /* readonly */
7996 int refs;
7997 /* readonly */
7998 StringHash type;
7999 /* readonly */
8000 String typeName;
8001 /* readonly */
8002 int weakRefs;
8003 };
8004 
8005 class ObjectAnimation
8006 {
8007 public:
8008 ObjectAnimation();
8009 ObjectAnimation(const String&in);
8010 // Methods:
8011 void AddAttributeAnimation(const String&, ValueAnimation, WrapMode = WM_LOOP, float = 1.0f);
8012 ValueAnimation GetAttributeAnimation(const String&) const;
8013 float GetAttributeAnimationSpeed(const String&) const;
8014 WrapMode GetAttributeAnimationWrapMode(const String&) const;
8015 bool HasSubscribedToEvent(Object, const String&);
8016 bool HasSubscribedToEvent(const String&);
8017 bool Load(File);
8018 bool Load(VectorBuffer&);
8019 bool Load(const String&);
8020 void RemoveAttributeAnimation(ValueAnimation);
8021 void RemoveAttributeAnimation(const String&);
8022 bool Save(File) const;
8023 bool Save(VectorBuffer&) const;
8024 bool Save(const String&) const;
8025 void SendEvent(const String&, VariantMap& = VariantMap ( ));
8026 
8027 // Properties:
8028 /* readonly */
8029 Array<Variant> attributeAnimations;
8030 /* readonly */
8031 String category;
8032 /* readonly */
8033 uint memoryUse;
8034 String name;
8035 /* readonly */
8036 int refs;
8037 /* readonly */
8038 Array<Variant> speeds;
8039 /* readonly */
8040 StringHash type;
8041 /* readonly */
8042 String typeName;
8043 /* readonly */
8044 uint useTimer;
8045 /* readonly */
8046 int weakRefs;
8047 /* readonly */
8048 Array<Variant> wrapModes;
8049 };
8050 
8051 class Obstacle
8052 {
8053 public:
8054 // Methods:
8055 void ApplyAttributes();
8056 void DrawDebugGeometry(DebugRenderer, bool);
8057 void DrawDebugGeometry(bool);
8058 Variant GetAttribute(const String&) const;
8059 ValueAnimation GetAttributeAnimation(const String&) const;
8060 float GetAttributeAnimationSpeed(const String&) const;
8061 float GetAttributeAnimationTime(const String&) const;
8062 WrapMode GetAttributeAnimationWrapMode(const String&) const;
8063 Variant GetAttributeDefault(const String&) const;
8064 bool GetInterceptNetworkUpdate(const String&) const;
8065 bool HasSubscribedToEvent(Object, const String&);
8066 bool HasSubscribedToEvent(const String&);
8067 bool Load(File, bool = false);
8068 bool Load(VectorBuffer&, bool = false);
8069 bool LoadJSON(const JSONValue&, bool = false);
8070 bool LoadXML(const XMLElement&, bool = false);
8071 void MarkNetworkUpdate() const;
8072 void Remove();
8073 void RemoveAttributeAnimation(const String&);
8074 void RemoveInstanceDefault();
8075 void RemoveObjectAnimation();
8076 void ResetToDefault();
8077 bool Save(File) const;
8078 bool Save(VectorBuffer&) const;
8079 bool SaveJSON(JSONValue&) const;
8080 bool SaveXML(XMLElement&) const;
8081 void SendEvent(const String&, VariantMap& = VariantMap ( ));
8082 void SetAnimationTime(float);
8083 bool SetAttribute(const String&, const Variant&);
8084 void SetAttributeAnimation(const String&, ValueAnimation, WrapMode = WM_LOOP, float = 1.0f);
8085 void SetAttributeAnimationSpeed(const String&, float);
8086 void SetAttributeAnimationTime(const String&, float);
8087 void SetAttributeAnimationWrapMode(const String&, WrapMode);
8088 void SetInterceptNetworkUpdate(const String&, bool);
8089 
8090 // Properties:
8091 bool animationEnabled;
8092 /* readonly */
8093 Array<Variant> attributeDefaults;
8094 /* readonly */
8095 Array<AttributeInfo> attributeInfos;
8096 Array<Variant> attributes;
8097 /* readonly */
8098 String category;
8099 bool enabled;
8100 /* readonly */
8101 bool enabledEffective;
8102 float height;
8103 /* readonly */
8104 uint id;
8105 /* readonly */
8106 Node node;
8107 /* readonly */
8108 uint numAttributes;
8109 ObjectAnimation objectAnimation;
8110 /* readonly */
8111 uint obstacleId;
8112 float radius;
8113 /* readonly */
8114 int refs;
8115 bool temporary;
8116 /* readonly */
8117 StringHash type;
8118 /* readonly */
8119 String typeName;
8120 /* readonly */
8121 int weakRefs;
8122 };
8123 
8124 class Octree
8125 {
8126 public:
8127 // Methods:
8128 void AddManualDrawable(Drawable);
8129 void ApplyAttributes();
8130 void DrawDebugGeometry(DebugRenderer, bool);
8131 void DrawDebugGeometry(bool) const;
8132 Array<Drawable> GetAllDrawables(uint8 = DRAWABLE_ANY, uint = DEFAULT_VIEWMASK);
8133 Variant GetAttribute(const String&) const;
8134 ValueAnimation GetAttributeAnimation(const String&) const;
8135 float GetAttributeAnimationSpeed(const String&) const;
8136 float GetAttributeAnimationTime(const String&) const;
8137 WrapMode GetAttributeAnimationWrapMode(const String&) const;
8138 Variant GetAttributeDefault(const String&) const;
8139 Array<Drawable> GetDrawables(const BoundingBox&, uint8 = DRAWABLE_ANY, uint = DEFAULT_VIEWMASK);
8140 Array<Drawable> GetDrawables(const Frustum&, uint8 = DRAWABLE_ANY, uint = DEFAULT_VIEWMASK);
8141 Array<Drawable> GetDrawables(const Sphere&, uint8 = DRAWABLE_ANY, uint = DEFAULT_VIEWMASK);
8142 Array<Drawable> GetDrawables(const Vector3&, uint8 = DRAWABLE_ANY, uint = DEFAULT_VIEWMASK);
8143 bool GetInterceptNetworkUpdate(const String&) const;
8144 bool HasSubscribedToEvent(Object, const String&);
8145 bool HasSubscribedToEvent(const String&);
8146 bool Load(File, bool = false);
8147 bool Load(VectorBuffer&, bool = false);
8148 bool LoadJSON(const JSONValue&, bool = false);
8149 bool LoadXML(const XMLElement&, bool = false);
8150 void MarkNetworkUpdate() const;
8151 Array<RayQueryResult> Raycast(const Ray&, RayQueryLevel = RAY_TRIANGLE, float = M_INFINITY, uint8 = DRAWABLE_ANY, uint = DEFAULT_VIEWMASK) const;
8152 RayQueryResult RaycastSingle(const Ray&, RayQueryLevel = RAY_TRIANGLE, float = M_INFINITY, uint8 = DRAWABLE_ANY, uint = DEFAULT_VIEWMASK) const;
8153 void Remove();
8154 void RemoveAttributeAnimation(const String&);
8155 void RemoveInstanceDefault();
8156 void RemoveManualDrawable(Drawable);
8157 void RemoveObjectAnimation();
8158 void ResetToDefault();
8159 bool Save(File) const;
8160 bool Save(VectorBuffer&) const;
8161 bool SaveJSON(JSONValue&) const;
8162 bool SaveXML(XMLElement&) const;
8163 void SendEvent(const String&, VariantMap& = VariantMap ( ));
8164 void SetAnimationTime(float);
8165 bool SetAttribute(const String&, const Variant&);
8166 void SetAttributeAnimation(const String&, ValueAnimation, WrapMode = WM_LOOP, float = 1.0f);
8167 void SetAttributeAnimationSpeed(const String&, float);
8168 void SetAttributeAnimationTime(const String&, float);
8169 void SetAttributeAnimationWrapMode(const String&, WrapMode);
8170 void SetInterceptNetworkUpdate(const String&, bool);
8171 void SetSize(const BoundingBox&, uint);
8172 
8173 // Properties:
8174 bool animationEnabled;
8175 /* readonly */
8176 Array<Variant> attributeDefaults;
8177 /* readonly */
8178 Array<AttributeInfo> attributeInfos;
8179 Array<Variant> attributes;
8180 /* readonly */
8181 String category;
8182 bool enabled;
8183 /* readonly */
8184 bool enabledEffective;
8185 /* readonly */
8186 uint id;
8187 /* readonly */
8188 Node node;
8189 /* readonly */
8190 uint numAttributes;
8191 /* readonly */
8192 uint numLevels;
8193 ObjectAnimation objectAnimation;
8194 /* readonly */
8195 int refs;
8196 bool temporary;
8197 /* readonly */
8198 StringHash type;
8199 /* readonly */
8200 String typeName;
8201 /* readonly */
8202 int weakRefs;
8203 /* readonly */
8204 BoundingBox worldBoundingBox;
8205 };
8206 
8207 class OffMeshConnection
8208 {
8209 public:
8210 // Methods:
8211 void ApplyAttributes();
8212 void DrawDebugGeometry(DebugRenderer, bool);
8213 Variant GetAttribute(const String&) const;
8214 ValueAnimation GetAttributeAnimation(const String&) const;
8215 float GetAttributeAnimationSpeed(const String&) const;
8216 float GetAttributeAnimationTime(const String&) const;
8217 WrapMode GetAttributeAnimationWrapMode(const String&) const;
8218 Variant GetAttributeDefault(const String&) const;
8219 bool GetInterceptNetworkUpdate(const String&) const;
8220 bool HasSubscribedToEvent(Object, const String&);
8221 bool HasSubscribedToEvent(const String&);
8222 bool Load(File, bool = false);
8223 bool Load(VectorBuffer&, bool = false);
8224 bool LoadJSON(const JSONValue&, bool = false);
8225 bool LoadXML(const XMLElement&, bool = false);
8226 void MarkNetworkUpdate() const;
8227 void Remove();
8228 void RemoveAttributeAnimation(const String&);
8229 void RemoveInstanceDefault();
8230 void RemoveObjectAnimation();
8231 void ResetToDefault();
8232 bool Save(File) const;
8233 bool Save(VectorBuffer&) const;
8234 bool SaveJSON(JSONValue&) const;
8235 bool SaveXML(XMLElement&) const;
8236 void SendEvent(const String&, VariantMap& = VariantMap ( ));
8237 void SetAnimationTime(float);
8238 bool SetAttribute(const String&, const Variant&);
8239 void SetAttributeAnimation(const String&, ValueAnimation, WrapMode = WM_LOOP, float = 1.0f);
8240 void SetAttributeAnimationSpeed(const String&, float);
8241 void SetAttributeAnimationTime(const String&, float);
8242 void SetAttributeAnimationWrapMode(const String&, WrapMode);
8243 void SetInterceptNetworkUpdate(const String&, bool);
8244 
8245 // Properties:
8246 bool animationEnabled;
8247 uint areaID;
8248 /* readonly */
8249 Array<Variant> attributeDefaults;
8250 /* readonly */
8251 Array<AttributeInfo> attributeInfos;
8252 Array<Variant> attributes;
8253 bool bidirectional;
8254 /* readonly */
8255 String category;
8256 bool enabled;
8257 /* readonly */
8258 bool enabledEffective;
8259 Node endPoint;
8260 /* readonly */
8261 uint id;
8262 uint mask;
8263 /* readonly */
8264 Node node;
8265 /* readonly */
8266 uint numAttributes;
8267 ObjectAnimation objectAnimation;
8268 float radius;
8269 /* readonly */
8270 int refs;
8271 bool temporary;
8272 /* readonly */
8273 StringHash type;
8274 /* readonly */
8275 String typeName;
8276 /* readonly */
8277 int weakRefs;
8278 };
8279 
8280 class PackageFile
8281 {
8282 public:
8283 PackageFile();
8284 PackageFile(const String&in, uint startOffset = 0);
8285 // Methods:
8286 bool Exists(const String&) const;
8287 Array<String> GetEntryNames() const;
8288 bool HasSubscribedToEvent(Object, const String&);
8289 bool HasSubscribedToEvent(const String&);
8290 bool Open(const String&, uint = 0) const;
8291 void SendEvent(const String&, VariantMap& = VariantMap ( ));
8292 bool compressed() const;
8293 
8294 // Properties:
8295 /* readonly */
8296 String category;
8297 /* readonly */
8298 uint checksum;
8299 /* readonly */
8300 String name;
8301 /* readonly */
8302 uint numFiles;
8303 /* readonly */
8304 int refs;
8305 /* readonly */
8306 uint totalDataSize;
8307 /* readonly */
8308 uint totalSize;
8309 /* readonly */
8310 StringHash type;
8311 /* readonly */
8312 String typeName;
8313 /* readonly */
8314 int weakRefs;
8315 };
8316 
8317 class ParticleEffect
8318 {
8319 public:
8320 ParticleEffect();
8321 ParticleEffect(const String&in);
8322 // Methods:
8323 void AddColorFrame(ColorFrame);
8324 void AddColorTime(Color&, float);
8325 void AddTextureFrame(TextureFrame);
8326 void AddTextureTime(Rect&, float);
8327 ParticleEffect Clone(const String& = String ( )) const;
8328 ColorFrame GetColorFrame(uint) const;
8329 TextureFrame GetTextureFrame(uint) const;
8330 bool HasSubscribedToEvent(Object, const String&);
8331 bool HasSubscribedToEvent(const String&);
8332 bool Load(File);
8333 bool Load(VectorBuffer&);
8334 bool Load(const String&);
8335 bool Load(const XMLElement&);
8336 void RemoveColorFrame(uint);
8337 void RemoveTextureFrame(uint);
8338 bool Save(File) const;
8339 bool Save(VectorBuffer&) const;
8340 bool Save(XMLElement&) const;
8341 bool Save(const String&) const;
8342 void SendEvent(const String&, VariantMap& = VariantMap ( ));
8343 void SetColorFrame(uint, ColorFrame);
8344 void SetTextureFrame(uint, TextureFrame);
8345 void SortColorFrames();
8346 void SortTextureFrames();
8347 
8348 // Properties:
8349 float activeTime;
8350 float animationLodBias;
8351 /* readonly */
8352 String category;
8353 Vector3 constantForce;
8354 float dampingForce;
8355 Vector3 emitterSize;
8356 EmitterType emitterType;
8357 FaceCameraMode faceCameraMode;
8358 bool fixedScreenSize;
8359 float inactiveTime;
8360 Material material;
8361 Vector3 maxDirection;
8362 float maxEmissionRate;
8363 Vector2 maxParticleSize;
8364 float maxRotation;
8365 float maxRotationSpeed;
8366 float maxTimeToLive;
8367 float maxVelocity;
8368 /* readonly */
8369 uint memoryUse;
8370 Vector3 minDirection;
8371 float minEmissionRate;
8372 Vector2 minParticleSize;
8373 float minRotation;
8374 float minRotationSpeed;
8375 float minTimeToLive;
8376 float minVelocity;
8377 String name;
8378 uint numColorFrames;
8379 uint numParticles;
8380 uint numTextureFrames;
8381 /* readonly */
8382 int refs;
8383 bool relative;
8384 bool scaled;
8385 float sizeAdd;
8386 float sizeMul;
8387 bool sorted;
8388 /* readonly */
8389 StringHash type;
8390 /* readonly */
8391 String typeName;
8392 bool updateInvisible;
8393 /* readonly */
8394 uint useTimer;
8395 /* readonly */
8396 int weakRefs;
8397 };
8398 
8399 class ParticleEffect2D
8400 {
8401 public:
8402 ParticleEffect2D();
8403 ParticleEffect2D(const String&in);
8404 // Methods:
8405 ParticleEffect2D Clone(const String& = String ( )) const;
8406 bool HasSubscribedToEvent(Object, const String&);
8407 bool HasSubscribedToEvent(const String&);
8408 bool Load(File);
8409 bool Load(VectorBuffer&);
8410 bool Load(const String&);
8411 bool Save(File) const;
8412 bool Save(VectorBuffer&) const;
8413 bool Save(const String&) const;
8414 void SendEvent(const String&, VariantMap& = VariantMap ( ));
8415 
8416 // Properties:
8417 /* readonly */
8418 String category;
8419 /* readonly */
8420 uint memoryUse;
8421 String name;
8422 /* readonly */
8423 int refs;
8424 /* readonly */
8425 StringHash type;
8426 /* readonly */
8427 String typeName;
8428 /* readonly */
8429 uint useTimer;
8430 /* readonly */
8431 int weakRefs;
8432 };
8433 
8434 class ParticleEmitter
8435 {
8436 public:
8437 // Methods:
8438 void ApplyAttributes();
8439 void ApplyEffect();
8440 void Commit();
8441 void DrawDebugGeometry(DebugRenderer, bool);
8442 Variant GetAttribute(const String&) const;
8443 ValueAnimation GetAttributeAnimation(const String&) const;
8444 float GetAttributeAnimationSpeed(const String&) const;
8445 float GetAttributeAnimationTime(const String&) const;
8446 WrapMode GetAttributeAnimationWrapMode(const String&) const;
8447 Variant GetAttributeDefault(const String&) const;
8448 bool GetInterceptNetworkUpdate(const String&) const;
8449 bool HasSubscribedToEvent(Object, const String&);
8450 bool HasSubscribedToEvent(const String&);
8451 bool IsInView(Camera) const;
8452 bool Load(File, bool = false);
8453 bool Load(VectorBuffer&, bool = false);
8454 bool LoadJSON(const JSONValue&, bool = false);
8455 bool LoadXML(const XMLElement&, bool = false);
8456 void MarkNetworkUpdate() const;
8457 void Remove();
8458 void RemoveAllParticles();
8459 void RemoveAttributeAnimation(const String&);
8460 void RemoveInstanceDefault();
8461 void RemoveObjectAnimation();
8462 void Reset();
8463 void ResetEmissionTimer();
8464 void ResetToDefault();
8465 bool Save(File) const;
8466 bool Save(VectorBuffer&) const;
8467 bool SaveJSON(JSONValue&) const;
8468 bool SaveXML(XMLElement&) const;
8469 void SendEvent(const String&, VariantMap& = VariantMap ( ));
8470 void SetAnimationTime(float);
8471 bool SetAttribute(const String&, const Variant&);
8472 void SetAttributeAnimation(const String&, ValueAnimation, WrapMode = WM_LOOP, float = 1.0f);
8473 void SetAttributeAnimationSpeed(const String&, float);
8474 void SetAttributeAnimationTime(const String&, float);
8475 void SetAttributeAnimationWrapMode(const String&, WrapMode);
8476 void SetInterceptNetworkUpdate(const String&, bool);
8477 
8478 // Properties:
8479 bool animationEnabled;
8480 float animationLodBias;
8481 /* readonly */
8482 Array<Variant> attributeDefaults;
8483 /* readonly */
8484 Array<AttributeInfo> attributeInfos;
8485 Array<Variant> attributes;
8486 AutoRemoveMode autoRemoveMode;
8487 /* readonly */
8488 Array<Billboard> billboards;
8489 /* readonly */
8490 BoundingBox boundingBox;
8491 bool castShadows;
8492 /* readonly */
8493 String category;
8494 float drawDistance;
8495 ParticleEffect effect;
8496 bool emitting;
8497 bool enabled;
8498 /* readonly */
8499 bool enabledEffective;
8500 FaceCameraMode faceCameraMode;
8501 bool fixedScreenSize;
8502 /* readonly */
8503 uint id;
8504 /* readonly */
8505 bool inView;
8506 uint lightMask;
8507 float lodBias;
8508 Material material;
8509 uint maxLights;
8510 /* readonly */
8511 Node node;
8512 /* readonly */
8513 uint numAttributes;
8514 uint numBillboards;
8515 uint numParticles;
8516 ObjectAnimation objectAnimation;
8517 bool occludee;
8518 bool occluder;
8519 /* readonly */
8520 int refs;
8521 bool relative;
8522 bool scaled;
8523 bool serializeParticles;
8524 float shadowDistance;
8525 uint shadowMask;
8526 bool sorted;
8527 bool temporary;
8528 /* readonly */
8529 StringHash type;
8530 /* readonly */
8531 String typeName;
8532 uint viewMask;
8533 /* readonly */
8534 int weakRefs;
8535 /* readonly */
8536 BoundingBox worldBoundingBox;
8537 /* readonly */
8538 Zone zone;
8539 uint zoneMask;
8540 };
8541 
8542 class ParticleEmitter2D
8543 {
8544 public:
8545 // Methods:
8546 void ApplyAttributes();
8547 void DrawDebugGeometry(DebugRenderer, bool);
8548 Variant GetAttribute(const String&) const;
8549 ValueAnimation GetAttributeAnimation(const String&) const;
8550 float GetAttributeAnimationSpeed(const String&) const;
8551 float GetAttributeAnimationTime(const String&) const;
8552 WrapMode GetAttributeAnimationWrapMode(const String&) const;
8553 Variant GetAttributeDefault(const String&) const;
8554 bool GetInterceptNetworkUpdate(const String&) const;
8555 bool HasSubscribedToEvent(Object, const String&);
8556 bool HasSubscribedToEvent(const String&);
8557 bool IsInView(Camera) const;
8558 bool Load(File, bool = false);
8559 bool Load(VectorBuffer&, bool = false);
8560 bool LoadJSON(const JSONValue&, bool = false);
8561 bool LoadXML(const XMLElement&, bool = false);
8562 void MarkNetworkUpdate() const;
8563 void Remove();
8564 void RemoveAttributeAnimation(const String&);
8565 void RemoveInstanceDefault();
8566 void RemoveObjectAnimation();
8567 void ResetToDefault();
8568 bool Save(File) const;
8569 bool Save(VectorBuffer&) const;
8570 bool SaveJSON(JSONValue&) const;
8571 bool SaveXML(XMLElement&) const;
8572 void SendEvent(const String&, VariantMap& = VariantMap ( ));
8573 void SetAnimationTime(float);
8574 bool SetAttribute(const String&, const Variant&);
8575 void SetAttributeAnimation(const String&, ValueAnimation, WrapMode = WM_LOOP, float = 1.0f);
8576 void SetAttributeAnimationSpeed(const String&, float);
8577 void SetAttributeAnimationTime(const String&, float);
8578 void SetAttributeAnimationWrapMode(const String&, WrapMode);
8579 void SetInterceptNetworkUpdate(const String&, bool);
8580 
8581 // Properties:
8582 bool animationEnabled;
8583 /* readonly */
8584 Array<Variant> attributeDefaults;
8585 /* readonly */
8586 Array<AttributeInfo> attributeInfos;
8587 Array<Variant> attributes;
8588 BlendMode blendMode;
8589 /* readonly */
8590 BoundingBox boundingBox;
8591 bool castShadows;
8592 /* readonly */
8593 String category;
8594 float drawDistance;
8595 ParticleEffect2D effect;
8596 bool emitting;
8597 bool enabled;
8598 /* readonly */
8599 bool enabledEffective;
8600 /* readonly */
8601 uint id;
8602 /* readonly */
8603 bool inView;
8604 int layer;
8605 uint lightMask;
8606 float lodBias;
8607 uint maxLights;
8608 /* readonly */
8609 Node node;
8610 /* readonly */
8611 uint numAttributes;
8612 ObjectAnimation objectAnimation;
8613 bool occludee;
8614 bool occluder;
8615 int orderInLayer;
8616 /* readonly */
8617 int refs;
8618 float shadowDistance;
8619 uint shadowMask;
8620 Sprite2D sprite;
8621 bool temporary;
8622 /* readonly */
8623 StringHash type;
8624 /* readonly */
8625 String typeName;
8626 uint viewMask;
8627 /* readonly */
8628 int weakRefs;
8629 /* readonly */
8630 BoundingBox worldBoundingBox;
8631 uint zoneMask;
8632 };
8633 
8634 class Pass
8635 {
8636 public:
8637 
8638 // Properties:
8639 bool alphaToCoverage;
8640 BlendMode blendMode;
8641 CullMode cullMode;
8642 CompareMode depthTestMode;
8643 bool depthWrite;
8644 bool desktop;
8645 PassLightingMode lightingMode;
8646 String pixelShader;
8647 String pixelShaderDefineExcludes;
8648 String pixelShaderDefines;
8649 /* readonly */
8650 int refs;
8651 String vertexShader;
8652 String vertexShaderDefineExcludes;
8653 String vertexShaderDefines;
8654 /* readonly */
8655 int weakRefs;
8656 };
8657 
8658 class PhysicsRaycastResult
8659 {
8660 public:
8661 ~PhysicsRaycastResult();
8662 PhysicsRaycastResult();
8663 
8664 // Properties:
8665 /* readonly */
8666 RigidBody body;
8667 float distance;
8668 float hitFraction;
8669 Vector3 normal;
8670 Vector3 position;
8671 };
8672 
8673 class PhysicsRaycastResult2D
8674 {
8675 public:
8676 ~PhysicsRaycastResult2D();
8677 PhysicsRaycastResult2D();
8678 
8679 // Properties:
8680 /* readonly */
8681 RigidBody2D body;
8682 float distance;
8683 Vector2 normal;
8684 Vector2 position;
8685 };
8686 
8687 class PhysicsWorld
8688 {
8689 public:
8690 // Methods:
8691 void ApplyAttributes();
8692 PhysicsRaycastResult ConvexCast(CollisionShape, const Vector3&, const Quaternion&, const Vector3&, const Quaternion&, uint = 0xffff);
8693 void DrawDebugGeometry(DebugRenderer, bool);
8694 void DrawDebugGeometry(bool);
8695 Variant GetAttribute(const String&) const;
8696 ValueAnimation GetAttributeAnimation(const String&) const;
8697 float GetAttributeAnimationSpeed(const String&) const;
8698 float GetAttributeAnimationTime(const String&) const;
8699 WrapMode GetAttributeAnimationWrapMode(const String&) const;
8700 Variant GetAttributeDefault(const String&) const;
8701 Array<RigidBody> GetCollidingBodies(RigidBody);
8702 bool GetInterceptNetworkUpdate(const String&) const;
8703 Array<RigidBody> GetRigidBodies(RigidBody);
8704 Array<RigidBody> GetRigidBodies(const BoundingBox&, uint = 0xffff);
8705 Array<RigidBody> GetRigidBodies(const Sphere&, uint = 0xffff);
8706 bool HasSubscribedToEvent(Object, const String&);
8707 bool HasSubscribedToEvent(const String&);
8708 bool Load(File, bool = false);
8709 bool Load(VectorBuffer&, bool = false);
8710 bool LoadJSON(const JSONValue&, bool = false);
8711 bool LoadXML(const XMLElement&, bool = false);
8712 void MarkNetworkUpdate() const;
8713 Array<PhysicsRaycastResult> Raycast(const Ray&, float, uint = 0xffff);
8714 PhysicsRaycastResult RaycastSingle(const Ray&, float, uint = 0xffff);
8715 PhysicsRaycastResult RaycastSingleSegmented(const Ray&, float, float, uint = 0xffff);
8716 void Remove();
8717 void RemoveAttributeAnimation(const String&);
8718 void RemoveCachedGeometry(Model);
8719 void RemoveInstanceDefault();
8720 void RemoveObjectAnimation();
8721 void ResetToDefault();
8722 bool Save(File) const;
8723 bool Save(VectorBuffer&) const;
8724 bool SaveJSON(JSONValue&) const;
8725 bool SaveXML(XMLElement&) const;
8726 void SendEvent(const String&, VariantMap& = VariantMap ( ));
8727 void SetAnimationTime(float);
8728 bool SetAttribute(const String&, const Variant&);
8729 void SetAttributeAnimation(const String&, ValueAnimation, WrapMode = WM_LOOP, float = 1.0f);
8730 void SetAttributeAnimationSpeed(const String&, float);
8731 void SetAttributeAnimationTime(const String&, float);
8732 void SetAttributeAnimationWrapMode(const String&, WrapMode);
8733 void SetInterceptNetworkUpdate(const String&, bool);
8734 PhysicsRaycastResult SphereCast(const Ray&, float, float, uint = 0xffff);
8735 void Update(float);
8736 void UpdateCollisions();
8737 
8738 // Properties:
8739 bool animationEnabled;
8740 /* readonly */
8741 Array<Variant> attributeDefaults;
8742 /* readonly */
8743 Array<AttributeInfo> attributeInfos;
8744 Array<Variant> attributes;
8745 /* readonly */
8746 String category;
8747 bool enabled;
8748 /* readonly */
8749 bool enabledEffective;
8750 int fps;
8751 Vector3 gravity;
8752 /* readonly */
8753 uint id;
8754 bool internalEdge;
8755 bool interpolation;
8756 int maxSubSteps;
8757 /* readonly */
8758 Node node;
8759 /* readonly */
8760 uint numAttributes;
8761 int numIterations;
8762 ObjectAnimation objectAnimation;
8763 /* readonly */
8764 int refs;
8765 bool splitImpulse;
8766 bool temporary;
8767 /* readonly */
8768 StringHash type;
8769 /* readonly */
8770 String typeName;
8771 bool updateEnabled;
8772 /* readonly */
8773 int weakRefs;
8774 };
8775 
8776 class PhysicsWorld2D
8777 {
8778 public:
8779 // Methods:
8780 void ApplyAttributes();
8781 void DrawDebugGeometry() const;
8782 void DrawDebugGeometry(DebugRenderer, bool);
8783 Variant GetAttribute(const String&) const;
8784 ValueAnimation GetAttributeAnimation(const String&) const;
8785 float GetAttributeAnimationSpeed(const String&) const;
8786 float GetAttributeAnimationTime(const String&) const;
8787 WrapMode GetAttributeAnimationWrapMode(const String&) const;
8788 Variant GetAttributeDefault(const String&) const;
8789 bool GetInterceptNetworkUpdate(const String&) const;
8790 Array<RigidBody2D> GetRigidBodies(const Rect&, uint = 0xffff);
8791 RigidBody2D GetRigidBody(const Vector2&, uint = 0xffff);
8792 RigidBody2D GetRigidBody(int, int, uint = 0xffff);
8793 bool HasSubscribedToEvent(Object, const String&);
8794 bool HasSubscribedToEvent(const String&);
8795 bool Load(File, bool = false);
8796 bool Load(VectorBuffer&, bool = false);
8797 bool LoadJSON(const JSONValue&, bool = false);
8798 bool LoadXML(const XMLElement&, bool = false);
8799 void MarkNetworkUpdate() const;
8800 Array<PhysicsRaycastResult2D> Raycast(const Vector2&, const Vector2&, uint = 0xffff);
8801 PhysicsRaycastResult2D RaycastSingle(const Vector2&, const Vector2&, uint = 0xffff);
8802 void Remove();
8803 void RemoveAttributeAnimation(const String&);
8804 void RemoveInstanceDefault();
8805 void RemoveObjectAnimation();
8806 void ResetToDefault();
8807 bool Save(File) const;
8808 bool Save(VectorBuffer&) const;
8809 bool SaveJSON(JSONValue&) const;
8810 bool SaveXML(XMLElement&) const;
8811 void SendEvent(const String&, VariantMap& = VariantMap ( ));
8812 void SetAnimationTime(float);
8813 bool SetAttribute(const String&, const Variant&);
8814 void SetAttributeAnimation(const String&, ValueAnimation, WrapMode = WM_LOOP, float = 1.0f);
8815 void SetAttributeAnimationSpeed(const String&, float);
8816 void SetAttributeAnimationTime(const String&, float);
8817 void SetAttributeAnimationWrapMode(const String&, WrapMode);
8818 void SetInterceptNetworkUpdate(const String&, bool);
8819 
8820 // Properties:
8821 bool allowSleeping;
8822 bool animationEnabled;
8823 /* readonly */
8824 Array<Variant> attributeDefaults;
8825 /* readonly */
8826 Array<AttributeInfo> attributeInfos;
8827 Array<Variant> attributes;
8828 bool autoClearForces;
8829 /* readonly */
8830 String category;
8831 bool continuousPhysics;
8832 bool drawAabb;
8833 bool drawCenterOfMass;
8834 bool drawJoint;
8835 bool drawPair;
8836 bool drawShape;
8837 bool enabled;
8838 /* readonly */
8839 bool enabledEffective;
8840 Vector2 gravity;
8841 /* readonly */
8842 uint id;
8843 /* readonly */
8844 Node node;
8845 /* readonly */
8846 uint numAttributes;
8847 ObjectAnimation objectAnimation;
8848 uint positionIterations;
8849 /* readonly */
8850 int refs;
8851 bool subStepping;
8852 bool temporary;
8853 /* readonly */
8854 StringHash type;
8855 /* readonly */
8856 String typeName;
8857 bool updateEnabled;
8858 uint velocityIterations;
8859 bool warmStarting;
8860 /* readonly */
8861 int weakRefs;
8862 };
8863 
8864 class Plane
8865 {
8866 public:
8867 Plane();
8868 Plane(const Plane&in);
8869 Plane(const Vector3&in, const Vector3&in, const Vector3&in);
8870 Plane(const Vector3&in, const Vector3&in);
8871 Plane(const Vector4&in);
8872 // Methods:
8873 void Define(const Vector3&, const Vector3&);
8874 void Define(const Vector3&, const Vector3&, const Vector3&);
8875 void Define(const Vector4&);
8876 float Distance(const Vector3&) const;
8877 Vector3 Project(const Vector3&) const;
8878 Vector3 Reflect(const Vector3&) const;
8879 Vector4 ToVector4() const;
8880 void Transform(const Matrix3&);
8881 void Transform(const Matrix3x4&);
8882 void Transform(const Matrix4&);
8883 Plane Transformed(const Matrix3&) const;
8884 Plane Transformed(const Matrix3x4&) const;
8885 Plane Transformed(const Matrix4&) const;
8886 
8887 // Properties:
8888 Vector3 absNormal;
8889 float d;
8890 Vector3 normal;
8891 /* readonly */
8892 Matrix3x4 reflectionMatrix;
8893 };
8894 
8895 class Polyhedron
8896 {
8897 public:
8898 ~Polyhedron();
8899 Polyhedron();
8900 Polyhedron(const Polyhedron&in);
8901 Polyhedron(const BoundingBox&in);
8902 Polyhedron(const Frustum&in);
8903 // Methods:
8904 void AddFace(const Vector3&, const Vector3&, const Vector3&);
8905 void AddFace(const Vector3&, const Vector3&, const Vector3&, const Vector3&);
8906 void AddFace(const Array<Vector3>);
8907 void Clear();
8908 void Clip(const BoundingBox&);
8909 void Clip(const Frustum&);
8910 void Define(const BoundingBox&);
8911 void Define(const Frustum&);
8912 void Transform(const Matrix3&);
8913 void Transform(const Matrix3x4&);
8914 Polyhedron Transformed(const Matrix3&) const;
8915 Polyhedron Transformed(const Matrix3x4&) const;
8916 
8917 // Properties:
8918 /* readonly */
8919 Array<Array<Vector3>> face;
8920 /* readonly */
8921 uint numFaces;
8922 };
8923 
8924 class ProgressBar
8925 {
8926 public:
8927 // Methods:
8928 void ChangeValue(float);
8929 bool HasSubscribedToEvent(Object, const String&);
8930 bool HasSubscribedToEvent(const String&);
8931 void SendEvent(const String&, VariantMap& = VariantMap ( ));
8932 void SetLoadingPercentStyle(const String&);
8933 
8934 // Properties:
8935 /* readonly */
8936 String category;
8937 /* readonly */
8938 BorderImage knob;
8939 Orientation orientation;
8940 float range;
8941 /* readonly */
8942 int refs;
8943 bool showPercentText;
8944 /* readonly */
8945 StringHash type;
8946 /* readonly */
8947 String typeName;
8948 float value;
8949 /* readonly */
8950 int weakRefs;
8951 };
8952 
8953 class PropertySet2D
8954 {
8955 public:
8956 // Methods:
8957 bool HasProperty(const String&) const;
8958 const String& GetProperty(const String&) const;
8959 
8960 // Properties:
8961 /* readonly */
8962 int refs;
8963 /* readonly */
8964 int weakRefs;
8965 };
8966 
8967 class Quaternion
8968 {
8969 public:
8970 Quaternion();
8971 Quaternion(const Quaternion&in);
8972 Quaternion(float, float, float, float);
8973 Quaternion(float, const Vector3&in);
8974 Quaternion(float);
8975 Quaternion(float, float, float);
8976 Quaternion(const Vector3&in);
8977 Quaternion(const Vector3&in, const Vector3&in);
8978 Quaternion(const Vector3&in, const Vector3&in, const Vector3&in);
8979 Quaternion(const Matrix3&in);
8980 // Methods:
8981 Quaternion Conjugate() const;
8982 float DotProduct(const Quaternion&) const;
8983 bool Equals(const Quaternion&) const;
8984 void FromAngleAxis(float, const Vector3&);
8985 void FromAxes(const Vector3&, const Vector3&, const Vector3&);
8986 void FromEulerAngles(float, float, float);
8987 bool FromLookRotation(const Vector3&, const Vector3& = Vector3 ( 0.0 , 1.0 , 0.0 ));
8988 void FromRotationMatrix(const Matrix3&);
8989 void FromRotationTo(const Vector3&, const Vector3&);
8990 Quaternion Inverse() const;
8991 bool IsNaN() const;
8992 float LengthSquared() const;
8993 Quaternion Nlerp(const Quaternion&, float, bool) const;
8994 void Normalize();
8995 Quaternion Normalized() const;
8996 Quaternion Slerp(const Quaternion&, float) const;
8997 String ToString() const;
8998 
8999 // Properties:
9000 /* readonly */
9001 float angle;
9002 /* readonly */
9003 Vector3 axis;
9004 /* readonly */
9005 Vector3 eulerAngles;
9006 /* readonly */
9007 float pitch;
9008 /* readonly */
9009 float roll;
9010 /* readonly */
9011 Matrix3 rotationMatrix;
9012 float w;
9013 float x;
9014 float y;
9015 /* readonly */
9016 float yaw;
9017 float z;
9018 };
9019 
9020 class Ray
9021 {
9022 public:
9023 Ray();
9024 Ray(const Ray&in);
9025 Ray(const Vector3&in, const Vector3&in);
9026 // Methods:
9027 Vector3 ClosestPoint(const Ray&) const;
9028 void Define(const Vector3&, const Vector3&);
9029 float Distance(const Vector3&) const;
9030 float HitDistance(const BoundingBox&) const;
9031 float HitDistance(const Frustum&, bool = true) const;
9032 float HitDistance(const Plane&) const;
9033 float HitDistance(const Sphere&) const;
9034 float HitDistance(const Vector3&, const Vector3&, const Vector3&) const;
9035 Vector3 Project(const Vector3&) const;
9036 Ray Transformed(const Matrix3x4&) const;
9037 
9038 // Properties:
9039 Vector3 direction;
9040 Vector3 origin;
9041 };
9042 
9043 class RayQueryResult
9044 {
9045 public:
9046 RayQueryResult();
9047 
9048 // Properties:
9049 float distance;
9050 /* readonly */
9051 Drawable drawable;
9052 /* readonly */
9053 Node node;
9054 Vector3 normal;
9055 Vector3 position;
9056 uint subObject;
9057 Vector2 textureUV;
9058 };
9059 
9060 class RaycastVehicle
9061 {
9062 public:
9063 // Methods:
9064 void AddWheel(Node, Vector3, Vector3, float, float, bool);
9065 void ApplyAttributes();
9066 void DrawDebugGeometry(DebugRenderer, bool);
9067 Variant GetAttribute(const String&) const;
9068 ValueAnimation GetAttributeAnimation(const String&) const;
9069 float GetAttributeAnimationSpeed(const String&) const;
9070 float GetAttributeAnimationTime(const String&) const;
9071 WrapMode GetAttributeAnimationWrapMode(const String&) const;
9072 Variant GetAttributeDefault(const String&) const;
9073 float GetBrake(int);
9074 Vector3 GetContactNormal(int);
9075 Vector3 GetContactPosition(int);
9076 float GetEngineForce(int);
9077 bool GetInterceptNetworkUpdate(const String&) const;
9078 float GetMaxSuspensionTravel(int);
9079 float GetSteeringValue(int);
9080 Vector3 GetWheelAxle(int);
9081 Vector3 GetWheelConnectionPoint(int);
9082 float GetWheelDampingCompression(int);
9083 float GetWheelDampingRelaxation(int);
9084 Vector3 GetWheelDirection(int);
9085 float GetWheelFrictionSlip(int);
9086 Node GetWheelNode(int);
9087 Vector3 GetWheelPosition(int);
9088 float GetWheelRadius(int);
9089 float GetWheelRestLength(int);
9090 float GetWheelRollInfluence(int);
9091 Vector3 GetWheelRotation(int);
9092 float GetWheelSideSlipSpeed(int);
9093 float GetWheelSkidInfo(int);
9094 float GetWheelSkidInfoCumulative(int);
9095 float GetWheelSuspensionStiffness(int);
9096 bool HasSubscribedToEvent(Object, const String&);
9097 bool HasSubscribedToEvent(const String&);
9098 void Init();
9099 bool IsFrontWheel(int);
9100 bool Load(File, bool = false);
9101 bool Load(VectorBuffer&, bool = false);
9102 bool LoadJSON(const JSONValue&, bool = false);
9103 bool LoadXML(const XMLElement&, bool = false);
9104 void MarkNetworkUpdate() const;
9105 void Remove();
9106 void RemoveAttributeAnimation(const String&);
9107 void RemoveInstanceDefault();
9108 void RemoveObjectAnimation();
9109 void ResetSuspension();
9110 void ResetToDefault();
9111 void ResetWheels();
9112 bool Save(File) const;
9113 bool Save(VectorBuffer&) const;
9114 bool SaveJSON(JSONValue&) const;
9115 bool SaveXML(XMLElement&) const;
9116 void SendEvent(const String&, VariantMap& = VariantMap ( ));
9117 void SetAnimationTime(float);
9118 bool SetAttribute(const String&, const Variant&);
9119 void SetAttributeAnimation(const String&, ValueAnimation, WrapMode = WM_LOOP, float = 1.0f);
9120 void SetAttributeAnimationSpeed(const String&, float);
9121 void SetAttributeAnimationTime(const String&, float);
9122 void SetAttributeAnimationWrapMode(const String&, WrapMode);
9123 void SetBrake(int, float);
9124 void SetEngineForce(int, float);
9125 void SetInterceptNetworkUpdate(const String&, bool);
9126 void SetMaxSuspensionTravel(int, float);
9127 void SetSteeringValue(int, float);
9128 void SetWheelAxle(int, Vector3);
9129 void SetWheelDampingCompression(int, float);
9130 void SetWheelDampingRelaxation(int, float);
9131 void SetWheelDirection(int, Vector3);
9132 void SetWheelFrictionSlip(int, float);
9133 void SetWheelRadius(int, float);
9134 void SetWheelRestLength(int, float);
9135 void SetWheelRollInfluence(int, float);
9136 void SetWheelSkidInfo(int, float);
9137 void SetWheelSkidInfoCumulative(int, float);
9138 void SetWheelSuspensionStiffness(int, float);
9139 void UpdateWheelTransform(int, bool);
9140 bool WheelIsGrounded(int);
9141 
9142 // Properties:
9143 bool animationEnabled;
9144 /* readonly */
9145 Array<Variant> attributeDefaults;
9146 /* readonly */
9147 Array<AttributeInfo> attributeInfos;
9148 Array<Variant> attributes;
9149 /* readonly */
9150 String category;
9151 bool enabled;
9152 /* readonly */
9153 bool enabledEffective;
9154 /* readonly */
9155 uint id;
9156 float inAirRPM;
9157 float maxSideSlipSpeed;
9158 /* readonly */
9159 Node node;
9160 /* readonly */
9161 uint numAttributes;
9162 /* readonly */
9163 int numWheels;
9164 ObjectAnimation objectAnimation;
9165 /* readonly */
9166 int refs;
9167 bool temporary;
9168 /* readonly */
9169 StringHash type;
9170 /* readonly */
9171 String typeName;
9172 /* readonly */
9173 int weakRefs;
9174 };
9175 
9176 class Rect
9177 {
9178 public:
9179 Rect();
9180 Rect(const Rect&in);
9181 Rect(float, float, float, float);
9182 Rect(const Vector2&in, const Vector2&in);
9183 Rect(const Vector4&in);
9184 // Methods:
9185 void Clear();
9186 void Clip(const Rect&);
9187 void Define(const Vector2&);
9188 void Define(const Vector2&, const Vector2&);
9189 bool Defined() const;
9190 bool Equals(const Rect&) const;
9191 Intersection IsInside(const Rect&) const;
9192 Intersection IsInside(const Vector2&) const;
9193 void Merge(const Rect&);
9194 void Merge(const Vector2&);
9195 Vector4 ToVector4() const;
9196 
9197 // Properties:
9198 float bottom;
9199 /* readonly */
9200 Vector2 center;
9201 /* readonly */
9202 Vector2 halfSize;
9203 float left;
9204 Vector2 max;
9205 Vector2 min;
9206 float right;
9207 /* readonly */
9208 Vector2 size;
9209 float top;
9210 };
9211 
9212 class RefCounted
9213 {
9214 public:
9215 
9216 // Properties:
9217 /* readonly */
9218 int refs;
9219 /* readonly */
9220 int weakRefs;
9221 };
9222 
9223 class RenderPath
9224 {
9225 public:
9226 RenderPath();
9227 // Methods:
9228 void AddCommand(const RenderPathCommand&);
9229 void AddRenderTarget(const RenderTargetInfo&);
9230 bool Append(XMLFile);
9231 RenderPath Clone();
9232 void InsertCommand(uint, const RenderPathCommand&);
9233 bool Load(XMLFile);
9234 void RemoveCommand(uint);
9235 void RemoveCommands(const String&);
9236 void RemoveRenderTarget(const String&);
9237 void RemoveRenderTarget(uint);
9238 void RemoveRenderTargts(const String&);
9239 void SetEnabled(const String&, bool);
9240 void ToggleEnabled(const String&);
9241 
9242 // Properties:
9243 Array<RenderPathCommand> commands;
9244 /* readonly */
9245 uint numCommands;
9246 /* readonly */
9247 uint numRenderTargets;
9248 /* readonly */
9249 int refs;
9250 Array<RenderTargetInfo> renderTargets;
9251 Array<Variant> shaderParameters;
9252 /* readonly */
9253 int weakRefs;
9254 };
9255 
9256 class RenderPathCommand
9257 {
9258 public:
9259 ~RenderPathCommand();
9260 RenderPathCommand();
9261 RenderPathCommand(const RenderPathCommand&in);
9262 // Methods:
9263 void RemoveShaderParameter(const String&);
9264 void SetOutput(uint, const String&, CubeMapFace = FACE_POSITIVE_X);
9265 
9266 // Properties:
9267 BlendMode blendMode;
9268 Color clearColor;
9269 float clearDepth;
9270 uint clearFlags;
9271 uint clearStencil;
9272 String depthStencilName;
9273 bool enabled;
9274 String eventName;
9275 bool markToStencil;
9276 String metadata;
9277 uint numOutputs;
9278 Array<CubeMapFace> outputFaces;
9279 Array<String> outputNames;
9280 String pass;
9281 String pixelShaderDefines;
9282 String pixelShaderName;
9283 Array<Variant> shaderParameters;
9284 RenderCommandSortMode sortMode;
9285 String tag;
9286 Array<String> textureNames;
9287 RenderCommandType type;
9288 bool useFogColor;
9289 bool useLitBase;
9290 bool vertexLights;
9291 String vertexShaderDefines;
9292 String vertexShaderName;
9293 };
9294 
9295 class RenderSurface
9296 {
9297 public:
9298 // Methods:
9299 void QueueUpdate();
9300 
9301 // Properties:
9302 /* readonly */
9303 int height;
9304 RenderSurface linkedDepthStencil;
9305 RenderSurface linkedRenderTarget;
9306 uint numViewports;
9307 /* readonly */
9308 Texture parentTexture;
9309 /* readonly */
9310 bool resolveDirty;
9311 RenderSurfaceUpdateMode updateMode;
9312 /* readonly */
9313 TextureUsage usage;
9314 Array<Viewport> viewports;
9315 /* readonly */
9316 int width;
9317 };
9318 
9319 class RenderTargetInfo
9320 {
9321 public:
9322 ~RenderTargetInfo();
9323 RenderTargetInfo();
9324 RenderTargetInfo(const RenderTargetInfo&in);
9325 
9326 // Properties:
9327 bool autoResolve;
9328 bool cubemap;
9329 bool enabled;
9330 bool filtered;
9331 uint format;
9332 int multiSample;
9333 String name;
9334 bool persistent;
9335 bool sRGB;
9336 Vector2 size;
9337 RenderTargetSizeMode sizeMode;
9338 String tag;
9339 };
9340 
9341 class Renderer
9342 {
9343 public:
9344 // Methods:
9345 void DrawDebugGeometry(bool) const;
9346 bool HasSubscribedToEvent(Object, const String&);
9347 bool HasSubscribedToEvent(const String&);
9348 void ReloadShaders() const;
9349 void SendEvent(const String&, VariantMap& = VariantMap ( ));
9350 void SetDefaultRenderPath(XMLFile);
9351 void SetVSMShadowParameters(float, float);
9352 
9353 // Properties:
9354 /* readonly */
9355 String category;
9356 /* readonly */
9357 Material defaultLightRamp;
9358 /* readonly */
9359 Material defaultLightSpot;
9360 /* readonly */
9361 Material defaultMaterial;
9362 RenderPath defaultRenderPath;
9363 Technique defaultTechnique;
9364 /* readonly */
9365 Zone defaultZone;
9366 bool drawShadows;
9367 bool dynamicInstancing;
9368 bool hdrRendering;
9369 int materialQuality;
9370 int maxOccluderTriangles;
9371 int maxShadowMaps;
9372 int maxSortedInstances;
9373 int minInstances;
9374 float mobileNormalOffsetMul;
9375 float mobileShadowBiasAdd;
9376 float mobileShadowBiasMul;
9377 /* readonly */
9378 uint numBatches;
9379 int numExtraInstancingBufferElements;
9380 /* readonly */
9381 Array<uint> numGeometries;
9382 /* readonly */
9383 Array<uint> numLights;
9384 /* readonly */
9385 Array<uint> numOccluders;
9386 /* readonly */
9387 uint numPrimitives;
9388 /* readonly */
9389 Array<uint> numShadowMaps;
9390 uint numViewports;
9391 /* readonly */
9392 uint numViews;
9393 float occluderSizeThreshold;
9394 int occlusionBufferSize;
9395 /* readonly */
9396 int refs;
9397 bool reuseShadowMaps;
9398 int shadowMapSize;
9399 ShadowQuality shadowQuality;
9400 float shadowSoftness;
9401 bool specularLighting;
9402 int textureAnisotropy;
9403 TextureFilterMode textureFilterMode;
9404 int textureQuality;
9405 bool threadedOcclusion;
9406 /* readonly */
9407 StringHash type;
9408 /* readonly */
9409 String typeName;
9410 Array<Viewport> viewports;
9411 int vsmMultiSample;
9412 Vector2 vsmShadowParameters;
9413 /* readonly */
9414 int weakRefs;
9415 };
9416 
9417 class Resource
9418 {
9419 public:
9420 // Methods:
9421 bool HasSubscribedToEvent(Object, const String&);
9422 bool HasSubscribedToEvent(const String&);
9423 bool Load(File);
9424 bool Load(VectorBuffer&);
9425 bool Load(const String&);
9426 bool Save(File) const;
9427 bool Save(VectorBuffer&) const;
9428 bool Save(const String&) const;
9429 void SendEvent(const String&, VariantMap& = VariantMap ( ));
9430 
9431 // Properties:
9432 /* readonly */
9433 String category;
9434 /* readonly */
9435 uint memoryUse;
9436 String name;
9437 /* readonly */
9438 int refs;
9439 /* readonly */
9440 StringHash type;
9441 /* readonly */
9442 String typeName;
9443 /* readonly */
9444 uint useTimer;
9445 /* readonly */
9446 int weakRefs;
9447 };
9448 
9449 class ResourceCache
9450 {
9451 public:
9452 // Methods:
9453 bool AddManualResource(Resource);
9454 bool AddPackageFile(PackageFile, uint = M_MAX_UNSIGNED);
9455 bool AddPackageFile(const String&, uint = M_MAX_UNSIGNED);
9456 bool AddResourceDir(const String&, uint = M_MAX_UNSIGNED);
9457 bool BackgroundLoadResource(const String&, const String&, bool = true);
9458 bool Exists(const String&) const;
9459 Resource GetExistingResource(StringHash, const String&);
9460 Resource GetExistingResource(const String&, const String&);
9461 File GetFile(const String&);
9462 String GetPreferredResourceDir(const String&) const;
9463 Resource GetResource(StringHash, const String&, bool = true);
9464 Resource GetResource(const String&, const String&, bool = true);
9465 String GetResourceFileName(const String&) const;
9466 Array<Resource> GetResources(StringHash);
9467 Array<Resource> GetResources(const String&);
9468 bool HasSubscribedToEvent(Object, const String&);
9469 bool HasSubscribedToEvent(const String&);
9470 void ReleaseAllResources(bool = false);
9471 void ReleaseResource(const String&, const String&, bool = false);
9472 void ReleaseResources(StringHash, bool = false);
9473 void ReleaseResources(const String&, bool = false);
9474 void ReleaseResources(const String&, const String&, bool = false);
9475 bool ReloadResource(Resource);
9476 void ReloadResourceWithDependencies(const String&);
9477 void RemovePackageFile(PackageFile, bool = true, bool = false);
9478 void RemovePackageFile(const String&, bool = true, bool = false);
9479 void RemoveResourceDir(const String&);
9480 String SanitateResourceDirName(const String&) const;
9481 String SanitateResourceName(const String&) const;
9482 void SendEvent(const String&, VariantMap& = VariantMap ( ));
9483 
9484 // Properties:
9485 bool autoReloadResources;
9486 /* readonly */
9487 String category;
9488 int finishBackgroundResourcesMs;
9489 Array<uint64> memoryBudget;
9490 /* readonly */
9491 Array<uint64> memoryUse;
9492 /* readonly */
9493 uint numBackgroundLoadResources;
9494 /* readonly */
9495 Array<PackageFile> packageFiles;
9496 /* readonly */
9497 int refs;
9498 /* readonly */
9499 Array<String> resourceDirs;
9500 bool returnFailedResources;
9501 /* readonly */
9502 bool seachPackagesFirst;
9503 /* writeonly */
9504 bool searchPackagesFirst;
9505 /* readonly */
9506 uint64 totalMemoryUse;
9507 /* readonly */
9508 StringHash type;
9509 /* readonly */
9510 String typeName;
9511 /* readonly */
9512 int weakRefs;
9513 };
9514 
9515 class ResourceRef
9516 {
9517 public:
9518 ~ResourceRef();
9519 ResourceRef();
9520 ResourceRef(const ResourceRef&in);
9521 ResourceRef(const String&in, const String&in);
9522 
9523 // Properties:
9524 String name;
9525 StringHash type;
9526 };
9527 
9528 class ResourceRefList
9529 {
9530 public:
9531 ~ResourceRefList();
9532 ResourceRefList();
9533 ResourceRefList(const ResourceRefList&in);
9534 // Methods:
9535 void Resize(uint);
9536 
9537 // Properties:
9538 /* readonly */
9539 bool empty;
9540 /* readonly */
9541 uint length;
9542 Array<String> names;
9543 StringHash type;
9544 };
9545 
9546 class RibbonTrail
9547 {
9548 public:
9549 // Methods:
9550 void ApplyAttributes();
9551 void Commit();
9552 void DrawDebugGeometry(DebugRenderer, bool);
9553 Variant GetAttribute(const String&) const;
9554 ValueAnimation GetAttributeAnimation(const String&) const;
9555 float GetAttributeAnimationSpeed(const String&) const;
9556 float GetAttributeAnimationTime(const String&) const;
9557 WrapMode GetAttributeAnimationWrapMode(const String&) const;
9558 Variant GetAttributeDefault(const String&) const;
9559 bool GetInterceptNetworkUpdate(const String&) const;
9560 bool HasSubscribedToEvent(Object, const String&);
9561 bool HasSubscribedToEvent(const String&);
9562 bool IsInView(Camera) const;
9563 bool Load(File, bool = false);
9564 bool Load(VectorBuffer&, bool = false);
9565 bool LoadJSON(const JSONValue&, bool = false);
9566 bool LoadXML(const XMLElement&, bool = false);
9567 void MarkNetworkUpdate() const;
9568 void Remove();
9569 void RemoveAttributeAnimation(const String&);
9570 void RemoveInstanceDefault();
9571 void RemoveObjectAnimation();
9572 void ResetToDefault();
9573 bool Save(File) const;
9574 bool Save(VectorBuffer&) const;
9575 bool SaveJSON(JSONValue&) const;
9576 bool SaveXML(XMLElement&) const;
9577 void SendEvent(const String&, VariantMap& = VariantMap ( ));
9578 void SetAnimationTime(float);
9579 bool SetAttribute(const String&, const Variant&);
9580 void SetAttributeAnimation(const String&, ValueAnimation, WrapMode = WM_LOOP, float = 1.0f);
9581 void SetAttributeAnimationSpeed(const String&, float);
9582 void SetAttributeAnimationTime(const String&, float);
9583 void SetAttributeAnimationWrapMode(const String&, WrapMode);
9584 void SetInterceptNetworkUpdate(const String&, bool);
9585 
9586 // Properties:
9587 bool animationEnabled;
9588 float animationLodBias;
9589 /* readonly */
9590 Array<Variant> attributeDefaults;
9591 /* readonly */
9592 Array<AttributeInfo> attributeInfos;
9593 Array<Variant> attributes;
9594 /* readonly */
9595 BoundingBox boundingBox;
9596 bool castShadows;
9597 /* readonly */
9598 String category;
9599 float drawDistance;
9600 bool emitting;
9601 bool enabled;
9602 /* readonly */
9603 bool enabledEffective;
9604 Color endColor;
9605 float endScale;
9606 /* readonly */
9607 uint id;
9608 /* readonly */
9609 bool inView;
9610 float lifetime;
9611 uint lightMask;
9612 float lodBias;
9613 Material material;
9614 uint maxLights;
9615 /* readonly */
9616 Node node;
9617 /* readonly */
9618 uint numAttributes;
9619 ObjectAnimation objectAnimation;
9620 bool occludee;
9621 bool occluder;
9622 /* readonly */
9623 int refs;
9624 float shadowDistance;
9625 uint shadowMask;
9626 bool sorted;
9627 Color startColor;
9628 float startScale;
9629 uint tailColumn;
9630 bool temporary;
9631 TrailType trailType;
9632 /* readonly */
9633 StringHash type;
9634 /* readonly */
9635 String typeName;
9636 bool updateInvisible;
9637 float vertexDistance;
9638 uint viewMask;
9639 /* readonly */
9640 int weakRefs;
9641 float width;
9642 /* readonly */
9643 BoundingBox worldBoundingBox;
9644 /* readonly */
9645 Zone zone;
9646 uint zoneMask;
9647 };
9648 
9649 class RigidBody
9650 {
9651 public:
9652 // Methods:
9653 void Activate();
9654 void ApplyAttributes();
9655 void ApplyForce(const Vector3&);
9656 void ApplyForce(const Vector3&, const Vector3&);
9657 void ApplyImpulse(const Vector3&);
9658 void ApplyImpulse(const Vector3&, const Vector3&);
9659 void ApplyTorque(const Vector3&);
9660 void ApplyTorqueImpulse(const Vector3&);
9661 void DisableMassUpdate();
9662 void DrawDebugGeometry(DebugRenderer, bool);
9663 void EnableMassUpdate();
9664 Variant GetAttribute(const String&) const;
9665 ValueAnimation GetAttributeAnimation(const String&) const;
9666 float GetAttributeAnimationSpeed(const String&) const;
9667 float GetAttributeAnimationTime(const String&) const;
9668 WrapMode GetAttributeAnimationWrapMode(const String&) const;
9669 Variant GetAttributeDefault(const String&) const;
9670 bool GetInterceptNetworkUpdate(const String&) const;
9671 Vector3 GetVelocityAtPoint(const Vector3&) const;
9672 bool HasSubscribedToEvent(Object, const String&);
9673 bool HasSubscribedToEvent(const String&);
9674 bool Load(File, bool = false);
9675 bool Load(VectorBuffer&, bool = false);
9676 bool LoadJSON(const JSONValue&, bool = false);
9677 bool LoadXML(const XMLElement&, bool = false);
9678 void MarkNetworkUpdate() const;
9679 void ReAddBodyToWorld();
9680 void Remove();
9681 void RemoveAttributeAnimation(const String&);
9682 void RemoveInstanceDefault();
9683 void RemoveObjectAnimation();
9684 void ResetForces();
9685 void ResetToDefault();
9686 bool Save(File) const;
9687 bool Save(VectorBuffer&) const;
9688 bool SaveJSON(JSONValue&) const;
9689 bool SaveXML(XMLElement&) const;
9690 void SendEvent(const String&, VariantMap& = VariantMap ( ));
9691 void SetAnimationTime(float);
9692 bool SetAttribute(const String&, const Variant&);
9693 void SetAttributeAnimation(const String&, ValueAnimation, WrapMode = WM_LOOP, float = 1.0f);
9694 void SetAttributeAnimationSpeed(const String&, float);
9695 void SetAttributeAnimationTime(const String&, float);
9696 void SetAttributeAnimationWrapMode(const String&, WrapMode);
9697 void SetCollisionLayerAndMask(uint, uint);
9698 void SetInterceptNetworkUpdate(const String&, bool);
9699 void SetTransform(const Vector3&, const Quaternion&);
9700 
9701 // Properties:
9702 /* readonly */
9703 bool active;
9704 float angularDamping;
9705 Vector3 angularFactor;
9706 float angularRestThreshold;
9707 Vector3 angularVelocity;
9708 bool animationEnabled;
9709 Vector3 anisotropicFriction;
9710 /* readonly */
9711 Array<Variant> attributeDefaults;
9712 /* readonly */
9713 Array<AttributeInfo> attributeInfos;
9714 Array<Variant> attributes;
9715 /* readonly */
9716 String category;
9717 float ccdMotionThreshold;
9718 float ccdRadius;
9719 /* readonly */
9720 Vector3 centerOfMass;
9721 /* readonly */
9722 Array<RigidBody> collidingBodies;
9723 CollisionEventMode collisionEventMode;
9724 uint collisionLayer;
9725 uint collisionMask;
9726 float contactProcessingThreshold;
9727 bool enabled;
9728 /* readonly */
9729 bool enabledEffective;
9730 float friction;
9731 Vector3 gravityOverride;
9732 /* readonly */
9733 uint id;
9734 bool kinematic;
9735 float linearDamping;
9736 Vector3 linearFactor;
9737 float linearRestThreshold;
9738 Vector3 linearVelocity;
9739 float mass;
9740 /* readonly */
9741 Node node;
9742 /* readonly */
9743 uint numAttributes;
9744 ObjectAnimation objectAnimation;
9745 Vector3 position;
9746 /* readonly */
9747 int refs;
9748 float restitution;
9749 float rollingFriction;
9750 Quaternion rotation;
9751 bool temporary;
9752 bool trigger;
9753 /* readonly */
9754 StringHash type;
9755 /* readonly */
9756 String typeName;
9757 bool useGravity;
9758 /* readonly */
9759 int weakRefs;
9760 };
9761 
9762 class RigidBody2D
9763 {
9764 public:
9765 // Methods:
9766 void ApplyAngularImpulse(float, bool);
9767 void ApplyAttributes();
9768 void ApplyForce(const Vector2&, const Vector2&, bool);
9769 void ApplyForceToCenter(const Vector2&, bool);
9770 void ApplyLinearImpulse(const Vector2&, const Vector2&, bool);
9771 void ApplyLinearImpulseToCenter(const Vector2&, bool);
9772 void ApplyTorque(float, bool);
9773 void DrawDebugGeometry(DebugRenderer, bool);
9774 Variant GetAttribute(const String&) const;
9775 ValueAnimation GetAttributeAnimation(const String&) const;
9776 float GetAttributeAnimationSpeed(const String&) const;
9777 float GetAttributeAnimationTime(const String&) const;
9778 WrapMode GetAttributeAnimationWrapMode(const String&) const;
9779 Variant GetAttributeDefault(const String&) const;
9780 bool GetInterceptNetworkUpdate(const String&) const;
9781 bool HasSubscribedToEvent(Object, const String&);
9782 bool HasSubscribedToEvent(const String&);
9783 bool Load(File, bool = false);
9784 bool Load(VectorBuffer&, bool = false);
9785 bool LoadJSON(const JSONValue&, bool = false);
9786 bool LoadXML(const XMLElement&, bool = false);
9787 void MarkNetworkUpdate() const;
9788 void Remove();
9789 void RemoveAttributeAnimation(const String&);
9790 void RemoveInstanceDefault();
9791 void RemoveObjectAnimation();
9792 void ResetToDefault();
9793 bool Save(File) const;
9794 bool Save(VectorBuffer&) const;
9795 bool SaveJSON(JSONValue&) const;
9796 bool SaveXML(XMLElement&) const;
9797 void SendEvent(const String&, VariantMap& = VariantMap ( ));
9798 void SetAnimationTime(float);
9799 bool SetAttribute(const String&, const Variant&);
9800 void SetAttributeAnimation(const String&, ValueAnimation, WrapMode = WM_LOOP, float = 1.0f);
9801 void SetAttributeAnimationSpeed(const String&, float);
9802 void SetAttributeAnimationTime(const String&, float);
9803 void SetAttributeAnimationWrapMode(const String&, WrapMode);
9804 void SetInterceptNetworkUpdate(const String&, bool);
9805 
9806 // Properties:
9807 bool allowSleep;
9808 float angularDamping;
9809 bool animationEnabled;
9810 /* readonly */
9811 Array<Variant> attributeDefaults;
9812 /* readonly */
9813 Array<AttributeInfo> attributeInfos;
9814 Array<Variant> attributes;
9815 bool awake;
9816 BodyType2D bodyType;
9817 bool bullet;
9818 /* readonly */
9819 String category;
9820 bool enabled;
9821 /* readonly */
9822 bool enabledEffective;
9823 bool fixedRotation;
9824 float gravityScale;
9825 /* readonly */
9826 uint id;
9827 float inertia;
9828 float linearDamping;
9829 Vector2 linearVelocity;
9830 float mass;
9831 Vector2 massCenter;
9832 /* readonly */
9833 Node node;
9834 /* readonly */
9835 uint numAttributes;
9836 ObjectAnimation objectAnimation;
9837 /* readonly */
9838 int refs;
9839 bool temporary;
9840 /* readonly */
9841 StringHash type;
9842 /* readonly */
9843 String typeName;
9844 bool useFixtureMass;
9845 /* readonly */
9846 int weakRefs;
9847 };
9848 
9849 class Scene
9850 {
9851 public:
9852 Scene();
9853 Scene(const String&in);
9854 // Methods:
9855 void AddChild(Node, uint = M_MAX_UNSIGNED);
9856 void AddRequiredPackageFile(PackageFile);
9857 void AddTag(const String&);
9858 void AddTags(const String&, int8 = ';');
9859 void ApplyAttributes();
9860 void Clear(bool = true, bool = true);
9861 void ClearRequiredPackageFiles();
9862 Component CloneComponent(Component, CreateMode, uint = 0);
9863 Component CloneComponent(Component, uint = 0);
9864 Node CreateChild(const String& = String ( ), CreateMode = REPLICATED, uint = 0, bool = false);
9865 Component CreateComponent(const String&, CreateMode = REPLICATED, uint = 0);
9866 ScriptObject CreateScriptObject(ScriptFile, const String&, CreateMode = REPLICATED);
9867 ScriptObject CreateScriptObject(const String&, const String&, CreateMode = REPLICATED);
9868 Node CreateTemporaryChild(const String& = String ( ), CreateMode = REPLICATED, uint = 0);
9869 Variant GetAttribute(const String&) const;
9870 ValueAnimation GetAttributeAnimation(const String&) const;
9871 float GetAttributeAnimationSpeed(const String&) const;
9872 float GetAttributeAnimationTime(const String&) const;
9873 WrapMode GetAttributeAnimationWrapMode(const String&) const;
9874 Variant GetAttributeDefault(const String&) const;
9875 Node GetChild(const String&, bool = false) const;
9876 Array<Node> GetChildren(bool = false) const;
9877 Array<Node> GetChildrenWithComponent(const String&, bool = false) const;
9878 Array<Node> GetChildrenWithScript(bool = false) const;
9879 Array<Node> GetChildrenWithScript(const String&, bool = false) const;
9880 Array<Node> GetChildrenWithTag(const String&, bool = false) const;
9881 Component GetComponent(const String&, bool = false) const;
9882 Component GetComponent(uint) const;
9883 Array<Component> GetComponents() const;
9884 Array<Component> GetComponents(const String&, bool = false) const;
9885 bool GetInterceptNetworkUpdate(const String&) const;
9886 Node GetNode(uint) const;
9887 Array<Node> GetNodesWithTag(const String&) const;
9888 Component GetOrCreateComponent(const String&, CreateMode = REPLICATED, uint = 0);
9889 Component GetParentComponent(const String&, bool = false) const;
9890 ScriptObject GetScriptObject() const;
9891 ScriptObject GetScriptObject(const String&) const;
9892 bool HasComponent(const String&) const;
9893 bool HasSubscribedToEvent(Object, const String&);
9894 bool HasSubscribedToEvent(const String&);
9895 bool HasTag(const String&);
9896 Node Instantiate(File, const Vector3&, const Quaternion&, CreateMode = REPLICATED);
9897 Node Instantiate(VectorBuffer&, const Vector3&, const Quaternion&, CreateMode = REPLICATED);
9898 Node InstantiateJSON(File, const Vector3&, const Quaternion&, CreateMode = REPLICATED);
9899 Node InstantiateJSON(JSONFile, const Vector3&, const Quaternion&, CreateMode = REPLICATED);
9900 Node InstantiateJSON(VectorBuffer&, const Vector3&, const Quaternion&, CreateMode = REPLICATED);
9901 Node InstantiateJSON(const JSONValue&, const Vector3&, const Quaternion&, CreateMode = REPLICATED);
9902 Node InstantiateXML(File, const Vector3&, const Quaternion&, CreateMode = REPLICATED);
9903 Node InstantiateXML(VectorBuffer&, const Vector3&, const Quaternion&, CreateMode = REPLICATED);
9904 Node InstantiateXML(XMLFile, const Vector3&, const Quaternion&, CreateMode = REPLICATED);
9905 Node InstantiateXML(const XMLElement&, const Vector3&, const Quaternion&, CreateMode = REPLICATED);
9906 bool IsChildOf(Node) const;
9907 bool Load(File, bool = false);
9908 bool Load(VectorBuffer&, bool = false);
9909 bool LoadAsync(File, LoadMode = LOAD_SCENE_AND_RESOURCES);
9910 bool LoadAsyncXML(File, LoadMode = LOAD_SCENE_AND_RESOURCES);
9911 bool LoadJSON(File);
9912 bool LoadJSON(VectorBuffer&);
9913 bool LoadJSON(const JSONValue&, bool = false);
9914 bool LoadXML(File);
9915 bool LoadXML(VectorBuffer&);
9916 bool LoadXML(const XMLElement&, bool = false);
9917 Vector3 LocalToWorld(const Vector3&) const;
9918 Vector3 LocalToWorld(const Vector4&) const;
9919 Vector2 LocalToWorld2D(const Vector2&) const;
9920 bool LookAt(const Vector3&, const Vector3& = Vector3 ( 0 , 1 , 0 ), TransformSpace = TS_WORLD);
9921 void MarkNetworkUpdate() const;
9922 void Pitch(float, TransformSpace = TS_LOCAL);
9923 void RegisterVar(const String&);
9924 void Remove();
9925 void RemoveAllChildren();
9926 void RemoveAllComponents();
9927 void RemoveAllTags();
9928 void RemoveAttributeAnimation(const String&);
9929 void RemoveChild(Node);
9930 void RemoveChildren(bool, bool, bool);
9931 void RemoveComponent(Component);
9932 void RemoveComponent(const String&);
9933 void RemoveComponents(bool, bool);
9934 void RemoveComponents(const String&);
9935 void RemoveInstanceDefault();
9936 void RemoveObjectAnimation();
9937 bool RemoveTag(const String&);
9938 void ReorderComponent(Component, uint);
9939 void ResetToDefault();
9940 void Roll(float, TransformSpace = TS_LOCAL);
9941 void Rotate(const Quaternion&, TransformSpace = TS_LOCAL);
9942 void Rotate2D(float, TransformSpace = TS_LOCAL);
9943 void RotateAround(const Vector3&, const Quaternion&, TransformSpace = TS_LOCAL);
9944 void RotateAround2D(const Vector2&, float, TransformSpace = TS_LOCAL);
9945 bool Save(File) const;
9946 bool Save(VectorBuffer&) const;
9947 bool SaveJSON(File, const String& = "\t");
9948 bool SaveJSON(JSONValue&) const;
9949 bool SaveJSON(VectorBuffer&, const String& = "\t");
9950 bool SaveXML(File, const String& = "\t");
9951 bool SaveXML(VectorBuffer&, const String& = "\t");
9952 bool SaveXML(XMLElement&) const;
9953 void Scale(const Vector3&);
9954 void Scale(float);
9955 void Scale2D(const Vector2&);
9956 void SendEvent(const String&, VariantMap& = VariantMap ( ));
9957 void SetAnimationTime(float);
9958 bool SetAttribute(const String&, const Variant&);
9959 void SetAttributeAnimation(const String&, ValueAnimation, WrapMode = WM_LOOP, float = 1.0f);
9960 void SetAttributeAnimationSpeed(const String&, float);
9961 void SetAttributeAnimationTime(const String&, float);
9962 void SetAttributeAnimationWrapMode(const String&, WrapMode);
9963 void SetInterceptNetworkUpdate(const String&, bool);
9964 void SetPosition2D(float, float);
9965 void SetScale(float);
9966 void SetScale2D(float, float);
9967 void SetTransform(const Matrix3x4&);
9968 void SetTransform(const Vector3&, const Quaternion&);
9969 void SetTransform(const Vector3&, const Quaternion&, const Vector3&);
9970 void SetTransform(const Vector3&, const Quaternion&, float);
9971 void SetTransform2D(const Vector2&, float);
9972 void SetTransform2D(const Vector2&, float, const Vector2&);
9973 void SetTransform2D(const Vector2&, float, float);
9974 void SetWorldTransform(const Vector3&, const Quaternion&);
9975 void SetWorldTransform(const Vector3&, const Quaternion&, const Vector3&);
9976 void SetWorldTransform(const Vector3&, const Quaternion&, float);
9977 void SetWorldTransform2D(const Vector2&, float);
9978 void SetWorldTransform2D(const Vector2&, float, const Vector2&);
9979 void SetWorldTransform2D(const Vector2&, float, float);
9980 void StopAsyncLoading();
9981 const String& GetVarName(StringHash) const;
9982 void Translate(const Vector3&, TransformSpace = TS_LOCAL);
9983 void Translate2D(const Vector2&, TransformSpace = TS_LOCAL);
9984 void UnregisterAllVars(const String&);
9985 void UnregisterVar(const String&);
9986 void Update(float);
9987 Vector3 WorldToLocal(const Vector3&) const;
9988 Vector3 WorldToLocal(const Vector4&) const;
9989 Vector2 WorldToLocal2D(const Vector2&) const;
9990 void Yaw(float, TransformSpace = TS_LOCAL);
9991 
9992 // Properties:
9993 /* readonly */
9994 Array<Node> allChildrenByName;
9995 bool animationEnabled;
9996 /* readonly */
9997 LoadMode asyncLoadMode;
9998 /* readonly */
9999 bool asyncLoading;
10000 int asyncLoadingMs;
10001 /* readonly */
10002 float asyncProgress;
10003 /* readonly */
10004 Array<Variant> attributeDefaults;
10005 /* readonly */
10006 Array<AttributeInfo> attributeInfos;
10007 Array<Variant> attributes;
10008 /* readonly */
10009 String category;
10010 /* readonly */
10011 uint checksum;
10012 /* readonly */
10013 Array<Node> children;
10014 /* readonly */
10015 Array<Node> childrenByName;
10016 /* readonly */
10017 Array<Component> components;
10018 /* readonly */
10019 DebugRenderer debugRenderer;
10020 Vector3 direction;
10021 float elapsedTime;
10022 /* readonly */
10023 String fileName;
10024 uint id;
10025 String name;
10026 /* readonly */
10027 uint numAllChildren;
10028 /* readonly */
10029 uint numAttributes;
10030 /* readonly */
10031 uint numChildren;
10032 /* readonly */
10033 uint numComponents;
10034 ObjectAnimation objectAnimation;
10035 /* readonly */
10036 Octree octree;
10037 Node parent;
10038 /* readonly */
10039 PhysicsWorld physicsWorld;
10040 /* readonly */
10041 PhysicsWorld2D physicsWorld2D;
10042 Vector3 position;
10043 Vector2 position2D;
10044 /* readonly */
10045 int refs;
10046 /* readonly */
10047 Array<PackageFile> requiredPackageFiles;
10048 /* readonly */
10049 Vector3 right;
10050 Quaternion rotation;
10051 float rotation2D;
10052 Vector3 scale;
10053 Vector2 scale2D;
10054 /* readonly */
10055 ScriptObject scriptObject;
10056 /* readonly */
10057 Vector3 signedWorldScale;
10058 float smoothingConstant;
10059 float snapThreshold;
10060 /* readonly */
10061 Array<String> tags;
10062 bool temporary;
10063 float timeScale;
10064 /* readonly */
10065 Matrix3x4 transform;
10066 /* readonly */
10067 StringHash type;
10068 /* readonly */
10069 String typeName;
10070 /* readonly */
10071 Vector3 up;
10072 bool updateEnabled;
10073 /* readonly */
10074 VariantMap vars;
10075 /* readonly */
10076 int weakRefs;
10077 Vector3 worldDirection;
10078 Vector3 worldPosition;
10079 Vector2 worldPosition2D;
10080 /* readonly */
10081 Vector3 worldRight;
10082 Quaternion worldRotation;
10083 float worldRotation2D;
10084 Vector3 worldScale;
10085 Vector2 worldScale2D;
10086 /* readonly */
10087 Matrix3x4 worldTransform;
10088 /* readonly */
10089 Vector3 worldUp;
10090 };
10091 
10092 class Script
10093 {
10094 public:
10095 // Methods:
10096 void DumpAPI(DumpMode = DOXYGEN, const String& = String ( ));
10097 bool Execute(const String&);
10098 bool HasSubscribedToEvent(Object, const String&);
10099 bool HasSubscribedToEvent(const String&);
10100 void SendEvent(const String&, VariantMap& = VariantMap ( ));
10101 
10102 // Properties:
10103 /* readonly */
10104 String category;
10105 Scene defaultScene;
10106 ScriptFile defaultScriptFile;
10107 bool executeConsoleCommands;
10108 /* readonly */
10109 int refs;
10110 /* readonly */
10111 StringHash type;
10112 /* readonly */
10113 String typeName;
10114 /* readonly */
10115 int weakRefs;
10116 };
10117 
10118 class ScriptFile
10119 {
10120 public:
10121 ScriptFile();
10122 ScriptFile(const String&in);
10123 // Methods:
10124 void ClearDelayedExecute(const String& = String ( ));
10125 void DelayedExecute(float, bool, const String&, const Array<Variant> = null);
10126 bool Execute(const String&, const Array<Variant> = null);
10127 bool HasSubscribedToEvent(Object, const String&);
10128 bool HasSubscribedToEvent(const String&);
10129 bool Load(File);
10130 bool Load(VectorBuffer&);
10131 bool Load(const String&);
10132 bool Save(File) const;
10133 bool Save(VectorBuffer&) const;
10134 bool Save(const String&) const;
10135 void SendEvent(const String&, VariantMap& = VariantMap ( ));
10136 
10137 // Properties:
10138 /* readonly */
10139 String category;
10140 /* readonly */
10141 bool compiled;
10142 /* readonly */
10143 uint memoryUse;
10144 String name;
10145 /* readonly */
10146 int refs;
10147 /* readonly */
10148 StringHash type;
10149 /* readonly */
10150 String typeName;
10151 /* readonly */
10152 uint useTimer;
10153 /* readonly */
10154 int weakRefs;
10155 };
10156 
10157 class ScriptInstance
10158 {
10159 public:
10160 // Methods:
10161 void ApplyAttributes();
10162 void ClearDelayedExecute(const String& = String ( ));
10163 bool CreateObject(ScriptFile, const String&);
10164 void DelayedExecute(float, bool, const String&, const Array<Variant> = null);
10165 void DrawDebugGeometry(DebugRenderer, bool);
10166 bool Execute(const String&, const Array<Variant> = null);
10167 Variant GetAttribute(const String&) const;
10168 ValueAnimation GetAttributeAnimation(const String&) const;
10169 float GetAttributeAnimationSpeed(const String&) const;
10170 float GetAttributeAnimationTime(const String&) const;
10171 WrapMode GetAttributeAnimationWrapMode(const String&) const;
10172 Variant GetAttributeDefault(const String&) const;
10173 bool GetInterceptNetworkUpdate(const String&) const;
10174 bool HasMethod(const String&) const;
10175 bool HasSubscribedToEvent(Object, const String&);
10176 bool HasSubscribedToEvent(const String&);
10177 bool IsA(const String&) const;
10178 bool Load(File, bool = false);
10179 bool Load(VectorBuffer&, bool = false);
10180 bool LoadJSON(const JSONValue&, bool = false);
10181 bool LoadXML(const XMLElement&, bool = false);
10182 void MarkNetworkUpdate() const;
10183 void Remove();
10184 void RemoveAttributeAnimation(const String&);
10185 void RemoveInstanceDefault();
10186 void RemoveObjectAnimation();
10187 void ResetToDefault();
10188 bool Save(File) const;
10189 bool Save(VectorBuffer&) const;
10190 bool SaveJSON(JSONValue&) const;
10191 bool SaveXML(XMLElement&) const;
10192 void SendEvent(const String&, VariantMap& = VariantMap ( ));
10193 void SetAnimationTime(float);
10194 bool SetAttribute(const String&, const Variant&);
10195 void SetAttributeAnimation(const String&, ValueAnimation, WrapMode = WM_LOOP, float = 1.0f);
10196 void SetAttributeAnimationSpeed(const String&, float);
10197 void SetAttributeAnimationTime(const String&, float);
10198 void SetAttributeAnimationWrapMode(const String&, WrapMode);
10199 void SetInterceptNetworkUpdate(const String&, bool);
10200 
10201 // Properties:
10202 bool animationEnabled;
10203 /* readonly */
10204 Array<Variant> attributeDefaults;
10205 /* readonly */
10206 Array<AttributeInfo> attributeInfos;
10207 Array<Variant> attributes;
10208 /* readonly */
10209 String category;
10210 String className;
10211 bool enabled;
10212 /* readonly */
10213 bool enabledEffective;
10214 /* readonly */
10215 uint id;
10216 /* readonly */
10217 Node node;
10218 /* readonly */
10219 uint numAttributes;
10220 ObjectAnimation objectAnimation;
10221 /* readonly */
10222 int refs;
10223 ScriptFile scriptFile;
10224 /* readonly */
10225 ScriptObject scriptObject;
10226 bool temporary;
10227 /* readonly */
10228 StringHash type;
10229 /* readonly */
10230 String typeName;
10231 /* readonly */
10232 int weakRefs;
10233 };
10234 
10235 class ScriptObject
10236 {
10237 public:
10238 };
10239 
10240 class ScrollBar
10241 {
10242 public:
10243 ScrollBar();
10244 ScrollBar(const String&in);
10245 // Methods:
10246 void AddChild(UIElement);
10247 void AddTag(const String&);
10248 void AddTags(const String&, int8 = ';');
10249 void ApplyAttributes();
10250 void BringToFront();
10251 void ChangeValue(float);
10252 UIElement CreateChild(const String&, const String& = String ( ), uint = M_MAX_UNSIGNED);
10253 void DisableLayoutUpdate();
10254 IntVector2 ElementToScreen(const IntVector2&);
10255 void EnableLayoutUpdate();
10256 uint FindChild(UIElement) const;
10257 Variant GetAttribute(const String&) const;
10258 ValueAnimation GetAttributeAnimation(const String&) const;
10259 float GetAttributeAnimationSpeed(const String&) const;
10260 float GetAttributeAnimationTime(const String&) const;
10261 WrapMode GetAttributeAnimationWrapMode(const String&) const;
10262 Variant GetAttributeDefault(const String&) const;
10263 UIElement GetChild(const String&, bool = false) const;
10264 UIElement GetChild(const StringHash&, const Variant& = Variant ( ), bool = false) const;
10265 Array<UIElement> GetChildren(bool = false) const;
10266 Array<UIElement> GetChildrenWithTag(const String&, bool = false) const;
10267 UIElement GetElementEventSender() const;
10268 bool GetInterceptNetworkUpdate(const String&) const;
10269 uint GetNumChildren(bool) const;
10270 bool HasSubscribedToEvent(Object, const String&);
10271 bool HasSubscribedToEvent(const String&);
10272 bool HasTag(const String&) const;
10273 void InsertChild(uint, UIElement);
10274 bool IsInside(IntVector2, bool);
10275 bool IsInsideCombined(IntVector2, bool);
10276 bool Load(File, bool = false);
10277 bool Load(VectorBuffer&, bool = false);
10278 UIElement LoadChildXML(XMLFile, XMLFile = null);
10279 UIElement LoadChildXML(const XMLElement&, XMLFile = null, bool = false);
10280 bool LoadJSON(const JSONValue&, bool = false);
10281 bool LoadXML(File);
10282 bool LoadXML(VectorBuffer&);
10283 bool LoadXML(XMLFile, XMLFile);
10284 bool LoadXML(const XMLElement&, XMLFile, bool = false);
10285 bool LoadXML(const XMLElement&, bool = false);
10286 void MarkNetworkUpdate() const;
10287 void Remove();
10288 void RemoveAllChildren();
10289 void RemoveAllTags();
10290 void RemoveAttributeAnimation(const String&);
10291 void RemoveChild(UIElement, uint = 0);
10292 void RemoveChild(uint);
10293 void RemoveInstanceDefault();
10294 void RemoveObjectAnimation();
10295 bool RemoveTag(const String&);
10296 void ResetDeepEnabled();
10297 void ResetToDefault();
10298 bool Save(File) const;
10299 bool Save(VectorBuffer&) const;
10300 bool SaveJSON(JSONValue&) const;
10301 bool SaveXML(File, const String& = "\t");
10302 bool SaveXML(VectorBuffer&, const String& = "\t");
10303 bool SaveXML(XMLElement&) const;
10304 IntVector2 ScreenToElement(const IntVector2&);
10305 void SendEvent(const String&, VariantMap& = VariantMap ( ));
10306 void SetAlignment(HorizontalAlignment, VerticalAlignment);
10307 void SetAnimationTime(float);
10308 bool SetAttribute(const String&, const Variant&);
10309 void SetAttributeAnimation(const String&, ValueAnimation, WrapMode = WM_LOOP, float = 1.0f);
10310 void SetAttributeAnimationSpeed(const String&, float);
10311 void SetAttributeAnimationTime(const String&, float);
10312 void SetAttributeAnimationWrapMode(const String&, WrapMode);
10313 void SetDeepEnabled(bool);
10314 void SetEnabledRecursive(bool);
10315 void SetFixedHeight(int);
10316 void SetFixedSize(int, int);
10317 void SetFixedWidth(int);
10318 void SetInterceptNetworkUpdate(const String&, bool);
10319 void SetLayout(LayoutMode, int = 0, const IntRect& = IntRect ( 0 , 0 , 0 , 0 ));
10320 void SetMaxAnchor(float, float);
10321 void SetMaxSize(int, int);
10322 void SetMinAnchor(float, float);
10323 void SetMinSize(int, int);
10324 void SetParent(UIElement, uint = M_MAX_UNSIGNED);
10325 void SetPivot(float, float);
10326 void SetPosition(int, int);
10327 void SetSize(int, int);
10328 bool SetStyle(const String&, XMLFile = null);
10329 bool SetStyle(const XMLElement&);
10330 bool SetStyleAuto(XMLFile = null);
10331 void StepBack();
10332 void StepForward();
10333 void UpdateLayout();
10334 const Variant& GetVar(const StringHash&);
10335 
10336 // Properties:
10337 bool animationEnabled;
10338 /* readonly */
10339 Array<Variant> attributeDefaults;
10340 /* readonly */
10341 Array<AttributeInfo> attributeInfos;
10342 Array<Variant> attributes;
10343 /* readonly */
10344 Button backButton;
10345 bool bringToBack;
10346 bool bringToFront;
10347 /* readonly */
10348 String category;
10349 /* readonly */
10350 IntVector2 childOffset;
10351 /* readonly */
10352 Array<UIElement> children;
10353 IntRect clipBorder;
10354 bool clipChildren;
10355 /* writeonly */
10356 Color color;
10357 /* readonly */
10358 bool colorGradient;
10359 Array<Color> colors;
10360 /* readonly */
10361 IntRect combinedScreenRect;
10362 XMLFile defaultStyle;
10363 /* readonly */
10364 float derivedOpacity;
10365 /* readonly */
10366 uint dragButtonCombo;
10367 /* readonly */
10368 int dragButtonCount;
10369 uint dragDropMode;
10370 bool editable;
10371 /* readonly */
10372 float effectiveScrollStep;
10373 bool elementEventSender;
10374 bool enableAnchor;
10375 bool enabled;
10376 /* readonly */
10377 bool enabledSelf;
10378 /* readonly */
10379 bool fixedHeight;
10380 /* readonly */
10381 bool fixedSize;
10382 /* readonly */
10383 bool fixedWidth;
10384 bool focus;
10385 FocusMode focusMode;
10386 /* readonly */
10387 Button forwardButton;
10388 int height;
10389 HorizontalAlignment horizontalAlignment;
10390 /* readonly */
10391 bool hovering;
10392 int indent;
10393 int indentSpacing;
10394 /* readonly */
10395 int indentWidth;
10396 bool internal;
10397 IntRect layoutBorder;
10398 Vector2 layoutFlexScale;
10399 LayoutMode layoutMode;
10400 int layoutSpacing;
10401 Vector2 maxAnchor;
10402 int maxHeight;
10403 IntVector2 maxOffset;
10404 IntVector2 maxSize;
10405 int maxWidth;
10406 Vector2 minAnchor;
10407 int minHeight;
10408 IntVector2 minOffset;
10409 IntVector2 minSize;
10410 int minWidth;
10411 String name;
10412 /* readonly */
10413 uint numAllChildren;
10414 /* readonly */
10415 uint numAttributes;
10416 /* readonly */
10417 uint numChildren;
10418 ObjectAnimation objectAnimation;
10419 float opacity;
10420 Orientation orientation;
10421 UIElement parent;
10422 Vector2 pivot;
10423 IntVector2 position;
10424 int priority;
10425 float range;
10426 /* readonly */
10427 int refs;
10428 /* readonly */
10429 UIElement root;
10430 /* readonly */
10431 IntVector2 screenPosition;
10432 float scrollStep;
10433 bool selected;
10434 IntVector2 size;
10435 /* readonly */
10436 Slider slider;
10437 bool sortChildren;
10438 float stepFactor;
10439 String style;
10440 /* readonly */
10441 Array<String> tags;
10442 bool temporary;
10443 TraversalMode traversalMode;
10444 /* readonly */
10445 StringHash type;
10446 /* readonly */
10447 String typeName;
10448 bool useDerivedOpacity;
10449 float value;
10450 /* readonly */
10451 VariantMap vars;
10452 VerticalAlignment verticalAlignment;
10453 bool visible;
10454 /* readonly */
10455 bool visibleEffective;
10456 /* readonly */
10457 int weakRefs;
10458 int width;
10459 };
10460 
10461 class ScrollView
10462 {
10463 public:
10464 ScrollView();
10465 ScrollView(const String&in);
10466 // Methods:
10467 void AddChild(UIElement);
10468 void AddTag(const String&);
10469 void AddTags(const String&, int8 = ';');
10470 void ApplyAttributes();
10471 void BringToFront();
10472 UIElement CreateChild(const String&, const String& = String ( ), uint = M_MAX_UNSIGNED);
10473 void DisableLayoutUpdate();
10474 IntVector2 ElementToScreen(const IntVector2&);
10475 void EnableLayoutUpdate();
10476 uint FindChild(UIElement) const;
10477 Variant GetAttribute(const String&) const;
10478 ValueAnimation GetAttributeAnimation(const String&) const;
10479 float GetAttributeAnimationSpeed(const String&) const;
10480 float GetAttributeAnimationTime(const String&) const;
10481 WrapMode GetAttributeAnimationWrapMode(const String&) const;
10482 Variant GetAttributeDefault(const String&) const;
10483 UIElement GetChild(const String&, bool = false) const;
10484 UIElement GetChild(const StringHash&, const Variant& = Variant ( ), bool = false) const;
10485 Array<UIElement> GetChildren(bool = false) const;
10486 Array<UIElement> GetChildrenWithTag(const String&, bool = false) const;
10487 UIElement GetElementEventSender() const;
10488 bool GetInterceptNetworkUpdate(const String&) const;
10489 uint GetNumChildren(bool) const;
10490 bool HasSubscribedToEvent(Object, const String&);
10491 bool HasSubscribedToEvent(const String&);
10492 bool HasTag(const String&) const;
10493 void InsertChild(uint, UIElement);
10494 bool IsInside(IntVector2, bool);
10495 bool IsInsideCombined(IntVector2, bool);
10496 bool Load(File, bool = false);
10497 bool Load(VectorBuffer&, bool = false);
10498 UIElement LoadChildXML(XMLFile, XMLFile = null);
10499 UIElement LoadChildXML(const XMLElement&, XMLFile = null, bool = false);
10500 bool LoadJSON(const JSONValue&, bool = false);
10501 bool LoadXML(File);
10502 bool LoadXML(VectorBuffer&);
10503 bool LoadXML(XMLFile, XMLFile);
10504 bool LoadXML(const XMLElement&, XMLFile, bool = false);
10505 bool LoadXML(const XMLElement&, bool = false);
10506 void MarkNetworkUpdate() const;
10507 void Remove();
10508 void RemoveAllChildren();
10509 void RemoveAllTags();
10510 void RemoveAttributeAnimation(const String&);
10511 void RemoveChild(UIElement, uint = 0);
10512 void RemoveChild(uint);
10513 void RemoveInstanceDefault();
10514 void RemoveObjectAnimation();
10515 bool RemoveTag(const String&);
10516 void ResetDeepEnabled();
10517 void ResetToDefault();
10518 bool Save(File) const;
10519 bool Save(VectorBuffer&) const;
10520 bool SaveJSON(JSONValue&) const;
10521 bool SaveXML(File, const String& = "\t");
10522 bool SaveXML(VectorBuffer&, const String& = "\t");
10523 bool SaveXML(XMLElement&) const;
10524 IntVector2 ScreenToElement(const IntVector2&);
10525 void SendEvent(const String&, VariantMap& = VariantMap ( ));
10526 void SetAlignment(HorizontalAlignment, VerticalAlignment);
10527 void SetAnimationTime(float);
10528 bool SetAttribute(const String&, const Variant&);
10529 void SetAttributeAnimation(const String&, ValueAnimation, WrapMode = WM_LOOP, float = 1.0f);
10530 void SetAttributeAnimationSpeed(const String&, float);
10531 void SetAttributeAnimationTime(const String&, float);
10532 void SetAttributeAnimationWrapMode(const String&, WrapMode);
10533 void SetDeepEnabled(bool);
10534 void SetEnabledRecursive(bool);
10535 void SetFixedHeight(int);
10536 void SetFixedSize(int, int);
10537 void SetFixedWidth(int);
10538 void SetInterceptNetworkUpdate(const String&, bool);
10539 void SetLayout(LayoutMode, int = 0, const IntRect& = IntRect ( 0 , 0 , 0 , 0 ));
10540 void SetMaxAnchor(float, float);
10541 void SetMaxSize(int, int);
10542 void SetMinAnchor(float, float);
10543 void SetMinSize(int, int);
10544 void SetParent(UIElement, uint = M_MAX_UNSIGNED);
10545 void SetPivot(float, float);
10546 void SetPosition(int, int);
10547 void SetScrollBarsVisible(bool, bool);
10548 void SetSize(int, int);
10549 bool SetStyle(const String&, XMLFile = null);
10550 bool SetStyle(const XMLElement&);
10551 bool SetStyleAuto(XMLFile = null);
10552 void SetViewPosition(int, int);
10553 void UpdateLayout();
10554 const Variant& GetVar(const StringHash&);
10555 
10556 // Properties:
10557 bool animationEnabled;
10558 /* readonly */
10559 Array<Variant> attributeDefaults;
10560 /* readonly */
10561 Array<AttributeInfo> attributeInfos;
10562 Array<Variant> attributes;
10563 bool autoDisableChildren;
10564 float autoDisableThreshold;
10565 bool bringToBack;
10566 bool bringToFront;
10567 /* readonly */
10568 String category;
10569 /* readonly */
10570 IntVector2 childOffset;
10571 /* readonly */
10572 Array<UIElement> children;
10573 IntRect clipBorder;
10574 bool clipChildren;
10575 /* writeonly */
10576 Color color;
10577 /* readonly */
10578 bool colorGradient;
10579 Array<Color> colors;
10580 /* readonly */
10581 IntRect combinedScreenRect;
10582 UIElement contentElement;
10583 XMLFile defaultStyle;
10584 /* readonly */
10585 float derivedOpacity;
10586 /* readonly */
10587 uint dragButtonCombo;
10588 /* readonly */
10589 int dragButtonCount;
10590 uint dragDropMode;
10591 bool editable;
10592 bool elementEventSender;
10593 bool enableAnchor;
10594 bool enabled;
10595 /* readonly */
10596 bool enabledSelf;
10597 /* readonly */
10598 bool fixedHeight;
10599 /* readonly */
10600 bool fixedSize;
10601 /* readonly */
10602 bool fixedWidth;
10603 bool focus;
10604 FocusMode focusMode;
10605 int height;
10606 HorizontalAlignment horizontalAlignment;
10607 /* readonly */
10608 ScrollBar horizontalScrollBar;
10609 /* readonly */
10610 bool hovering;
10611 int indent;
10612 int indentSpacing;
10613 /* readonly */
10614 int indentWidth;
10615 bool internal;
10616 IntRect layoutBorder;
10617 Vector2 layoutFlexScale;
10618 LayoutMode layoutMode;
10619 int layoutSpacing;
10620 Vector2 maxAnchor;
10621 int maxHeight;
10622 IntVector2 maxOffset;
10623 IntVector2 maxSize;
10624 int maxWidth;
10625 Vector2 minAnchor;
10626 int minHeight;
10627 IntVector2 minOffset;
10628 IntVector2 minSize;
10629 int minWidth;
10630 String name;
10631 /* readonly */
10632 uint numAllChildren;
10633 /* readonly */
10634 uint numAttributes;
10635 /* readonly */
10636 uint numChildren;
10637 ObjectAnimation objectAnimation;
10638 float opacity;
10639 float pageStep;
10640 UIElement parent;
10641 Vector2 pivot;
10642 IntVector2 position;
10643 int priority;
10644 /* readonly */
10645 int refs;
10646 /* readonly */
10647 UIElement root;
10648 /* readonly */
10649 IntVector2 screenPosition;
10650 bool scrollBarsAutoVisible;
10651 float scrollDeceleration;
10652 /* readonly */
10653 BorderImage scrollPanel;
10654 float scrollSnapEpsilon;
10655 float scrollStep;
10656 bool selected;
10657 IntVector2 size;
10658 bool sortChildren;
10659 String style;
10660 /* readonly */
10661 Array<String> tags;
10662 bool temporary;
10663 TraversalMode traversalMode;
10664 /* readonly */
10665 StringHash type;
10666 /* readonly */
10667 String typeName;
10668 bool useDerivedOpacity;
10669 /* readonly */
10670 VariantMap vars;
10671 VerticalAlignment verticalAlignment;
10672 /* readonly */
10673 ScrollBar verticalScrollBar;
10674 IntVector2 viewPosition;
10675 bool visible;
10676 /* readonly */
10677 bool visibleEffective;
10678 /* readonly */
10679 int weakRefs;
10680 int width;
10681 };
10682 
10683 class Serializable
10684 {
10685 public:
10686 // Methods:
10687 void ApplyAttributes();
10688 Variant GetAttribute(const String&) const;
10689 Variant GetAttributeDefault(const String&) const;
10690 bool GetInterceptNetworkUpdate(const String&) const;
10691 bool HasSubscribedToEvent(Object, const String&);
10692 bool HasSubscribedToEvent(const String&);
10693 bool Load(File, bool = false);
10694 bool Load(VectorBuffer&, bool = false);
10695 bool LoadJSON(const JSONValue&, bool = false);
10696 bool LoadXML(const XMLElement&, bool = false);
10697 void MarkNetworkUpdate() const;
10698 void RemoveInstanceDefault();
10699 void ResetToDefault();
10700 bool Save(File) const;
10701 bool Save(VectorBuffer&) const;
10702 bool SaveJSON(JSONValue&) const;
10703 bool SaveXML(XMLElement&) const;
10704 void SendEvent(const String&, VariantMap& = VariantMap ( ));
10705 bool SetAttribute(const String&, const Variant&);
10706 void SetInterceptNetworkUpdate(const String&, bool);
10707 
10708 // Properties:
10709 /* readonly */
10710 Array<Variant> attributeDefaults;
10711 /* readonly */
10712 Array<AttributeInfo> attributeInfos;
10713 Array<Variant> attributes;
10714 /* readonly */
10715 String category;
10716 /* readonly */
10717 uint numAttributes;
10718 /* readonly */
10719 int refs;
10720 bool temporary;
10721 /* readonly */
10722 StringHash type;
10723 /* readonly */
10724 String typeName;
10725 /* readonly */
10726 int weakRefs;
10727 };
10728 
10729 class Serializer
10730 {
10731 public:
10732 // Methods:
10733 uint Write(Array<uint8>);
10734 bool WriteBool(bool);
10735 bool WriteBoundingBox(const BoundingBox&);
10736 bool WriteByte(int8);
10737 bool WriteColor(const Color&);
10738 bool WriteDouble(double);
10739 bool WriteFileID(const String&);
10740 bool WriteFloat(float);
10741 bool WriteInt(int);
10742 bool WriteInt64(int64);
10743 bool WriteIntRect(const IntRect&);
10744 bool WriteIntVector2(const IntVector2&);
10745 bool WriteLine(const String&);
10746 bool WriteMatrix3(const Matrix3&);
10747 bool WriteMatrix3x4(const Matrix3x4&);
10748 bool WriteMatrix4(const Matrix4&);
10749 bool WriteNetID(uint);
10750 bool WritePackedQuaternion(const Quaternion&);
10751 bool WritePackedVector3(const Vector3&, float);
10752 bool WriteQuaternion(const Quaternion&);
10753 bool WriteShort(int16);
10754 bool WriteString(const String&);
10755 bool WriteStringHash(const StringHash&);
10756 bool WriteUByte(uint8);
10757 bool WriteUInt(uint);
10758 bool WriteUInt64(uint64);
10759 bool WriteUShort(uint16);
10760 bool WriteVLE(uint);
10761 bool WriteVariant(const Variant&);
10762 bool WriteVariantMap(const VariantMap&);
10763 bool WriteVector2(const Vector2&);
10764 bool WriteVector3(const Vector3&);
10765 bool WriteVector4(const Vector4&);
10766 bool WriteVectorBuffer(const VectorBuffer&);
10767 };
10768 
10769 class Skeleton
10770 {
10771 public:
10772 // Methods:
10773 Bone GetBone(const String&) const;
10774 void Reset();
10775 
10776 // Properties:
10777 /* readonly */
10778 Array<Bone> bones;
10779 /* readonly */
10780 uint numBones;
10781 /* readonly */
10782 Bone rootBone;
10783 };
10784 
10785 class Skybox
10786 {
10787 public:
10788 // Methods:
10789 void ApplyAttributes();
10790 void ApplyMaterialList(const String& = String ( ));
10791 void DrawDebugGeometry(DebugRenderer, bool);
10792 Variant GetAttribute(const String&) const;
10793 ValueAnimation GetAttributeAnimation(const String&) const;
10794 float GetAttributeAnimationSpeed(const String&) const;
10795 float GetAttributeAnimationTime(const String&) const;
10796 WrapMode GetAttributeAnimationWrapMode(const String&) const;
10797 Variant GetAttributeDefault(const String&) const;
10798 bool GetInterceptNetworkUpdate(const String&) const;
10799 bool HasSubscribedToEvent(Object, const String&);
10800 bool HasSubscribedToEvent(const String&);
10801 bool IsInView(Camera) const;
10802 bool Load(File, bool = false);
10803 bool Load(VectorBuffer&, bool = false);
10804 bool LoadJSON(const JSONValue&, bool = false);
10805 bool LoadXML(const XMLElement&, bool = false);
10806 void MarkNetworkUpdate() const;
10807 void Remove();
10808 void RemoveAttributeAnimation(const String&);
10809 void RemoveInstanceDefault();
10810 void RemoveObjectAnimation();
10811 void ResetToDefault();
10812 bool Save(File) const;
10813 bool Save(VectorBuffer&) const;
10814 bool SaveJSON(JSONValue&) const;
10815 bool SaveXML(XMLElement&) const;
10816 void SendEvent(const String&, VariantMap& = VariantMap ( ));
10817 void SetAnimationTime(float);
10818 bool SetAttribute(const String&, const Variant&);
10819 void SetAttributeAnimation(const String&, ValueAnimation, WrapMode = WM_LOOP, float = 1.0f);
10820 void SetAttributeAnimationSpeed(const String&, float);
10821 void SetAttributeAnimationTime(const String&, float);
10822 void SetAttributeAnimationWrapMode(const String&, WrapMode);
10823 void SetInterceptNetworkUpdate(const String&, bool);
10824 
10825 // Properties:
10826 bool animationEnabled;
10827 /* readonly */
10828 Array<Variant> attributeDefaults;
10829 /* readonly */
10830 Array<AttributeInfo> attributeInfos;
10831 Array<Variant> attributes;
10832 /* readonly */
10833 BoundingBox boundingBox;
10834 bool castShadows;
10835 /* readonly */
10836 String category;
10837 float drawDistance;
10838 bool enabled;
10839 /* readonly */
10840 bool enabledEffective;
10841 /* readonly */
10842 uint id;
10843 /* readonly */
10844 bool inView;
10845 uint lightMask;
10846 float lodBias;
10847 /* writeonly */
10848 Material material;
10849 Array<Material> materials;
10850 uint maxLights;
10851 Model model;
10852 /* readonly */
10853 Node node;
10854 /* readonly */
10855 uint numAttributes;
10856 /* readonly */
10857 uint numGeometries;
10858 ObjectAnimation objectAnimation;
10859 bool occludee;
10860 bool occluder;
10861 /* readonly */
10862 int refs;
10863 float shadowDistance;
10864 uint shadowMask;
10865 bool temporary;
10866 /* readonly */
10867 StringHash type;
10868 /* readonly */
10869 String typeName;
10870 uint viewMask;
10871 /* readonly */
10872 int weakRefs;
10873 /* readonly */
10874 BoundingBox worldBoundingBox;
10875 /* readonly */
10876 Zone zone;
10877 uint zoneMask;
10878 };
10879 
10880 class Slider
10881 {
10882 public:
10883 Slider();
10884 Slider(const String&in);
10885 // Methods:
10886 void AddChild(UIElement);
10887 void AddTag(const String&);
10888 void AddTags(const String&, int8 = ';');
10889 void ApplyAttributes();
10890 void BringToFront();
10891 void ChangeValue(float);
10892 UIElement CreateChild(const String&, const String& = String ( ), uint = M_MAX_UNSIGNED);
10893 void DisableLayoutUpdate();
10894 IntVector2 ElementToScreen(const IntVector2&);
10895 void EnableLayoutUpdate();
10896 uint FindChild(UIElement) const;
10897 Variant GetAttribute(const String&) const;
10898 ValueAnimation GetAttributeAnimation(const String&) const;
10899 float GetAttributeAnimationSpeed(const String&) const;
10900 float GetAttributeAnimationTime(const String&) const;
10901 WrapMode GetAttributeAnimationWrapMode(const String&) const;
10902 Variant GetAttributeDefault(const String&) const;
10903 UIElement GetChild(const String&, bool = false) const;
10904 UIElement GetChild(const StringHash&, const Variant& = Variant ( ), bool = false) const;
10905 Array<UIElement> GetChildren(bool = false) const;
10906 Array<UIElement> GetChildrenWithTag(const String&, bool = false) const;
10907 UIElement GetElementEventSender() const;
10908 bool GetInterceptNetworkUpdate(const String&) const;
10909 uint GetNumChildren(bool) const;
10910 bool HasSubscribedToEvent(Object, const String&);
10911 bool HasSubscribedToEvent(const String&);
10912 bool HasTag(const String&) const;
10913 void InsertChild(uint, UIElement);
10914 bool IsInside(IntVector2, bool);
10915 bool IsInsideCombined(IntVector2, bool);
10916 bool Load(File, bool = false);
10917 bool Load(VectorBuffer&, bool = false);
10918 UIElement LoadChildXML(XMLFile, XMLFile = null);
10919 UIElement LoadChildXML(const XMLElement&, XMLFile = null, bool = false);
10920 bool LoadJSON(const JSONValue&, bool = false);
10921 bool LoadXML(File);
10922 bool LoadXML(VectorBuffer&);
10923 bool LoadXML(XMLFile, XMLFile);
10924 bool LoadXML(const XMLElement&, XMLFile, bool = false);
10925 bool LoadXML(const XMLElement&, bool = false);
10926 void MarkNetworkUpdate() const;
10927 void Remove();
10928 void RemoveAllChildren();
10929 void RemoveAllTags();
10930 void RemoveAttributeAnimation(const String&);
10931 void RemoveChild(UIElement, uint = 0);
10932 void RemoveChild(uint);
10933 void RemoveInstanceDefault();
10934 void RemoveObjectAnimation();
10935 bool RemoveTag(const String&);
10936 void ResetDeepEnabled();
10937 void ResetToDefault();
10938 bool Save(File) const;
10939 bool Save(VectorBuffer&) const;
10940 bool SaveJSON(JSONValue&) const;
10941 bool SaveXML(File, const String& = "\t");
10942 bool SaveXML(VectorBuffer&, const String& = "\t");
10943 bool SaveXML(XMLElement&) const;
10944 IntVector2 ScreenToElement(const IntVector2&);
10945 void SendEvent(const String&, VariantMap& = VariantMap ( ));
10946 void SetAlignment(HorizontalAlignment, VerticalAlignment);
10947 void SetAnimationTime(float);
10948 bool SetAttribute(const String&, const Variant&);
10949 void SetAttributeAnimation(const String&, ValueAnimation, WrapMode = WM_LOOP, float = 1.0f);
10950 void SetAttributeAnimationSpeed(const String&, float);
10951 void SetAttributeAnimationTime(const String&, float);
10952 void SetAttributeAnimationWrapMode(const String&, WrapMode);
10953 void SetDeepEnabled(bool);
10954 void SetEnabledRecursive(bool);
10955 void SetFixedHeight(int);
10956 void SetFixedSize(int, int);
10957 void SetFixedWidth(int);
10958 void SetFullImageRect();
10959 void SetHoverOffset(int, int);
10960 void SetInterceptNetworkUpdate(const String&, bool);
10961 void SetLayout(LayoutMode, int = 0, const IntRect& = IntRect ( 0 , 0 , 0 , 0 ));
10962 void SetMaxAnchor(float, float);
10963 void SetMaxSize(int, int);
10964 void SetMinAnchor(float, float);
10965 void SetMinSize(int, int);
10966 void SetParent(UIElement, uint = M_MAX_UNSIGNED);
10967 void SetPivot(float, float);
10968 void SetPosition(int, int);
10969 void SetSize(int, int);
10970 bool SetStyle(const String&, XMLFile = null);
10971 bool SetStyle(const XMLElement&);
10972 bool SetStyleAuto(XMLFile = null);
10973 void UpdateLayout();
10974 const Variant& GetVar(const StringHash&);
10975 
10976 // Properties:
10977 bool animationEnabled;
10978 /* readonly */
10979 Array<Variant> attributeDefaults;
10980 /* readonly */
10981 Array<AttributeInfo> attributeInfos;
10982 Array<Variant> attributes;
10983 BlendMode blendMode;
10984 IntRect border;
10985 bool bringToBack;
10986 bool bringToFront;
10987 /* readonly */
10988 String category;
10989 /* readonly */
10990 IntVector2 childOffset;
10991 /* readonly */
10992 Array<UIElement> children;
10993 IntRect clipBorder;
10994 bool clipChildren;
10995 /* writeonly */
10996 Color color;
10997 /* readonly */
10998 bool colorGradient;
10999 Array<Color> colors;
11000 /* readonly */
11001 IntRect combinedScreenRect;
11002 XMLFile defaultStyle;
11003 /* readonly */
11004 float derivedOpacity;
11005 /* readonly */
11006 uint dragButtonCombo;
11007 /* readonly */
11008 int dragButtonCount;
11009 uint dragDropMode;
11010 bool editable;
11011 bool elementEventSender;
11012 bool enableAnchor;
11013 bool enabled;
11014 /* readonly */
11015 bool enabledSelf;
11016 /* readonly */
11017 bool fixedHeight;
11018 /* readonly */
11019 bool fixedSize;
11020 /* readonly */
11021 bool fixedWidth;
11022 bool focus;
11023 FocusMode focusMode;
11024 int height;
11025 HorizontalAlignment horizontalAlignment;
11026 IntVector2 hoverOffset;
11027 /* readonly */
11028 bool hovering;
11029 IntRect imageBorder;
11030 IntRect imageRect;
11031 int indent;
11032 int indentSpacing;
11033 /* readonly */
11034 int indentWidth;
11035 bool internal;
11036 /* readonly */
11037 BorderImage knob;
11038 IntRect layoutBorder;
11039 Vector2 layoutFlexScale;
11040 LayoutMode layoutMode;
11041 int layoutSpacing;
11042 Vector2 maxAnchor;
11043 int maxHeight;
11044 IntVector2 maxOffset;
11045 IntVector2 maxSize;
11046 int maxWidth;
11047 Vector2 minAnchor;
11048 int minHeight;
11049 IntVector2 minOffset;
11050 IntVector2 minSize;
11051 int minWidth;
11052 String name;
11053 /* readonly */
11054 uint numAllChildren;
11055 /* readonly */
11056 uint numAttributes;
11057 /* readonly */
11058 uint numChildren;
11059 ObjectAnimation objectAnimation;
11060 float opacity;
11061 Orientation orientation;
11062 UIElement parent;
11063 Vector2 pivot;
11064 IntVector2 position;
11065 int priority;
11066 float range;
11067 /* readonly */
11068 int refs;
11069 float repeatRate;
11070 /* readonly */
11071 UIElement root;
11072 /* readonly */
11073 IntVector2 screenPosition;
11074 bool selected;
11075 IntVector2 size;
11076 bool sortChildren;
11077 String style;
11078 /* readonly */
11079 Array<String> tags;
11080 bool temporary;
11081 Texture texture;
11082 bool tiled;
11083 TraversalMode traversalMode;
11084 /* readonly */
11085 StringHash type;
11086 /* readonly */
11087 String typeName;
11088 bool useDerivedOpacity;
11089 float value;
11090 /* readonly */
11091 VariantMap vars;
11092 VerticalAlignment verticalAlignment;
11093 bool visible;
11094 /* readonly */
11095 bool visibleEffective;
11096 /* readonly */
11097 int weakRefs;
11098 int width;
11099 };
11100 
11101 class SmoothedTransform
11102 {
11103 public:
11104 // Methods:
11105 void ApplyAttributes();
11106 void DrawDebugGeometry(DebugRenderer, bool);
11107 Variant GetAttribute(const String&) const;
11108 ValueAnimation GetAttributeAnimation(const String&) const;
11109 float GetAttributeAnimationSpeed(const String&) const;
11110 float GetAttributeAnimationTime(const String&) const;
11111 WrapMode GetAttributeAnimationWrapMode(const String&) const;
11112 Variant GetAttributeDefault(const String&) const;
11113 bool GetInterceptNetworkUpdate(const String&) const;
11114 bool HasSubscribedToEvent(Object, const String&);
11115 bool HasSubscribedToEvent(const String&);
11116 bool Load(File, bool = false);
11117 bool Load(VectorBuffer&, bool = false);
11118 bool LoadJSON(const JSONValue&, bool = false);
11119 bool LoadXML(const XMLElement&, bool = false);
11120 void MarkNetworkUpdate() const;
11121 void Remove();
11122 void RemoveAttributeAnimation(const String&);
11123 void RemoveInstanceDefault();
11124 void RemoveObjectAnimation();
11125 void ResetToDefault();
11126 bool Save(File) const;
11127 bool Save(VectorBuffer&) const;
11128 bool SaveJSON(JSONValue&) const;
11129 bool SaveXML(XMLElement&) const;
11130 void SendEvent(const String&, VariantMap& = VariantMap ( ));
11131 void SetAnimationTime(float);
11132 bool SetAttribute(const String&, const Variant&);
11133 void SetAttributeAnimation(const String&, ValueAnimation, WrapMode = WM_LOOP, float = 1.0f);
11134 void SetAttributeAnimationSpeed(const String&, float);
11135 void SetAttributeAnimationTime(const String&, float);
11136 void SetAttributeAnimationWrapMode(const String&, WrapMode);
11137 void SetInterceptNetworkUpdate(const String&, bool);
11138 void Update(float, float);
11139 
11140 // Properties:
11141 bool animationEnabled;
11142 /* readonly */
11143 Array<Variant> attributeDefaults;
11144 /* readonly */
11145 Array<AttributeInfo> attributeInfos;
11146 Array<Variant> attributes;
11147 /* readonly */
11148 String category;
11149 bool enabled;
11150 /* readonly */
11151 bool enabledEffective;
11152 /* readonly */
11153 uint id;
11154 /* readonly */
11155 bool inProgress;
11156 /* readonly */
11157 Node node;
11158 /* readonly */
11159 uint numAttributes;
11160 ObjectAnimation objectAnimation;
11161 /* readonly */
11162 int refs;
11163 Vector3 targetPosition;
11164 Quaternion targetRotation;
11165 Vector3 targetWorldPosition;
11166 Quaternion targetWorldRotation;
11167 bool temporary;
11168 /* readonly */
11169 StringHash type;
11170 /* readonly */
11171 String typeName;
11172 /* readonly */
11173 int weakRefs;
11174 };
11175 
11176 class Sound
11177 {
11178 public:
11179 Sound();
11180 Sound(const String&in);
11181 // Methods:
11182 void AddMetadata(const String&, const Variant&);
11183 bool HasSubscribedToEvent(Object, const String&);
11184 bool HasSubscribedToEvent(const String&);
11185 bool Load(File);
11186 bool Load(VectorBuffer&);
11187 bool Load(const String&);
11188 void RemoveAllMetadata();
11189 void RemoveMetadata(const String&);
11190 bool Save(File) const;
11191 bool Save(VectorBuffer&) const;
11192 bool Save(const String&) const;
11193 void SendEvent(const String&, VariantMap& = VariantMap ( ));
11194 
11195 // Properties:
11196 /* readonly */
11197 String category;
11198 /* readonly */
11199 bool compressed;
11200 /* readonly */
11201 float frequency;
11202 /* readonly */
11203 bool hasMetadata;
11204 /* readonly */
11205 float length;
11206 bool looped;
11207 /* readonly */
11208 uint memoryUse;
11209 Array<Variant> metadata;
11210 String name;
11211 /* readonly */
11212 int refs;
11213 /* readonly */
11214 uint sampleSize;
11215 /* readonly */
11216 bool sixteenBit;
11217 /* readonly */
11218 bool stereo;
11219 /* readonly */
11220 StringHash type;
11221 /* readonly */
11222 String typeName;
11223 /* readonly */
11224 uint useTimer;
11225 /* readonly */
11226 int weakRefs;
11227 };
11228 
11229 class SoundListener
11230 {
11231 public:
11232 // Methods:
11233 void ApplyAttributes();
11234 void DrawDebugGeometry(DebugRenderer, bool);
11235 Variant GetAttribute(const String&) const;
11236 ValueAnimation GetAttributeAnimation(const String&) const;
11237 float GetAttributeAnimationSpeed(const String&) const;
11238 float GetAttributeAnimationTime(const String&) const;
11239 WrapMode GetAttributeAnimationWrapMode(const String&) const;
11240 Variant GetAttributeDefault(const String&) const;
11241 bool GetInterceptNetworkUpdate(const String&) const;
11242 bool HasSubscribedToEvent(Object, const String&);
11243 bool HasSubscribedToEvent(const String&);
11244 bool Load(File, bool = false);
11245 bool Load(VectorBuffer&, bool = false);
11246 bool LoadJSON(const JSONValue&, bool = false);
11247 bool LoadXML(const XMLElement&, bool = false);
11248 void MarkNetworkUpdate() const;
11249 void Remove();
11250 void RemoveAttributeAnimation(const String&);
11251 void RemoveInstanceDefault();
11252 void RemoveObjectAnimation();
11253 void ResetToDefault();
11254 bool Save(File) const;
11255 bool Save(VectorBuffer&) const;
11256 bool SaveJSON(JSONValue&) const;
11257 bool SaveXML(XMLElement&) const;
11258 void SendEvent(const String&, VariantMap& = VariantMap ( ));
11259 void SetAnimationTime(float);
11260 bool SetAttribute(const String&, const Variant&);
11261 void SetAttributeAnimation(const String&, ValueAnimation, WrapMode = WM_LOOP, float = 1.0f);
11262 void SetAttributeAnimationSpeed(const String&, float);
11263 void SetAttributeAnimationTime(const String&, float);
11264 void SetAttributeAnimationWrapMode(const String&, WrapMode);
11265 void SetInterceptNetworkUpdate(const String&, bool);
11266 
11267 // Properties:
11268 bool animationEnabled;
11269 /* readonly */
11270 Array<Variant> attributeDefaults;
11271 /* readonly */
11272 Array<AttributeInfo> attributeInfos;
11273 Array<Variant> attributes;
11274 /* readonly */
11275 String category;
11276 bool enabled;
11277 /* readonly */
11278 bool enabledEffective;
11279 /* readonly */
11280 uint id;
11281 /* readonly */
11282 Node node;
11283 /* readonly */
11284 uint numAttributes;
11285 ObjectAnimation objectAnimation;
11286 /* readonly */
11287 int refs;
11288 bool temporary;
11289 /* readonly */
11290 StringHash type;
11291 /* readonly */
11292 String typeName;
11293 /* readonly */
11294 int weakRefs;
11295 };
11296 
11297 class SoundSource
11298 {
11299 public:
11300 SoundSource();
11301 // Methods:
11302 void ApplyAttributes();
11303 void DrawDebugGeometry(DebugRenderer, bool);
11304 Variant GetAttribute(const String&) const;
11305 ValueAnimation GetAttributeAnimation(const String&) const;
11306 float GetAttributeAnimationSpeed(const String&) const;
11307 float GetAttributeAnimationTime(const String&) const;
11308 WrapMode GetAttributeAnimationWrapMode(const String&) const;
11309 Variant GetAttributeDefault(const String&) const;
11310 bool GetInterceptNetworkUpdate(const String&) const;
11311 bool HasSubscribedToEvent(Object, const String&);
11312 bool HasSubscribedToEvent(const String&);
11313 bool Load(File, bool = false);
11314 bool Load(VectorBuffer&, bool = false);
11315 bool LoadJSON(const JSONValue&, bool = false);
11316 bool LoadXML(const XMLElement&, bool = false);
11317 void MarkNetworkUpdate() const;
11318 void Play(Sound);
11319 void Play(Sound, float);
11320 void Play(Sound, float, float);
11321 void Play(Sound, float, float, float);
11322 void Remove();
11323 void RemoveAttributeAnimation(const String&);
11324 void RemoveInstanceDefault();
11325 void RemoveObjectAnimation();
11326 void ResetToDefault();
11327 bool Save(File) const;
11328 bool Save(VectorBuffer&) const;
11329 bool SaveJSON(JSONValue&) const;
11330 bool SaveXML(XMLElement&) const;
11331 void Seek(float);
11332 void SendEvent(const String&, VariantMap& = VariantMap ( ));
11333 void SetAnimationTime(float);
11334 bool SetAttribute(const String&, const Variant&);
11335 void SetAttributeAnimation(const String&, ValueAnimation, WrapMode = WM_LOOP, float = 1.0f);
11336 void SetAttributeAnimationSpeed(const String&, float);
11337 void SetAttributeAnimationTime(const String&, float);
11338 void SetAttributeAnimationWrapMode(const String&, WrapMode);
11339 void SetInterceptNetworkUpdate(const String&, bool);
11340 void Stop();
11341 
11342 // Properties:
11343 bool animationEnabled;
11344 /* readonly */
11345 float attenuation;
11346 /* readonly */
11347 Array<Variant> attributeDefaults;
11348 /* readonly */
11349 Array<AttributeInfo> attributeInfos;
11350 Array<Variant> attributes;
11351 AutoRemoveMode autoRemoveMode;
11352 /* readonly */
11353 String category;
11354 bool enabled;
11355 /* readonly */
11356 bool enabledEffective;
11357 float frequency;
11358 float gain;
11359 /* readonly */
11360 uint id;
11361 /* readonly */
11362 Node node;
11363 /* readonly */
11364 uint numAttributes;
11365 ObjectAnimation objectAnimation;
11366 float panning;
11367 /* readonly */
11368 bool playing;
11369 /* readonly */
11370 int refs;
11371 /* readonly */
11372 Sound sound;
11373 String soundType;
11374 bool temporary;
11375 /* readonly */
11376 float timePosition;
11377 /* readonly */
11378 StringHash type;
11379 /* readonly */
11380 String typeName;
11381 /* readonly */
11382 int weakRefs;
11383 };
11384 
11385 class SoundSource3D
11386 {
11387 public:
11388 // Methods:
11389 void ApplyAttributes();
11390 void DrawDebugGeometry(DebugRenderer, bool);
11391 Variant GetAttribute(const String&) const;
11392 ValueAnimation GetAttributeAnimation(const String&) const;
11393 float GetAttributeAnimationSpeed(const String&) const;
11394 float GetAttributeAnimationTime(const String&) const;
11395 WrapMode GetAttributeAnimationWrapMode(const String&) const;
11396 Variant GetAttributeDefault(const String&) const;
11397 bool GetInterceptNetworkUpdate(const String&) const;
11398 bool HasSubscribedToEvent(Object, const String&);
11399 bool HasSubscribedToEvent(const String&);
11400 bool Load(File, bool = false);
11401 bool Load(VectorBuffer&, bool = false);
11402 bool LoadJSON(const JSONValue&, bool = false);
11403 bool LoadXML(const XMLElement&, bool = false);
11404 void MarkNetworkUpdate() const;
11405 void Play(Sound);
11406 void Play(Sound, float);
11407 void Play(Sound, float, float);
11408 void Play(Sound, float, float, float);
11409 void Remove();
11410 void RemoveAttributeAnimation(const String&);
11411 void RemoveInstanceDefault();
11412 void RemoveObjectAnimation();
11413 void ResetToDefault();
11414 bool Save(File) const;
11415 bool Save(VectorBuffer&) const;
11416 bool SaveJSON(JSONValue&) const;
11417 bool SaveXML(XMLElement&) const;
11418 void Seek(float);
11419 void SendEvent(const String&, VariantMap& = VariantMap ( ));
11420 void SetAngleAttenuation(float, float);
11421 void SetAnimationTime(float);
11422 bool SetAttribute(const String&, const Variant&);
11423 void SetAttributeAnimation(const String&, ValueAnimation, WrapMode = WM_LOOP, float = 1.0f);
11424 void SetAttributeAnimationSpeed(const String&, float);
11425 void SetAttributeAnimationTime(const String&, float);
11426 void SetAttributeAnimationWrapMode(const String&, WrapMode);
11427 void SetDistanceAttenuation(float, float, float);
11428 void SetInterceptNetworkUpdate(const String&, bool);
11429 void Stop();
11430 
11431 // Properties:
11432 bool animationEnabled;
11433 /* readonly */
11434 float attenuation;
11435 /* readonly */
11436 Array<Variant> attributeDefaults;
11437 /* readonly */
11438 Array<AttributeInfo> attributeInfos;
11439 Array<Variant> attributes;
11440 AutoRemoveMode autoRemoveMode;
11441 /* readonly */
11442 String category;
11443 bool enabled;
11444 /* readonly */
11445 bool enabledEffective;
11446 float farDistance;
11447 float frequency;
11448 float gain;
11449 /* readonly */
11450 uint id;
11451 float innerAngle;
11452 float nearDistance;
11453 /* readonly */
11454 Node node;
11455 /* readonly */
11456 uint numAttributes;
11457 ObjectAnimation objectAnimation;
11458 float outerAngle;
11459 float panning;
11460 /* readonly */
11461 bool playing;
11462 /* readonly */
11463 int refs;
11464 float rolloffFactor;
11465 /* readonly */
11466 Sound sound;
11467 String soundType;
11468 bool temporary;
11469 /* readonly */
11470 float timePosition;
11471 /* readonly */
11472 StringHash type;
11473 /* readonly */
11474 String typeName;
11475 /* readonly */
11476 int weakRefs;
11477 };
11478 
11479 class Sphere
11480 {
11481 public:
11482 Sphere();
11483 Sphere(const Sphere&in);
11484 Sphere(const Vector3&in, float);
11485 Sphere(const BoundingBox&in);
11486 Sphere(const Frustum&in);
11487 Sphere(const Polyhedron&in);
11488 // Methods:
11489 void Clear();
11490 void Define(const BoundingBox&);
11491 void Define(const Frustum&);
11492 void Define(const Polyhedron&);
11493 void Define(const Sphere&);
11494 void Define(const Vector3&, float);
11495 bool Defined() const;
11496 float Distance(const Vector3&) const;
11497 Vector3 GetLocalPoint(float, float) const;
11498 Vector3 GetPoint(float, float) const;
11499 Intersection IsInside(const BoundingBox&) const;
11500 Intersection IsInside(const Sphere&) const;
11501 Intersection IsInside(const Vector3&) const;
11502 Intersection IsInsideFast(const BoundingBox&) const;
11503 Intersection IsInsideFast(const Sphere&) const;
11504 void Merge(const BoundingBox&);
11505 void Merge(const Frustum&);
11506 void Merge(const Sphere&);
11507 void Merge(const Vector3&);
11508 
11509 // Properties:
11510 Vector3 center;
11511 float radius;
11512 };
11513 
11514 class Spline
11515 {
11516 public:
11517 Spline();
11518 Spline(InterpolationMode);
11519 Spline(Variant[]@, InterpolationMode = BEZIER_CURVE);
11520 Spline(const Spline&in);
11521 // Methods:
11522 void AddKnot(const Variant&);
11523 void AddKnot(const Variant&, uint);
11524 void Clear();
11525 Variant GetPoint(float);
11526 void RemoveKnot();
11527 void RemoveKnot(uint);
11528 
11529 // Properties:
11530 InterpolationMode interpolationMode;
11531 Array<Variant> knot;
11532 Array<Variant> knots;
11533 };
11534 
11535 class SplinePath
11536 {
11537 public:
11538 // Methods:
11539 void AddControlPoint(Node, uint = M_MAX_UNSIGNED);
11540 void ApplyAttributes();
11541 void ClearControlPoints();
11542 void DrawDebugGeometry(DebugRenderer, bool);
11543 Variant GetAttribute(const String&) const;
11544 ValueAnimation GetAttributeAnimation(const String&) const;
11545 float GetAttributeAnimationSpeed(const String&) const;
11546 float GetAttributeAnimationTime(const String&) const;
11547 WrapMode GetAttributeAnimationWrapMode(const String&) const;
11548 Variant GetAttributeDefault(const String&) const;
11549 bool GetInterceptNetworkUpdate(const String&) const;
11550 Vector3 GetPoint(float) const;
11551 Vector3 GetPosition() const;
11552 bool HasSubscribedToEvent(Object, const String&);
11553 bool HasSubscribedToEvent(const String&);
11554 bool Load(File, bool = false);
11555 bool Load(VectorBuffer&, bool = false);
11556 bool LoadJSON(const JSONValue&, bool = false);
11557 bool LoadXML(const XMLElement&, bool = false);
11558 void MarkNetworkUpdate() const;
11559 void Move(float);
11560 void Remove();
11561 void RemoveAttributeAnimation(const String&);
11562 void RemoveControlPoint(Node);
11563 void RemoveInstanceDefault();
11564 void RemoveObjectAnimation();
11565 void Reset();
11566 void ResetToDefault();
11567 bool Save(File) const;
11568 bool Save(VectorBuffer&) const;
11569 bool SaveJSON(JSONValue&) const;
11570 bool SaveXML(XMLElement&) const;
11571 void SendEvent(const String&, VariantMap& = VariantMap ( ));
11572 void SetAnimationTime(float);
11573 bool SetAttribute(const String&, const Variant&);
11574 void SetAttributeAnimation(const String&, ValueAnimation, WrapMode = WM_LOOP, float = 1.0f);
11575 void SetAttributeAnimationSpeed(const String&, float);
11576 void SetAttributeAnimationTime(const String&, float);
11577 void SetAttributeAnimationWrapMode(const String&, WrapMode);
11578 void SetInterceptNetworkUpdate(const String&, bool);
11579 void SetPosition(float);
11580 
11581 // Properties:
11582 bool animationEnabled;
11583 /* readonly */
11584 Array<Variant> attributeDefaults;
11585 /* readonly */
11586 Array<AttributeInfo> attributeInfos;
11587 Array<Variant> attributes;
11588 /* readonly */
11589 String category;
11590 Node controlledNode;
11591 bool enabled;
11592 /* readonly */
11593 bool enabledEffective;
11594 /* readonly */
11595 uint id;
11596 InterpolationMode interpolationMode;
11597 /* readonly */
11598 bool isFinished;
11599 /* readonly */
11600 float length;
11601 /* readonly */
11602 Node node;
11603 /* readonly */
11604 uint numAttributes;
11605 ObjectAnimation objectAnimation;
11606 /* readonly */
11607 int refs;
11608 float speed;
11609 bool temporary;
11610 /* readonly */
11611 StringHash type;
11612 /* readonly */
11613 String typeName;
11614 /* readonly */
11615 int weakRefs;
11616 };
11617 
11618 class Sprite
11619 {
11620 public:
11621 Sprite();
11622 Sprite(const String&in);
11623 // Methods:
11624 void AddChild(UIElement);
11625 void AddTag(const String&);
11626 void AddTags(const String&, int8 = ';');
11627 void ApplyAttributes();
11628 void BringToFront();
11629 UIElement CreateChild(const String&, const String& = String ( ), uint = M_MAX_UNSIGNED);
11630 void DisableLayoutUpdate();
11631 IntVector2 ElementToScreen(const IntVector2&);
11632 void EnableLayoutUpdate();
11633 uint FindChild(UIElement) const;
11634 Variant GetAttribute(const String&) const;
11635 ValueAnimation GetAttributeAnimation(const String&) const;
11636 float GetAttributeAnimationSpeed(const String&) const;
11637 float GetAttributeAnimationTime(const String&) const;
11638 WrapMode GetAttributeAnimationWrapMode(const String&) const;
11639 Variant GetAttributeDefault(const String&) const;
11640 UIElement GetChild(const String&, bool = false) const;
11641 UIElement GetChild(const StringHash&, const Variant& = Variant ( ), bool = false) const;
11642 Array<UIElement> GetChildren(bool = false) const;
11643 Array<UIElement> GetChildrenWithTag(const String&, bool = false) const;
11644 UIElement GetElementEventSender() const;
11645 bool GetInterceptNetworkUpdate(const String&) const;
11646 uint GetNumChildren(bool) const;
11647 bool HasSubscribedToEvent(Object, const String&);
11648 bool HasSubscribedToEvent(const String&);
11649 bool HasTag(const String&) const;
11650 void InsertChild(uint, UIElement);
11651 bool IsInside(IntVector2, bool);
11652 bool IsInsideCombined(IntVector2, bool);
11653 bool Load(File, bool = false);
11654 bool Load(VectorBuffer&, bool = false);
11655 UIElement LoadChildXML(XMLFile, XMLFile = null);
11656 UIElement LoadChildXML(const XMLElement&, XMLFile = null, bool = false);
11657 bool LoadJSON(const JSONValue&, bool = false);
11658 bool LoadXML(File);
11659 bool LoadXML(VectorBuffer&);
11660 bool LoadXML(XMLFile, XMLFile);
11661 bool LoadXML(const XMLElement&, XMLFile, bool = false);
11662 bool LoadXML(const XMLElement&, bool = false);
11663 void MarkNetworkUpdate() const;
11664 void Remove();
11665 void RemoveAllChildren();
11666 void RemoveAllTags();
11667 void RemoveAttributeAnimation(const String&);
11668 void RemoveChild(UIElement, uint = 0);
11669 void RemoveChild(uint);
11670 void RemoveInstanceDefault();
11671 void RemoveObjectAnimation();
11672 bool RemoveTag(const String&);
11673 void ResetDeepEnabled();
11674 void ResetToDefault();
11675 bool Save(File) const;
11676 bool Save(VectorBuffer&) const;
11677 bool SaveJSON(JSONValue&) const;
11678 bool SaveXML(File, const String& = "\t");
11679 bool SaveXML(VectorBuffer&, const String& = "\t");
11680 bool SaveXML(XMLElement&) const;
11681 IntVector2 ScreenToElement(const IntVector2&);
11682 void SendEvent(const String&, VariantMap& = VariantMap ( ));
11683 void SetAlignment(HorizontalAlignment, VerticalAlignment);
11684 void SetAnimationTime(float);
11685 bool SetAttribute(const String&, const Variant&);
11686 void SetAttributeAnimation(const String&, ValueAnimation, WrapMode = WM_LOOP, float = 1.0f);
11687 void SetAttributeAnimationSpeed(const String&, float);
11688 void SetAttributeAnimationTime(const String&, float);
11689 void SetAttributeAnimationWrapMode(const String&, WrapMode);
11690 void SetDeepEnabled(bool);
11691 void SetEnabledRecursive(bool);
11692 void SetFixedHeight(int);
11693 void SetFixedSize(int, int);
11694 void SetFixedWidth(int);
11695 void SetFullImageRect();
11696 void SetHotSpot(int, int);
11697 void SetInterceptNetworkUpdate(const String&, bool);
11698 void SetLayout(LayoutMode, int = 0, const IntRect& = IntRect ( 0 , 0 , 0 , 0 ));
11699 void SetMaxAnchor(float, float);
11700 void SetMaxSize(int, int);
11701 void SetMinAnchor(float, float);
11702 void SetMinSize(int, int);
11703 void SetParent(UIElement, uint = M_MAX_UNSIGNED);
11704 void SetPivot(float, float);
11705 void SetPosition(float, float);
11706 void SetScale(float);
11707 void SetScale(float, float);
11708 void SetSize(int, int);
11709 bool SetStyle(const String&, XMLFile = null);
11710 bool SetStyle(const XMLElement&);
11711 bool SetStyleAuto(XMLFile = null);
11712 void UpdateLayout();
11713 const Variant& GetVar(const StringHash&);
11714 
11715 // Properties:
11716 bool animationEnabled;
11717 /* readonly */
11718 Array<Variant> attributeDefaults;
11719 /* readonly */
11720 Array<AttributeInfo> attributeInfos;
11721 Array<Variant> attributes;
11722 BlendMode blendMode;
11723 bool bringToBack;
11724 bool bringToFront;
11725 /* readonly */
11726 String category;
11727 /* readonly */
11728 IntVector2 childOffset;
11729 /* readonly */
11730 Array<UIElement> children;
11731 IntRect clipBorder;
11732 bool clipChildren;
11733 /* writeonly */
11734 Color color;
11735 /* readonly */
11736 bool colorGradient;
11737 Array<Color> colors;
11738 /* readonly */
11739 IntRect combinedScreenRect;
11740 XMLFile defaultStyle;
11741 /* readonly */
11742 float derivedOpacity;
11743 /* readonly */
11744 uint dragButtonCombo;
11745 /* readonly */
11746 int dragButtonCount;
11747 uint dragDropMode;
11748 bool editable;
11749 bool elementEventSender;
11750 bool enableAnchor;
11751 bool enabled;
11752 /* readonly */
11753 bool enabledSelf;
11754 /* readonly */
11755 bool fixedHeight;
11756 /* readonly */
11757 bool fixedSize;
11758 /* readonly */
11759 bool fixedWidth;
11760 bool focus;
11761 FocusMode focusMode;
11762 int height;
11763 HorizontalAlignment horizontalAlignment;
11764 IntVector2 hotSpot;
11765 /* readonly */
11766 bool hovering;
11767 IntRect imageRect;
11768 int indent;
11769 int indentSpacing;
11770 /* readonly */
11771 int indentWidth;
11772 bool internal;
11773 IntRect layoutBorder;
11774 Vector2 layoutFlexScale;
11775 LayoutMode layoutMode;
11776 int layoutSpacing;
11777 Vector2 maxAnchor;
11778 int maxHeight;
11779 IntVector2 maxOffset;
11780 IntVector2 maxSize;
11781 int maxWidth;
11782 Vector2 minAnchor;
11783 int minHeight;
11784 IntVector2 minOffset;
11785 IntVector2 minSize;
11786 int minWidth;
11787 String name;
11788 /* readonly */
11789 uint numAllChildren;
11790 /* readonly */
11791 uint numAttributes;
11792 /* readonly */
11793 uint numChildren;
11794 ObjectAnimation objectAnimation;
11795 float opacity;
11796 UIElement parent;
11797 Vector2 pivot;
11798 Vector2 position;
11799 int priority;
11800 /* readonly */
11801 int refs;
11802 /* readonly */
11803 UIElement root;
11804 float rotation;
11805 Vector2 scale;
11806 /* readonly */
11807 IntVector2 screenPosition;
11808 bool selected;
11809 IntVector2 size;
11810 bool sortChildren;
11811 String style;
11812 /* readonly */
11813 Array<String> tags;
11814 bool temporary;
11815 Texture texture;
11816 TraversalMode traversalMode;
11817 /* readonly */
11818 StringHash type;
11819 /* readonly */
11820 String typeName;
11821 bool useDerivedOpacity;
11822 /* readonly */
11823 VariantMap vars;
11824 VerticalAlignment verticalAlignment;
11825 bool visible;
11826 /* readonly */
11827 bool visibleEffective;
11828 /* readonly */
11829 int weakRefs;
11830 int width;
11831 };
11832 
11833 class Sprite2D
11834 {
11835 public:
11836 Sprite2D();
11837 Sprite2D(const String&in);
11838 // Methods:
11839 bool HasSubscribedToEvent(Object, const String&);
11840 bool HasSubscribedToEvent(const String&);
11841 bool Load(File);
11842 bool Load(VectorBuffer&);
11843 bool Load(const String&);
11844 bool Save(File) const;
11845 bool Save(VectorBuffer&) const;
11846 bool Save(const String&) const;
11847 void SendEvent(const String&, VariantMap& = VariantMap ( ));
11848 
11849 // Properties:
11850 /* readonly */
11851 String category;
11852 Vector2 hotSpot;
11853 /* readonly */
11854 uint memoryUse;
11855 String name;
11856 IntVector2 offset;
11857 IntRect rectangle;
11858 /* readonly */
11859 int refs;
11860 Texture2D texture;
11861 float textureEdgeOffset;
11862 /* readonly */
11863 StringHash type;
11864 /* readonly */
11865 String typeName;
11866 /* readonly */
11867 uint useTimer;
11868 /* readonly */
11869 int weakRefs;
11870 };
11871 
11872 class SpriteSheet2D
11873 {
11874 public:
11875 SpriteSheet2D();
11876 SpriteSheet2D(const String&in);
11877 // Methods:
11878 void DefineSprite(const String&, const IntRect&, const Vector2& = Vector2 ( 0.5f , 0.5f ), const IntVector2& = IntVector2 :: ZERO);
11879 Sprite2D GetSprite(const String&);
11880 bool HasSubscribedToEvent(Object, const String&);
11881 bool HasSubscribedToEvent(const String&);
11882 bool Load(File);
11883 bool Load(VectorBuffer&);
11884 bool Load(const String&);
11885 bool Save(File) const;
11886 bool Save(VectorBuffer&) const;
11887 bool Save(const String&) const;
11888 void SendEvent(const String&, VariantMap& = VariantMap ( ));
11889 
11890 // Properties:
11891 /* readonly */
11892 String category;
11893 /* readonly */
11894 uint memoryUse;
11895 String name;
11896 /* readonly */
11897 int refs;
11898 Texture2D texture;
11899 /* readonly */
11900 StringHash type;
11901 /* readonly */
11902 String typeName;
11903 /* readonly */
11904 uint useTimer;
11905 /* readonly */
11906 int weakRefs;
11907 };
11908 
11909 class StaticModel
11910 {
11911 public:
11912 // Methods:
11913 void ApplyAttributes();
11914 void ApplyMaterialList(const String& = String ( ));
11915 void DrawDebugGeometry(DebugRenderer, bool);
11916 Variant GetAttribute(const String&) const;
11917 ValueAnimation GetAttributeAnimation(const String&) const;
11918 float GetAttributeAnimationSpeed(const String&) const;
11919 float GetAttributeAnimationTime(const String&) const;
11920 WrapMode GetAttributeAnimationWrapMode(const String&) const;
11921 Variant GetAttributeDefault(const String&) const;
11922 bool GetInterceptNetworkUpdate(const String&) const;
11923 bool HasSubscribedToEvent(Object, const String&);
11924 bool HasSubscribedToEvent(const String&);
11925 bool IsInView(Camera) const;
11926 bool IsInside(const Vector3&) const;
11927 bool IsInsideLocal(const Vector3&) const;
11928 bool Load(File, bool = false);
11929 bool Load(VectorBuffer&, bool = false);
11930 bool LoadJSON(const JSONValue&, bool = false);
11931 bool LoadXML(const XMLElement&, bool = false);
11932 void MarkNetworkUpdate() const;
11933 void Remove();
11934 void RemoveAttributeAnimation(const String&);
11935 void RemoveInstanceDefault();
11936 void RemoveObjectAnimation();
11937 void ResetToDefault();
11938 bool Save(File) const;
11939 bool Save(VectorBuffer&) const;
11940 bool SaveJSON(JSONValue&) const;
11941 bool SaveXML(XMLElement&) const;
11942 void SendEvent(const String&, VariantMap& = VariantMap ( ));
11943 void SetAnimationTime(float);
11944 bool SetAttribute(const String&, const Variant&);
11945 void SetAttributeAnimation(const String&, ValueAnimation, WrapMode = WM_LOOP, float = 1.0f);
11946 void SetAttributeAnimationSpeed(const String&, float);
11947 void SetAttributeAnimationTime(const String&, float);
11948 void SetAttributeAnimationWrapMode(const String&, WrapMode);
11949 void SetInterceptNetworkUpdate(const String&, bool);
11950 
11951 // Properties:
11952 bool animationEnabled;
11953 /* readonly */
11954 Array<Variant> attributeDefaults;
11955 /* readonly */
11956 Array<AttributeInfo> attributeInfos;
11957 Array<Variant> attributes;
11958 /* readonly */
11959 BoundingBox boundingBox;
11960 bool castShadows;
11961 /* readonly */
11962 String category;
11963 float drawDistance;
11964 bool enabled;
11965 /* readonly */
11966 bool enabledEffective;
11967 /* readonly */
11968 uint id;
11969 /* readonly */
11970 bool inView;
11971 uint lightMask;
11972 float lodBias;
11973 /* writeonly */
11974 Material material;
11975 Array<Material> materials;
11976 uint maxLights;
11977 Model model;
11978 /* readonly */
11979 Node node;
11980 /* readonly */
11981 uint numAttributes;
11982 /* readonly */
11983 uint numGeometries;
11984 ObjectAnimation objectAnimation;
11985 bool occludee;
11986 bool occluder;
11987 uint occlusionLodLevel;
11988 /* readonly */
11989 int refs;
11990 float shadowDistance;
11991 uint shadowMask;
11992 bool temporary;
11993 /* readonly */
11994 StringHash type;
11995 /* readonly */
11996 String typeName;
11997 uint viewMask;
11998 /* readonly */
11999 int weakRefs;
12000 /* readonly */
12001 BoundingBox worldBoundingBox;
12002 uint zoneMask;
12003 };
12004 
12005 class StaticModelGroup
12006 {
12007 public:
12008 // Methods:
12009 void AddInstanceNode(Node);
12010 void ApplyAttributes();
12011 void ApplyMaterialList(const String& = String ( ));
12012 void DrawDebugGeometry(DebugRenderer, bool);
12013 Variant GetAttribute(const String&) const;
12014 ValueAnimation GetAttributeAnimation(const String&) const;
12015 float GetAttributeAnimationSpeed(const String&) const;
12016 float GetAttributeAnimationTime(const String&) const;
12017 WrapMode GetAttributeAnimationWrapMode(const String&) const;
12018 Variant GetAttributeDefault(const String&) const;
12019 bool GetInterceptNetworkUpdate(const String&) const;
12020 bool HasSubscribedToEvent(Object, const String&);
12021 bool HasSubscribedToEvent(const String&);
12022 bool IsInView(Camera) const;
12023 bool Load(File, bool = false);
12024 bool Load(VectorBuffer&, bool = false);
12025 bool LoadJSON(const JSONValue&, bool = false);
12026 bool LoadXML(const XMLElement&, bool = false);
12027 void MarkNetworkUpdate() const;
12028 void Remove();
12029 void RemoveAllInstanceNodes();
12030 void RemoveAttributeAnimation(const String&);
12031 void RemoveInstanceDefault();
12032 void RemoveInstanceNode(Node);
12033 void RemoveObjectAnimation();
12034 void ResetToDefault();
12035 bool Save(File) const;
12036 bool Save(VectorBuffer&) const;
12037 bool SaveJSON(JSONValue&) const;
12038 bool SaveXML(XMLElement&) const;
12039 void SendEvent(const String&, VariantMap& = VariantMap ( ));
12040 void SetAnimationTime(float);
12041 bool SetAttribute(const String&, const Variant&);
12042 void SetAttributeAnimation(const String&, ValueAnimation, WrapMode = WM_LOOP, float = 1.0f);
12043 void SetAttributeAnimationSpeed(const String&, float);
12044 void SetAttributeAnimationTime(const String&, float);
12045 void SetAttributeAnimationWrapMode(const String&, WrapMode);
12046 void SetInterceptNetworkUpdate(const String&, bool);
12047 
12048 // Properties:
12049 bool animationEnabled;
12050 /* readonly */
12051 Array<Variant> attributeDefaults;
12052 /* readonly */
12053 Array<AttributeInfo> attributeInfos;
12054 Array<Variant> attributes;
12055 /* readonly */
12056 BoundingBox boundingBox;
12057 bool castShadows;
12058 /* readonly */
12059 String category;
12060 float drawDistance;
12061 bool enabled;
12062 /* readonly */
12063 bool enabledEffective;
12064 /* readonly */
12065 uint id;
12066 /* readonly */
12067 bool inView;
12068 /* readonly */
12069 Array<Node> instanceNodes;
12070 uint lightMask;
12071 float lodBias;
12072 /* writeonly */
12073 Material material;
12074 Array<Material> materials;
12075 uint maxLights;
12076 Model model;
12077 /* readonly */
12078 Node node;
12079 /* readonly */
12080 uint numAttributes;
12081 /* readonly */
12082 uint numGeometries;
12083 /* readonly */
12084 uint numInstanceNodes;
12085 ObjectAnimation objectAnimation;
12086 bool occludee;
12087 bool occluder;
12088 uint occlusionLodLevel;
12089 /* readonly */
12090 int refs;
12091 float shadowDistance;
12092 uint shadowMask;
12093 bool temporary;
12094 /* readonly */
12095 StringHash type;
12096 /* readonly */
12097 String typeName;
12098 uint viewMask;
12099 /* readonly */
12100 int weakRefs;
12101 /* readonly */
12102 BoundingBox worldBoundingBox;
12103 /* readonly */
12104 Zone zone;
12105 uint zoneMask;
12106 };
12107 
12108 class StaticSprite2D
12109 {
12110 public:
12111 // Methods:
12112 void ApplyAttributes();
12113 void DrawDebugGeometry(DebugRenderer, bool);
12114 Variant GetAttribute(const String&) const;
12115 ValueAnimation GetAttributeAnimation(const String&) const;
12116 float GetAttributeAnimationSpeed(const String&) const;
12117 float GetAttributeAnimationTime(const String&) const;
12118 WrapMode GetAttributeAnimationWrapMode(const String&) const;
12119 Variant GetAttributeDefault(const String&) const;
12120 bool GetInterceptNetworkUpdate(const String&) const;
12121 bool HasSubscribedToEvent(Object, const String&);
12122 bool HasSubscribedToEvent(const String&);
12123 bool IsInView(Camera) const;
12124 bool Load(File, bool = false);
12125 bool Load(VectorBuffer&, bool = false);
12126 bool LoadJSON(const JSONValue&, bool = false);
12127 bool LoadXML(const XMLElement&, bool = false);
12128 void MarkNetworkUpdate() const;
12129 void Remove();
12130 void RemoveAttributeAnimation(const String&);
12131 void RemoveInstanceDefault();
12132 void RemoveObjectAnimation();
12133 void ResetToDefault();
12134 bool Save(File) const;
12135 bool Save(VectorBuffer&) const;
12136 bool SaveJSON(JSONValue&) const;
12137 bool SaveXML(XMLElement&) const;
12138 void SendEvent(const String&, VariantMap& = VariantMap ( ));
12139 void SetAnimationTime(float);
12140 bool SetAttribute(const String&, const Variant&);
12141 void SetAttributeAnimation(const String&, ValueAnimation, WrapMode = WM_LOOP, float = 1.0f);
12142 void SetAttributeAnimationSpeed(const String&, float);
12143 void SetAttributeAnimationTime(const String&, float);
12144 void SetAttributeAnimationWrapMode(const String&, WrapMode);
12145 void SetFlip(bool, bool);
12146 void SetInterceptNetworkUpdate(const String&, bool);
12147 
12148 // Properties:
12149 float alpha;
12150 bool animationEnabled;
12151 /* readonly */
12152 Array<Variant> attributeDefaults;
12153 /* readonly */
12154 Array<AttributeInfo> attributeInfos;
12155 Array<Variant> attributes;
12156 BlendMode blendMode;
12157 /* readonly */
12158 BoundingBox boundingBox;
12159 bool castShadows;
12160 /* readonly */
12161 String category;
12162 Color color;
12163 Material customMaterial;
12164 float drawDistance;
12165 Rect drawRect;
12166 bool enabled;
12167 /* readonly */
12168 bool enabledEffective;
12169 bool flipX;
12170 bool flipY;
12171 Vector2 hotSpot;
12172 /* readonly */
12173 uint id;
12174 /* readonly */
12175 bool inView;
12176 int layer;
12177 uint lightMask;
12178 float lodBias;
12179 uint maxLights;
12180 /* readonly */
12181 Node node;
12182 /* readonly */
12183 uint numAttributes;
12184 ObjectAnimation objectAnimation;
12185 bool occludee;
12186 bool occluder;
12187 int orderInLayer;
12188 /* readonly */
12189 int refs;
12190 float shadowDistance;
12191 uint shadowMask;
12192 Sprite2D sprite;
12193 bool temporary;
12194 Rect textureRect;
12195 /* readonly */
12196 StringHash type;
12197 /* readonly */
12198 String typeName;
12199 bool useDrawRect;
12200 bool useHotSpot;
12201 bool useTextureRect;
12202 uint viewMask;
12203 /* readonly */
12204 int weakRefs;
12205 /* readonly */
12206 BoundingBox worldBoundingBox;
12207 uint zoneMask;
12208 };
12209 
12210 class String
12211 {
12212 public:
12213 ~String();
12214 String();
12215 String(const String&in);
12216 String(int);
12217 String(uint);
12218 String(float);
12219 String(double);
12220 String(bool);
12221 String(const char*);
12222 // Methods:
12223 void AppendUTF8(uint);
12224 uint AtUTF8(uint) const;
12225 uint ByteOffsetUTF8(uint) const;
12226 void Clear();
12227 int Compare(const String&, bool = true) const;
12228 bool Contains(const String&, bool = true) const;
12229 bool Contains(uint8, bool = true) const;
12230 bool EndsWith(const String&, bool = true) const;
12231 uint Find(const String&, uint = 0, bool = true) const;
12232 uint Find(uint8, uint = 0, bool = true) const;
12233 uint FindLast(const String&, uint = 0xffffffff, bool = true) const;
12234 uint FindLast(uint8, uint = 0xffffffff, bool = true) const;
12235 void Join(Array<String>&, const String&);
12236 uint NextUTF8Char(uint&) const;
12237 void Replace(const String&, const String&, bool = true);
12238 void Replace(uint8, uint8, bool = true);
12239 void ReplaceUTF8(uint, uint);
12240 String Replaced(const String&, const String&, bool = true) const;
12241 String Replaced(uint8, uint8, bool = true) const;
12242 void Resize(uint);
12243 void SetUTF8FromLatin1(const String&);
12244 Array<String> Split(uint8, bool = false) const;
12245 bool StartsWith(const String&, bool = true) const;
12246 String Substring(uint) const;
12247 String Substring(uint, uint) const;
12248 String SubstringUTF8(uint) const;
12249 String SubstringUTF8(uint, uint) const;
12250 bool ToBool() const;
12251 Color ToColor() const;
12252 double ToDouble() const;
12253 float ToFloat() const;
12254 int ToInt(int = 10) const;
12255 int64 ToInt64(int = 10) const;
12256 IntRect ToIntRect() const;
12257 IntVector2 ToIntVector2() const;
12258 IntVector3 ToIntVector3() const;
12259 String ToLower() const;
12260 Matrix3 ToMatrix3() const;
12261 Matrix3x4 ToMatrix3x4() const;
12262 Matrix4 ToMatrix4() const;
12263 Quaternion ToQuaternion() const;
12264 uint ToUInt(int = 10) const;
12265 uint64 ToUInt64(int = 10) const;
12266 String ToUpper() const;
12267 Vector2 ToVector2() const;
12268 Vector3 ToVector3() const;
12269 Vector4 ToVector4(bool = false) const;
12270 Variant ToVectorVariant() const;
12271 String Trimmed() const;
12272 
12273 // Properties:
12274 /* readonly */
12275 bool empty;
12276 /* readonly */
12277 uint length;
12278 /* readonly */
12279 uint utf8Length;
12280 };
12281 
12282 class StringHash
12283 {
12284 public:
12285 StringHash();
12286 StringHash(const StringHash&in);
12287 StringHash(const String&in);
12288 StringHash(uint);
12289 // Methods:
12290 String ToString() const;
12291 
12292 // Properties:
12293 /* readonly */
12294 uint value;
12295 };
12296 
12297 class Technique
12298 {
12299 public:
12300 Technique();
12301 Technique(const String&in);
12302 // Methods:
12303 Technique Clone(const String& = String ( )) const;
12304 Pass CreatePass(const String&);
12305 Pass GetPass(const String&);
12306 Pass GetSupportedPass(const String&);
12307 bool HasPass(const String&) const;
12308 bool HasSubscribedToEvent(Object, const String&);
12309 bool HasSubscribedToEvent(const String&);
12310 bool Load(File);
12311 bool Load(VectorBuffer&);
12312 bool Load(const String&);
12313 void RemovePass(const String&);
12314 bool Save(File) const;
12315 bool Save(VectorBuffer&) const;
12316 bool Save(const String&) const;
12317 void SendEvent(const String&, VariantMap& = VariantMap ( ));
12318 
12319 // Properties:
12320 /* readonly */
12321 String category;
12322 bool desktop;
12323 /* readonly */
12324 uint memoryUse;
12325 String name;
12326 /* readonly */
12327 uint numPasses;
12328 /* readonly */
12329 Array<String> passNames;
12330 /* readonly */
12331 Array<Pass> passes;
12332 /* readonly */
12333 int refs;
12334 /* readonly */
12335 bool supported;
12336 /* readonly */
12337 StringHash type;
12338 /* readonly */
12339 String typeName;
12340 /* readonly */
12341 uint useTimer;
12342 /* readonly */
12343 int weakRefs;
12344 };
12345 
12346 class TechniqueEntry
12347 {
12348 public:
12349 ~TechniqueEntry();
12350 TechniqueEntry();
12351 TechniqueEntry(const TechniqueEntry&in);
12352 
12353 // Properties:
12354 float lodDistance;
12355 int qualityLevel;
12356 Technique technique;
12357 };
12358 
12359 class Terrain
12360 {
12361 public:
12362 // Methods:
12363 void ApplyAttributes();
12364 void ApplyHeightMap();
12365 void DrawDebugGeometry(DebugRenderer, bool);
12366 Variant GetAttribute(const String&) const;
12367 ValueAnimation GetAttributeAnimation(const String&) const;
12368 float GetAttributeAnimationSpeed(const String&) const;
12369 float GetAttributeAnimationTime(const String&) const;
12370 WrapMode GetAttributeAnimationWrapMode(const String&) const;
12371 Variant GetAttributeDefault(const String&) const;
12372 float GetHeight(const Vector3&) const;
12373 bool GetInterceptNetworkUpdate(const String&) const;
12374 TerrainPatch GetNeighborPatch(int, int) const;
12375 Vector3 GetNormal(const Vector3&) const;
12376 TerrainPatch GetPatch(int, int) const;
12377 bool HasSubscribedToEvent(Object, const String&);
12378 bool HasSubscribedToEvent(const String&);
12379 Vector3 HeightMapToWorld(const IntVector2&) const;
12380 bool Load(File, bool = false);
12381 bool Load(VectorBuffer&, bool = false);
12382 bool LoadJSON(const JSONValue&, bool = false);
12383 bool LoadXML(const XMLElement&, bool = false);
12384 void MarkNetworkUpdate() const;
12385 void Remove();
12386 void RemoveAttributeAnimation(const String&);
12387 void RemoveInstanceDefault();
12388 void RemoveObjectAnimation();
12389 void ResetToDefault();
12390 bool Save(File) const;
12391 bool Save(VectorBuffer&) const;
12392 bool SaveJSON(JSONValue&) const;
12393 bool SaveXML(XMLElement&) const;
12394 void SendEvent(const String&, VariantMap& = VariantMap ( ));
12395 void SetAnimationTime(float);
12396 bool SetAttribute(const String&, const Variant&);
12397 void SetAttributeAnimation(const String&, ValueAnimation, WrapMode = WM_LOOP, float = 1.0f);
12398 void SetAttributeAnimationSpeed(const String&, float);
12399 void SetAttributeAnimationTime(const String&, float);
12400 void SetAttributeAnimationWrapMode(const String&, WrapMode);
12401 void SetInterceptNetworkUpdate(const String&, bool);
12402 void SetNeighbors(Terrain, Terrain, Terrain, Terrain);
12403 IntVector2 WorldToHeightMap(const Vector3&) const;
12404 
12405 // Properties:
12406 bool animationEnabled;
12407 /* readonly */
12408 Array<Variant> attributeDefaults;
12409 /* readonly */
12410 Array<AttributeInfo> attributeInfos;
12411 Array<Variant> attributes;
12412 bool castShadows;
12413 /* readonly */
12414 String category;
12415 float drawDistance;
12416 Terrain eastNeighbor;
12417 bool enabled;
12418 /* readonly */
12419 bool enabledEffective;
12420 Image heightMap;
12421 /* readonly */
12422 uint id;
12423 uint lightMask;
12424 float lodBias;
12425 Material material;
12426 uint maxLights;
12427 uint maxLodLevels;
12428 /* readonly */
12429 Node node;
12430 Terrain northNeighbor;
12431 /* readonly */
12432 uint numAttributes;
12433 /* readonly */
12434 IntVector2 numPatches;
12435 /* readonly */
12436 IntVector2 numVertices;
12437 ObjectAnimation objectAnimation;
12438 bool occludee;
12439 bool occluder;
12440 uint occlusionLodLevel;
12441 int patchSize;
12442 /* readonly */
12443 Array<TerrainPatch> patches;
12444 /* readonly */
12445 int refs;
12446 float shadowDistance;
12447 uint shadowMask;
12448 bool smoothing;
12449 Terrain southNeighbor;
12450 Vector3 spacing;
12451 bool temporary;
12452 /* readonly */
12453 StringHash type;
12454 /* readonly */
12455 String typeName;
12456 uint viewMask;
12457 /* readonly */
12458 int weakRefs;
12459 Terrain westNeighbor;
12460 uint zoneMask;
12461 };
12462 
12463 class TerrainPatch
12464 {
12465 public:
12466 // Methods:
12467 void ApplyAttributes();
12468 void DrawDebugGeometry(DebugRenderer, bool);
12469 Variant GetAttribute(const String&) const;
12470 ValueAnimation GetAttributeAnimation(const String&) const;
12471 float GetAttributeAnimationSpeed(const String&) const;
12472 float GetAttributeAnimationTime(const String&) const;
12473 WrapMode GetAttributeAnimationWrapMode(const String&) const;
12474 Variant GetAttributeDefault(const String&) const;
12475 bool GetInterceptNetworkUpdate(const String&) const;
12476 bool HasSubscribedToEvent(Object, const String&);
12477 bool HasSubscribedToEvent(const String&);
12478 bool IsInView(Camera) const;
12479 bool Load(File, bool = false);
12480 bool Load(VectorBuffer&, bool = false);
12481 bool LoadJSON(const JSONValue&, bool = false);
12482 bool LoadXML(const XMLElement&, bool = false);
12483 void MarkNetworkUpdate() const;
12484 void Remove();
12485 void RemoveAttributeAnimation(const String&);
12486 void RemoveInstanceDefault();
12487 void RemoveObjectAnimation();
12488 void ResetToDefault();
12489 bool Save(File) const;
12490 bool Save(VectorBuffer&) const;
12491 bool SaveJSON(JSONValue&) const;
12492 bool SaveXML(XMLElement&) const;
12493 void SendEvent(const String&, VariantMap& = VariantMap ( ));
12494 void SetAnimationTime(float);
12495 bool SetAttribute(const String&, const Variant&);
12496 void SetAttributeAnimation(const String&, ValueAnimation, WrapMode = WM_LOOP, float = 1.0f);
12497 void SetAttributeAnimationSpeed(const String&, float);
12498 void SetAttributeAnimationTime(const String&, float);
12499 void SetAttributeAnimationWrapMode(const String&, WrapMode);
12500 void SetInterceptNetworkUpdate(const String&, bool);
12501 
12502 // Properties:
12503 bool animationEnabled;
12504 /* readonly */
12505 Array<Variant> attributeDefaults;
12506 /* readonly */
12507 Array<AttributeInfo> attributeInfos;
12508 Array<Variant> attributes;
12509 /* readonly */
12510 BoundingBox boundingBox;
12511 bool castShadows;
12512 /* readonly */
12513 String category;
12514 float drawDistance;
12515 bool enabled;
12516 /* readonly */
12517 bool enabledEffective;
12518 /* readonly */
12519 uint id;
12520 /* readonly */
12521 bool inView;
12522 uint lightMask;
12523 float lodBias;
12524 uint maxLights;
12525 /* readonly */
12526 Node node;
12527 /* readonly */
12528 uint numAttributes;
12529 ObjectAnimation objectAnimation;
12530 bool occludee;
12531 bool occluder;
12532 /* readonly */
12533 int refs;
12534 float shadowDistance;
12535 uint shadowMask;
12536 bool temporary;
12537 /* readonly */
12538 StringHash type;
12539 /* readonly */
12540 String typeName;
12541 uint viewMask;
12542 /* readonly */
12543 int weakRefs;
12544 /* readonly */
12545 BoundingBox worldBoundingBox;
12546 uint zoneMask;
12547 };
12548 
12549 class Text
12550 {
12551 public:
12552 Text();
12553 Text(const String&in);
12554 // Methods:
12555 void AddChild(UIElement);
12556 void AddTag(const String&);
12557 void AddTags(const String&, int8 = ';');
12558 void ApplyAttributes();
12559 void BringToFront();
12560 void ClearSelection();
12561 UIElement CreateChild(const String&, const String& = String ( ), uint = M_MAX_UNSIGNED);
12562 void DisableLayoutUpdate();
12563 IntVector2 ElementToScreen(const IntVector2&);
12564 void EnableLayoutUpdate();
12565 uint FindChild(UIElement) const;
12566 Variant GetAttribute(const String&) const;
12567 ValueAnimation GetAttributeAnimation(const String&) const;
12568 float GetAttributeAnimationSpeed(const String&) const;
12569 float GetAttributeAnimationTime(const String&) const;
12570 WrapMode GetAttributeAnimationWrapMode(const String&) const;
12571 Variant GetAttributeDefault(const String&) const;
12572 UIElement GetChild(const String&, bool = false) const;
12573 UIElement GetChild(const StringHash&, const Variant& = Variant ( ), bool = false) const;
12574 Array<UIElement> GetChildren(bool = false) const;
12575 Array<UIElement> GetChildrenWithTag(const String&, bool = false) const;
12576 UIElement GetElementEventSender() const;
12577 bool GetInterceptNetworkUpdate(const String&) const;
12578 uint GetNumChildren(bool) const;
12579 bool HasSubscribedToEvent(Object, const String&);
12580 bool HasSubscribedToEvent(const String&);
12581 bool HasTag(const String&) const;
12582 void InsertChild(uint, UIElement);
12583 bool IsInside(IntVector2, bool);
12584 bool IsInsideCombined(IntVector2, bool);
12585 bool Load(File, bool = false);
12586 bool Load(VectorBuffer&, bool = false);
12587 UIElement LoadChildXML(XMLFile, XMLFile = null);
12588 UIElement LoadChildXML(const XMLElement&, XMLFile = null, bool = false);
12589 bool LoadJSON(const JSONValue&, bool = false);
12590 bool LoadXML(File);
12591 bool LoadXML(VectorBuffer&);
12592 bool LoadXML(XMLFile, XMLFile);
12593 bool LoadXML(const XMLElement&, XMLFile, bool = false);
12594 bool LoadXML(const XMLElement&, bool = false);
12595 void MarkNetworkUpdate() const;
12596 void Remove();
12597 void RemoveAllChildren();
12598 void RemoveAllTags();
12599 void RemoveAttributeAnimation(const String&);
12600 void RemoveChild(UIElement, uint = 0);
12601 void RemoveChild(uint);
12602 void RemoveInstanceDefault();
12603 void RemoveObjectAnimation();
12604 bool RemoveTag(const String&);
12605 void ResetDeepEnabled();
12606 void ResetToDefault();
12607 bool Save(File) const;
12608 bool Save(VectorBuffer&) const;
12609 bool SaveJSON(JSONValue&) const;
12610 bool SaveXML(File, const String& = "\t");
12611 bool SaveXML(VectorBuffer&, const String& = "\t");
12612 bool SaveXML(XMLElement&) const;
12613 IntVector2 ScreenToElement(const IntVector2&);
12614 void SendEvent(const String&, VariantMap& = VariantMap ( ));
12615 void SetAlignment(HorizontalAlignment, VerticalAlignment);
12616 void SetAnimationTime(float);
12617 bool SetAttribute(const String&, const Variant&);
12618 void SetAttributeAnimation(const String&, ValueAnimation, WrapMode = WM_LOOP, float = 1.0f);
12619 void SetAttributeAnimationSpeed(const String&, float);
12620 void SetAttributeAnimationTime(const String&, float);
12621 void SetAttributeAnimationWrapMode(const String&, WrapMode);
12622 void SetDeepEnabled(bool);
12623 void SetEnabledRecursive(bool);
12624 void SetFixedHeight(int);
12625 void SetFixedSize(int, int);
12626 void SetFixedWidth(int);
12627 bool SetFont(Font, float);
12628 bool SetFont(const String&, int);
12629 void SetInterceptNetworkUpdate(const String&, bool);
12630 void SetLayout(LayoutMode, int = 0, const IntRect& = IntRect ( 0 , 0 , 0 , 0 ));
12631 void SetMaxAnchor(float, float);
12632 void SetMaxSize(int, int);
12633 void SetMinAnchor(float, float);
12634 void SetMinSize(int, int);
12635 void SetParent(UIElement, uint = M_MAX_UNSIGNED);
12636 void SetPivot(float, float);
12637 void SetPosition(int, int);
12638 void SetSelection(uint, uint = M_MAX_UNSIGNED);
12639 void SetSize(int, int);
12640 bool SetStyle(const String&, XMLFile = null);
12641 bool SetStyle(const XMLElement&);
12642 bool SetStyleAuto(XMLFile = null);
12643 void UpdateLayout();
12644 const Variant& GetVar(const StringHash&);
12645 
12646 // Properties:
12647 bool animationEnabled;
12648 /* readonly */
12649 Array<Variant> attributeDefaults;
12650 /* readonly */
12651 Array<AttributeInfo> attributeInfos;
12652 Array<Variant> attributes;
12653 bool autoLocalizable;
12654 bool bringToBack;
12655 bool bringToFront;
12656 /* readonly */
12657 String category;
12658 /* readonly */
12659 Array<Vector2> charPositions;
12660 /* readonly */
12661 Array<Vector2> charSizes;
12662 /* readonly */
12663 IntVector2 childOffset;
12664 /* readonly */
12665 Array<UIElement> children;
12666 IntRect clipBorder;
12667 bool clipChildren;
12668 /* writeonly */
12669 Color color;
12670 /* readonly */
12671 bool colorGradient;
12672 Array<Color> colors;
12673 /* readonly */
12674 IntRect combinedScreenRect;
12675 XMLFile defaultStyle;
12676 /* readonly */
12677 float derivedOpacity;
12678 /* readonly */
12679 uint dragButtonCombo;
12680 /* readonly */
12681 int dragButtonCount;
12682 uint dragDropMode;
12683 bool editable;
12684 Color effectColor;
12685 bool effectRoundStroke;
12686 IntVector2 effectShadowOffset;
12687 int effectStrokeThickness;
12688 bool elementEventSender;
12689 bool enableAnchor;
12690 bool enabled;
12691 /* readonly */
12692 bool enabledSelf;
12693 /* readonly */
12694 bool fixedHeight;
12695 /* readonly */
12696 bool fixedSize;
12697 /* readonly */
12698 bool fixedWidth;
12699 bool focus;
12700 FocusMode focusMode;
12701 /* readonly */
12702 Font font;
12703 float fontSize;
12704 int height;
12705 HorizontalAlignment horizontalAlignment;
12706 Color hoverColor;
12707 /* readonly */
12708 bool hovering;
12709 int indent;
12710 int indentSpacing;
12711 /* readonly */
12712 int indentWidth;
12713 bool internal;
12714 IntRect layoutBorder;
12715 Vector2 layoutFlexScale;
12716 LayoutMode layoutMode;
12717 int layoutSpacing;
12718 Vector2 maxAnchor;
12719 int maxHeight;
12720 IntVector2 maxOffset;
12721 IntVector2 maxSize;
12722 int maxWidth;
12723 Vector2 minAnchor;
12724 int minHeight;
12725 IntVector2 minOffset;
12726 IntVector2 minSize;
12727 int minWidth;
12728 String name;
12729 /* readonly */
12730 uint numAllChildren;
12731 /* readonly */
12732 uint numAttributes;
12733 /* readonly */
12734 uint numChars;
12735 /* readonly */
12736 uint numChildren;
12737 /* readonly */
12738 uint numRows;
12739 ObjectAnimation objectAnimation;
12740 float opacity;
12741 UIElement parent;
12742 Vector2 pivot;
12743 IntVector2 position;
12744 int priority;
12745 /* readonly */
12746 int refs;
12747 /* readonly */
12748 UIElement root;
12749 /* readonly */
12750 float rowHeight;
12751 float rowSpacing;
12752 /* readonly */
12753 Array<float> rowWidths;
12754 /* readonly */
12755 IntVector2 screenPosition;
12756 bool selected;
12757 Color selectionColor;
12758 /* readonly */
12759 uint selectionLength;
12760 /* readonly */
12761 uint selectionStart;
12762 IntVector2 size;
12763 bool sortChildren;
12764 String style;
12765 /* readonly */
12766 Array<String> tags;
12767 bool temporary;
12768 String text;
12769 HorizontalAlignment textAlignment;
12770 TextEffect textEffect;
12771 TraversalMode traversalMode;
12772 /* readonly */
12773 StringHash type;
12774 /* readonly */
12775 String typeName;
12776 bool useDerivedOpacity;
12777 /* readonly */
12778 VariantMap vars;
12779 VerticalAlignment verticalAlignment;
12780 bool visible;
12781 /* readonly */
12782 bool visibleEffective;
12783 /* readonly */
12784 int weakRefs;
12785 int width;
12786 bool wordwrap;
12787 };
12788 
12789 class Text3D
12790 {
12791 public:
12792 // Methods:
12793 void ApplyAttributes();
12794 void DrawDebugGeometry(DebugRenderer, bool);
12795 Variant GetAttribute(const String&) const;
12796 ValueAnimation GetAttributeAnimation(const String&) const;
12797 float GetAttributeAnimationSpeed(const String&) const;
12798 float GetAttributeAnimationTime(const String&) const;
12799 WrapMode GetAttributeAnimationWrapMode(const String&) const;
12800 Variant GetAttributeDefault(const String&) const;
12801 bool GetInterceptNetworkUpdate(const String&) const;
12802 bool HasSubscribedToEvent(Object, const String&);
12803 bool HasSubscribedToEvent(const String&);
12804 bool IsInView(Camera) const;
12805 bool Load(File, bool = false);
12806 bool Load(VectorBuffer&, bool = false);
12807 bool LoadJSON(const JSONValue&, bool = false);
12808 bool LoadXML(const XMLElement&, bool = false);
12809 void MarkNetworkUpdate() const;
12810 void Remove();
12811 void RemoveAttributeAnimation(const String&);
12812 void RemoveInstanceDefault();
12813 void RemoveObjectAnimation();
12814 void ResetToDefault();
12815 bool Save(File) const;
12816 bool Save(VectorBuffer&) const;
12817 bool SaveJSON(JSONValue&) const;
12818 bool SaveXML(XMLElement&) const;
12819 void SendEvent(const String&, VariantMap& = VariantMap ( ));
12820 void SetAlignment(HorizontalAlignment, VerticalAlignment);
12821 void SetAnimationTime(float);
12822 bool SetAttribute(const String&, const Variant&);
12823 void SetAttributeAnimation(const String&, ValueAnimation, WrapMode = WM_LOOP, float = 1.0f);
12824 void SetAttributeAnimationSpeed(const String&, float);
12825 void SetAttributeAnimationTime(const String&, float);
12826 void SetAttributeAnimationWrapMode(const String&, WrapMode);
12827 bool SetFont(Font, float);
12828 bool SetFont(const String&, float);
12829 void SetInterceptNetworkUpdate(const String&, bool);
12830 
12831 // Properties:
12832 bool animationEnabled;
12833 /* readonly */
12834 Array<Variant> attributeDefaults;
12835 /* readonly */
12836 Array<AttributeInfo> attributeInfos;
12837 Array<Variant> attributes;
12838 /* readonly */
12839 BoundingBox boundingBox;
12840 bool castShadows;
12841 /* readonly */
12842 String category;
12843 /* readonly */
12844 Array<Vector2> charPositions;
12845 /* readonly */
12846 Array<Vector2> charSizes;
12847 /* writeonly */
12848 Color color;
12849 Array<Color> colors;
12850 float drawDistance;
12851 Color effectColor;
12852 float effectDepthBias;
12853 bool effectRoundStroke;
12854 IntVector2 effectShadowOffset;
12855 int effectStrokeThickness;
12856 bool enabled;
12857 /* readonly */
12858 bool enabledEffective;
12859 FaceCameraMode faceCameraMode;
12860 bool fixedScreenSize;
12861 /* readonly */
12862 Font font;
12863 float fontSize;
12864 /* readonly */
12865 int height;
12866 HorizontalAlignment horizontalAlignment;
12867 /* readonly */
12868 uint id;
12869 /* readonly */
12870 bool inView;
12871 uint lightMask;
12872 float lodBias;
12873 Material material;
12874 uint maxLights;
12875 /* readonly */
12876 Node node;
12877 /* readonly */
12878 uint numAttributes;
12879 /* readonly */
12880 uint numChars;
12881 /* readonly */
12882 uint numRows;
12883 ObjectAnimation objectAnimation;
12884 bool occludee;
12885 bool occluder;
12886 float opacity;
12887 /* readonly */
12888 int refs;
12889 /* readonly */
12890 float rowHeight;
12891 float rowSpacing;
12892 /* readonly */
12893 Array<float> rowWidths;
12894 float shadowDistance;
12895 uint shadowMask;
12896 bool temporary;
12897 String text;
12898 HorizontalAlignment textAlignment;
12899 TextEffect textEffect;
12900 /* readonly */
12901 StringHash type;
12902 /* readonly */
12903 String typeName;
12904 VerticalAlignment verticalAlignment;
12905 uint viewMask;
12906 /* readonly */
12907 int weakRefs;
12908 int width;
12909 bool wordwrap;
12910 /* readonly */
12911 BoundingBox worldBoundingBox;
12912 uint zoneMask;
12913 };
12914 
12915 class Texture
12916 {
12917 public:
12918 Texture();
12919 Texture(const String&in);
12920 // Methods:
12921 void AddMetadata(const String&, const Variant&);
12922 void ClearDataLost();
12923 bool HasSubscribedToEvent(Object, const String&);
12924 bool HasSubscribedToEvent(const String&);
12925 bool Load(File);
12926 bool Load(VectorBuffer&);
12927 bool Load(const String&);
12928 void RemoveAllMetadata();
12929 void RemoveMetadata(const String&);
12930 bool Save(File) const;
12931 bool Save(VectorBuffer&) const;
12932 bool Save(const String&) const;
12933 void SendEvent(const String&, VariantMap& = VariantMap ( ));
12934 void SetNumLevels(uint);
12935 
12936 // Properties:
12937 Array<TextureAddressMode> addressMode;
12938 uint anisotropy;
12939 /* readonly */
12940 bool autoResolve;
12941 Texture backupTexture;
12942 Color borderColor;
12943 /* readonly */
12944 String category;
12945 /* readonly */
12946 uint components;
12947 /* readonly */
12948 bool compressed;
12949 /* readonly */
12950 bool dataLost;
12951 TextureFilterMode filterMode;
12952 /* readonly */
12953 uint format;
12954 /* readonly */
12955 bool hasMetadata;
12956 /* readonly */
12957 int height;
12958 /* readonly */
12959 Array<int> levelHeight;
12960 /* readonly */
12961 Array<int> levelWidth;
12962 /* readonly */
12963 uint levels;
12964 /* readonly */
12965 bool levelsDirty;
12966 /* readonly */
12967 uint memoryUse;
12968 Array<Variant> metadata;
12969 Array<int> mipsToSkip;
12970 /* readonly */
12971 int multiSample;
12972 String name;
12973 /* readonly */
12974 int refs;
12975 /* readonly */
12976 bool resolveDirty;
12977 bool sRGB;
12978 /* readonly */
12979 StringHash type;
12980 /* readonly */
12981 String typeName;
12982 /* readonly */
12983 TextureUsage usage;
12984 /* readonly */
12985 uint useTimer;
12986 /* readonly */
12987 int weakRefs;
12988 /* readonly */
12989 int width;
12990 };
12991 
12992 class Texture2D
12993 {
12994 public:
12995 Texture2D();
12996 Texture2D(const String&in);
12997 // Methods:
12998 void AddMetadata(const String&, const Variant&);
12999 void ClearDataLost();
13000 Image GetImage() const;
13001 bool HasSubscribedToEvent(Object, const String&);
13002 bool HasSubscribedToEvent(const String&);
13003 bool Load(File);
13004 bool Load(VectorBuffer&);
13005 bool Load(const String&);
13006 void RemoveAllMetadata();
13007 void RemoveMetadata(const String&);
13008 bool Save(File) const;
13009 bool Save(VectorBuffer&) const;
13010 bool Save(const String&) const;
13011 void SendEvent(const String&, VariantMap& = VariantMap ( ));
13012 bool SetData(Image, bool = false);
13013 void SetNumLevels(uint);
13014 bool SetSize(int, int, uint, TextureUsage = TEXTURE_STATIC, int = 1, bool = true);
13015 
13016 // Properties:
13017 Array<TextureAddressMode> addressMode;
13018 uint anisotropy;
13019 /* readonly */
13020 bool autoResolve;
13021 Texture backupTexture;
13022 Color borderColor;
13023 /* readonly */
13024 String category;
13025 /* readonly */
13026 uint components;
13027 /* readonly */
13028 bool compressed;
13029 /* readonly */
13030 bool dataLost;
13031 TextureFilterMode filterMode;
13032 /* readonly */
13033 uint format;
13034 /* readonly */
13035 bool hasMetadata;
13036 /* readonly */
13037 int height;
13038 /* readonly */
13039 Array<int> levelHeight;
13040 /* readonly */
13041 Array<int> levelWidth;
13042 /* readonly */
13043 uint levels;
13044 /* readonly */
13045 bool levelsDirty;
13046 /* readonly */
13047 uint memoryUse;
13048 Array<Variant> metadata;
13049 Array<int> mipsToSkip;
13050 /* readonly */
13051 int multiSample;
13052 String name;
13053 /* readonly */
13054 int refs;
13055 /* readonly */
13056 RenderSurface renderSurface;
13057 /* readonly */
13058 bool resolveDirty;
13059 bool sRGB;
13060 /* readonly */
13061 StringHash type;
13062 /* readonly */
13063 String typeName;
13064 /* readonly */
13065 TextureUsage usage;
13066 /* readonly */
13067 uint useTimer;
13068 /* readonly */
13069 int weakRefs;
13070 /* readonly */
13071 int width;
13072 };
13073 
13074 class Texture2DArray
13075 {
13076 public:
13077 Texture2DArray();
13078 Texture2DArray(const String&in);
13079 // Methods:
13080 void AddMetadata(const String&, const Variant&);
13081 void ClearDataLost();
13082 bool HasSubscribedToEvent(Object, const String&);
13083 bool HasSubscribedToEvent(const String&);
13084 bool Load(File);
13085 bool Load(VectorBuffer&);
13086 bool Load(const String&);
13087 void RemoveAllMetadata();
13088 void RemoveMetadata(const String&);
13089 bool Save(File) const;
13090 bool Save(VectorBuffer&) const;
13091 bool Save(const String&) const;
13092 void SendEvent(const String&, VariantMap& = VariantMap ( ));
13093 bool SetData(uint, Image, bool = false);
13094 void SetNumLevels(uint);
13095 bool SetSize(uint, int, int, uint, TextureUsage = TEXTURE_STATIC);
13096 
13097 // Properties:
13098 Array<TextureAddressMode> addressMode;
13099 uint anisotropy;
13100 /* readonly */
13101 bool autoResolve;
13102 Texture backupTexture;
13103 Color borderColor;
13104 /* readonly */
13105 String category;
13106 /* readonly */
13107 uint components;
13108 /* readonly */
13109 bool compressed;
13110 /* readonly */
13111 bool dataLost;
13112 TextureFilterMode filterMode;
13113 /* readonly */
13114 uint format;
13115 /* readonly */
13116 bool hasMetadata;
13117 /* readonly */
13118 int height;
13119 uint layers;
13120 /* readonly */
13121 Array<int> levelHeight;
13122 /* readonly */
13123 Array<int> levelWidth;
13124 /* readonly */
13125 uint levels;
13126 /* readonly */
13127 bool levelsDirty;
13128 /* readonly */
13129 uint memoryUse;
13130 Array<Variant> metadata;
13131 Array<int> mipsToSkip;
13132 /* readonly */
13133 int multiSample;
13134 String name;
13135 /* readonly */
13136 int refs;
13137 /* readonly */
13138 RenderSurface renderSurface;
13139 /* readonly */
13140 bool resolveDirty;
13141 bool sRGB;
13142 /* readonly */
13143 StringHash type;
13144 /* readonly */
13145 String typeName;
13146 /* readonly */
13147 TextureUsage usage;
13148 /* readonly */
13149 uint useTimer;
13150 /* readonly */
13151 int weakRefs;
13152 /* readonly */
13153 int width;
13154 };
13155 
13156 class Texture3D
13157 {
13158 public:
13159 Texture3D();
13160 Texture3D(const String&in);
13161 // Methods:
13162 void AddMetadata(const String&, const Variant&);
13163 void ClearDataLost();
13164 bool HasSubscribedToEvent(Object, const String&);
13165 bool HasSubscribedToEvent(const String&);
13166 bool Load(File);
13167 bool Load(VectorBuffer&);
13168 bool Load(const String&);
13169 void RemoveAllMetadata();
13170 void RemoveMetadata(const String&);
13171 bool Save(File) const;
13172 bool Save(VectorBuffer&) const;
13173 bool Save(const String&) const;
13174 void SendEvent(const String&, VariantMap& = VariantMap ( ));
13175 bool SetData(Image, bool = false);
13176 void SetNumLevels(uint);
13177 bool SetSize(int, int, int, uint, TextureUsage = TEXTURE_STATIC);
13178 
13179 // Properties:
13180 Array<TextureAddressMode> addressMode;
13181 uint anisotropy;
13182 /* readonly */
13183 bool autoResolve;
13184 Texture backupTexture;
13185 Color borderColor;
13186 /* readonly */
13187 String category;
13188 /* readonly */
13189 uint components;
13190 /* readonly */
13191 bool compressed;
13192 /* readonly */
13193 bool dataLost;
13194 TextureFilterMode filterMode;
13195 /* readonly */
13196 uint format;
13197 /* readonly */
13198 bool hasMetadata;
13199 /* readonly */
13200 int height;
13201 /* readonly */
13202 Array<int> levelHeight;
13203 /* readonly */
13204 Array<int> levelWidth;
13205 /* readonly */
13206 uint levels;
13207 /* readonly */
13208 bool levelsDirty;
13209 /* readonly */
13210 uint memoryUse;
13211 Array<Variant> metadata;
13212 Array<int> mipsToSkip;
13213 /* readonly */
13214 int multiSample;
13215 String name;
13216 /* readonly */
13217 int refs;
13218 /* readonly */
13219 bool resolveDirty;
13220 bool sRGB;
13221 /* readonly */
13222 StringHash type;
13223 /* readonly */
13224 String typeName;
13225 /* readonly */
13226 TextureUsage usage;
13227 /* readonly */
13228 uint useTimer;
13229 /* readonly */
13230 int weakRefs;
13231 /* readonly */
13232 int width;
13233 };
13234 
13235 class TextureCube
13236 {
13237 public:
13238 TextureCube();
13239 TextureCube(const String&in);
13240 // Methods:
13241 void AddMetadata(const String&, const Variant&);
13242 void ClearDataLost();
13243 Image GetImage(CubeMapFace) const;
13244 bool HasSubscribedToEvent(Object, const String&);
13245 bool HasSubscribedToEvent(const String&);
13246 bool Load(File);
13247 bool Load(VectorBuffer&);
13248 bool Load(const String&);
13249 void RemoveAllMetadata();
13250 void RemoveMetadata(const String&);
13251 bool Save(File) const;
13252 bool Save(VectorBuffer&) const;
13253 bool Save(const String&) const;
13254 void SendEvent(const String&, VariantMap& = VariantMap ( ));
13255 bool SetData(CubeMapFace, Image, bool = false);
13256 void SetNumLevels(uint);
13257 bool SetSize(int, uint, TextureUsage = TEXTURE_STATIC, int = 1);
13258 
13259 // Properties:
13260 Array<TextureAddressMode> addressMode;
13261 uint anisotropy;
13262 /* readonly */
13263 bool autoResolve;
13264 Texture backupTexture;
13265 Color borderColor;
13266 /* readonly */
13267 String category;
13268 /* readonly */
13269 uint components;
13270 /* readonly */
13271 bool compressed;
13272 /* readonly */
13273 bool dataLost;
13274 TextureFilterMode filterMode;
13275 /* readonly */
13276 uint format;
13277 /* readonly */
13278 bool hasMetadata;
13279 /* readonly */
13280 int height;
13281 /* readonly */
13282 Array<int> levelHeight;
13283 /* readonly */
13284 Array<int> levelWidth;
13285 /* readonly */
13286 uint levels;
13287 /* readonly */
13288 bool levelsDirty;
13289 /* readonly */
13290 uint memoryUse;
13291 Array<Variant> metadata;
13292 Array<int> mipsToSkip;
13293 /* readonly */
13294 int multiSample;
13295 String name;
13296 /* readonly */
13297 int refs;
13298 /* readonly */
13299 Array<RenderSurface> renderSurfaces;
13300 /* readonly */
13301 bool resolveDirty;
13302 bool sRGB;
13303 /* readonly */
13304 StringHash type;
13305 /* readonly */
13306 String typeName;
13307 /* readonly */
13308 TextureUsage usage;
13309 /* readonly */
13310 uint useTimer;
13311 /* readonly */
13312 int weakRefs;
13313 /* readonly */
13314 int width;
13315 };
13316 
13317 class TextureFrame
13318 {
13319 public:
13320 
13321 // Properties:
13322 float time;
13323 Rect uv;
13324 };
13325 
13326 class Tile2D
13327 {
13328 public:
13329 // Methods:
13330 bool HasProperty(const String&) const;
13331 const String& GetProperty(const String&) const;
13332 
13333 // Properties:
13334 /* readonly */
13335 int gid;
13336 /* readonly */
13337 int refs;
13338 /* readonly */
13339 Sprite2D sprite;
13340 /* readonly */
13341 int weakRefs;
13342 };
13343 
13344 class TileMap2D
13345 {
13346 public:
13347 // Methods:
13348 void ApplyAttributes();
13349 void DrawDebugGeometry(DebugRenderer, bool);
13350 Variant GetAttribute(const String&) const;
13351 ValueAnimation GetAttributeAnimation(const String&) const;
13352 float GetAttributeAnimationSpeed(const String&) const;
13353 float GetAttributeAnimationTime(const String&) const;
13354 WrapMode GetAttributeAnimationWrapMode(const String&) const;
13355 Variant GetAttributeDefault(const String&) const;
13356 bool GetInterceptNetworkUpdate(const String&) const;
13357 TileMapLayer2D GetLayer(uint) const;
13358 Array<TileMapObject2D> GetTileCollisionShapes(int) const;
13359 bool HasSubscribedToEvent(Object, const String&);
13360 bool HasSubscribedToEvent(const String&);
13361 bool Load(File, bool = false);
13362 bool Load(VectorBuffer&, bool = false);
13363 bool LoadJSON(const JSONValue&, bool = false);
13364 bool LoadXML(const XMLElement&, bool = false);
13365 void MarkNetworkUpdate() const;
13366 bool PositionToTileIndex(int&, int&, const Vector2&) const;
13367 void Remove();
13368 void RemoveAttributeAnimation(const String&);
13369 void RemoveInstanceDefault();
13370 void RemoveObjectAnimation();
13371 void ResetToDefault();
13372 bool Save(File) const;
13373 bool Save(VectorBuffer&) const;
13374 bool SaveJSON(JSONValue&) const;
13375 bool SaveXML(XMLElement&) const;
13376 void SendEvent(const String&, VariantMap& = VariantMap ( ));
13377 void SetAnimationTime(float);
13378 bool SetAttribute(const String&, const Variant&);
13379 void SetAttributeAnimation(const String&, ValueAnimation, WrapMode = WM_LOOP, float = 1.0f);
13380 void SetAttributeAnimationSpeed(const String&, float);
13381 void SetAttributeAnimationTime(const String&, float);
13382 void SetAttributeAnimationWrapMode(const String&, WrapMode);
13383 void SetInterceptNetworkUpdate(const String&, bool);
13384 Vector2 TileIndexToPosition(int, int) const;
13385 
13386 // Properties:
13387 bool animationEnabled;
13388 /* readonly */
13389 Array<Variant> attributeDefaults;
13390 /* readonly */
13391 Array<AttributeInfo> attributeInfos;
13392 Array<Variant> attributes;
13393 /* readonly */
13394 String category;
13395 bool enabled;
13396 /* readonly */
13397 bool enabledEffective;
13398 /* readonly */
13399 uint id;
13400 /* readonly */
13401 TileMapInfo2D info;
13402 /* readonly */
13403 Node node;
13404 /* readonly */
13405 uint numAttributes;
13406 /* readonly */
13407 uint numLayers;
13408 ObjectAnimation objectAnimation;
13409 /* readonly */
13410 int refs;
13411 bool temporary;
13412 TmxFile2D tmxFile;
13413 /* readonly */
13414 StringHash type;
13415 /* readonly */
13416 String typeName;
13417 /* readonly */
13418 int weakRefs;
13419 };
13420 
13421 class TileMapInfo2D
13422 {
13423 public:
13424 
13425 // Properties:
13426 int height;
13427 /* readonly */
13428 float mapHeight;
13429 /* readonly */
13430 float mapWidth;
13431 Orientation2D orientation;
13432 float tileHeight;
13433 float tileWidth;
13434 int width;
13435 };
13436 
13437 class TileMapLayer2D
13438 {
13439 public:
13440 // Methods:
13441 void ApplyAttributes();
13442 void DrawDebugGeometry(DebugRenderer, bool);
13443 Variant GetAttribute(const String&) const;
13444 ValueAnimation GetAttributeAnimation(const String&) const;
13445 float GetAttributeAnimationSpeed(const String&) const;
13446 float GetAttributeAnimationTime(const String&) const;
13447 WrapMode GetAttributeAnimationWrapMode(const String&) const;
13448 Variant GetAttributeDefault(const String&) const;
13449 bool GetInterceptNetworkUpdate(const String&) const;
13450 TileMapObject2D GetObject(uint) const;
13451 Node GetObjectNode(uint) const;
13452 Tile2D GetTile(int, int) const;
13453 Node GetTileNode(int, int) const;
13454 bool HasProperty(const String&) const;
13455 bool HasSubscribedToEvent(Object, const String&);
13456 bool HasSubscribedToEvent(const String&);
13457 bool Load(File, bool = false);
13458 bool Load(VectorBuffer&, bool = false);
13459 bool LoadJSON(const JSONValue&, bool = false);
13460 bool LoadXML(const XMLElement&, bool = false);
13461 void MarkNetworkUpdate() const;
13462 void Remove();
13463 void RemoveAttributeAnimation(const String&);
13464 void RemoveInstanceDefault();
13465 void RemoveObjectAnimation();
13466 void ResetToDefault();
13467 bool Save(File) const;
13468 bool Save(VectorBuffer&) const;
13469 bool SaveJSON(JSONValue&) const;
13470 bool SaveXML(XMLElement&) const;
13471 void SendEvent(const String&, VariantMap& = VariantMap ( ));
13472 void SetAnimationTime(float);
13473 bool SetAttribute(const String&, const Variant&);
13474 void SetAttributeAnimation(const String&, ValueAnimation, WrapMode = WM_LOOP, float = 1.0f);
13475 void SetAttributeAnimationSpeed(const String&, float);
13476 void SetAttributeAnimationTime(const String&, float);
13477 void SetAttributeAnimationWrapMode(const String&, WrapMode);
13478 void SetInterceptNetworkUpdate(const String&, bool);
13479 const String& GetProperty(const String&) const;
13480 
13481 // Properties:
13482 bool animationEnabled;
13483 /* readonly */
13484 Array<Variant> attributeDefaults;
13485 /* readonly */
13486 Array<AttributeInfo> attributeInfos;
13487 Array<Variant> attributes;
13488 /* readonly */
13489 String category;
13490 int drawOrder;
13491 bool enabled;
13492 /* readonly */
13493 bool enabledEffective;
13494 /* readonly */
13495 int height;
13496 /* readonly */
13497 uint id;
13498 /* readonly */
13499 Node imageNode;
13500 /* readonly */
13501 TileMapLayerType2D layerType;
13502 /* readonly */
13503 Node node;
13504 /* readonly */
13505 uint numAttributes;
13506 /* readonly */
13507 uint numObjects;
13508 ObjectAnimation objectAnimation;
13509 /* readonly */
13510 int refs;
13511 bool temporary;
13512 /* readonly */
13513 StringHash type;
13514 /* readonly */
13515 String typeName;
13516 bool visible;
13517 /* readonly */
13518 int weakRefs;
13519 /* readonly */
13520 int width;
13521 };
13522 
13523 class TileMapObject2D
13524 {
13525 public:
13526 // Methods:
13527 bool HasProperty(const String&) const;
13528 const String& GetProperty(const String&) const;
13529 const Vector2& GetPoint(uint) const;
13530 
13531 // Properties:
13532 /* readonly */
13533 String name;
13534 /* readonly */
13535 uint numPoints;
13536 /* readonly */
13537 TileObjectType2D objectType;
13538 /* readonly */
13539 Vector2 position;
13540 /* readonly */
13541 int refs;
13542 /* readonly */
13543 Vector2 size;
13544 /* readonly */
13545 int tileGid;
13546 /* readonly */
13547 Sprite2D tileSprite;
13548 /* readonly */
13549 String type;
13550 /* readonly */
13551 int weakRefs;
13552 };
13553 
13554 class Time
13555 {
13556 public:
13557 // Methods:
13558 bool HasSubscribedToEvent(Object, const String&);
13559 bool HasSubscribedToEvent(const String&);
13560 void SendEvent(const String&, VariantMap& = VariantMap ( ));
13561 
13562 // Properties:
13563 /* readonly */
13564 String category;
13565 /* readonly */
13566 float elapsedTime;
13567 /* readonly */
13568 uint frameNumber;
13569 /* readonly */
13570 int refs;
13571 /* readonly */
13572 uint systemTime;
13573 /* readonly */
13574 uint timeSinceEpoch;
13575 /* readonly */
13576 String timeStamp;
13577 /* readonly */
13578 float timeStep;
13579 /* readonly */
13580 StringHash type;
13581 /* readonly */
13582 String typeName;
13583 /* readonly */
13584 int weakRefs;
13585 };
13586 
13587 class Timer
13588 {
13589 public:
13590 Timer();
13591 // Methods:
13592 uint GetMSec(bool);
13593 void Reset();
13594 };
13595 
13596 class TmxFile2D
13597 {
13598 public:
13599 TmxFile2D();
13600 TmxFile2D(const String&in);
13601 // Methods:
13602 bool HasSubscribedToEvent(Object, const String&);
13603 bool HasSubscribedToEvent(const String&);
13604 bool Load(File);
13605 bool Load(VectorBuffer&);
13606 bool Load(const String&);
13607 bool Save(File) const;
13608 bool Save(VectorBuffer&) const;
13609 bool Save(const String&) const;
13610 void SendEvent(const String&, VariantMap& = VariantMap ( ));
13611 
13612 // Properties:
13613 /* readonly */
13614 String category;
13615 /* readonly */
13616 uint memoryUse;
13617 String name;
13618 /* readonly */
13619 int refs;
13620 /* readonly */
13621 StringHash type;
13622 /* readonly */
13623 String typeName;
13624 /* readonly */
13625 uint useTimer;
13626 /* readonly */
13627 int weakRefs;
13628 };
13629 
13630 class ToolTip
13631 {
13632 public:
13633 ToolTip();
13634 ToolTip(const String&in);
13635 // Methods:
13636 void AddChild(UIElement);
13637 void AddTag(const String&);
13638 void AddTags(const String&, int8 = ';');
13639 void ApplyAttributes();
13640 void BringToFront();
13641 UIElement CreateChild(const String&, const String& = String ( ), uint = M_MAX_UNSIGNED);
13642 void DisableLayoutUpdate();
13643 IntVector2 ElementToScreen(const IntVector2&);
13644 void EnableLayoutUpdate();
13645 uint FindChild(UIElement) const;
13646 Variant GetAttribute(const String&) const;
13647 ValueAnimation GetAttributeAnimation(const String&) const;
13648 float GetAttributeAnimationSpeed(const String&) const;
13649 float GetAttributeAnimationTime(const String&) const;
13650 WrapMode GetAttributeAnimationWrapMode(const String&) const;
13651 Variant GetAttributeDefault(const String&) const;
13652 UIElement GetChild(const String&, bool = false) const;
13653 UIElement GetChild(const StringHash&, const Variant& = Variant ( ), bool = false) const;
13654 Array<UIElement> GetChildren(bool = false) const;
13655 Array<UIElement> GetChildrenWithTag(const String&, bool = false) const;
13656 UIElement GetElementEventSender() const;
13657 bool GetInterceptNetworkUpdate(const String&) const;
13658 uint GetNumChildren(bool) const;
13659 bool HasSubscribedToEvent(Object, const String&);
13660 bool HasSubscribedToEvent(const String&);
13661 bool HasTag(const String&) const;
13662 void InsertChild(uint, UIElement);
13663 bool IsInside(IntVector2, bool);
13664 bool IsInsideCombined(IntVector2, bool);
13665 bool Load(File, bool = false);
13666 bool Load(VectorBuffer&, bool = false);
13667 UIElement LoadChildXML(XMLFile, XMLFile = null);
13668 UIElement LoadChildXML(const XMLElement&, XMLFile = null, bool = false);
13669 bool LoadJSON(const JSONValue&, bool = false);
13670 bool LoadXML(File);
13671 bool LoadXML(VectorBuffer&);
13672 bool LoadXML(XMLFile, XMLFile);
13673 bool LoadXML(const XMLElement&, XMLFile, bool = false);
13674 bool LoadXML(const XMLElement&, bool = false);
13675 void MarkNetworkUpdate() const;
13676 void Remove();
13677 void RemoveAllChildren();
13678 void RemoveAllTags();
13679 void RemoveAttributeAnimation(const String&);
13680 void RemoveChild(UIElement, uint = 0);
13681 void RemoveChild(uint);
13682 void RemoveInstanceDefault();
13683 void RemoveObjectAnimation();
13684 bool RemoveTag(const String&);
13685 void ResetDeepEnabled();
13686 void ResetToDefault();
13687 bool Save(File) const;
13688 bool Save(VectorBuffer&) const;
13689 bool SaveJSON(JSONValue&) const;
13690 bool SaveXML(File, const String& = "\t");
13691 bool SaveXML(VectorBuffer&, const String& = "\t");
13692 bool SaveXML(XMLElement&) const;
13693 IntVector2 ScreenToElement(const IntVector2&);
13694 void SendEvent(const String&, VariantMap& = VariantMap ( ));
13695 void SetAlignment(HorizontalAlignment, VerticalAlignment);
13696 void SetAnimationTime(float);
13697 bool SetAttribute(const String&, const Variant&);
13698 void SetAttributeAnimation(const String&, ValueAnimation, WrapMode = WM_LOOP, float = 1.0f);
13699 void SetAttributeAnimationSpeed(const String&, float);
13700 void SetAttributeAnimationTime(const String&, float);
13701 void SetAttributeAnimationWrapMode(const String&, WrapMode);
13702 void SetDeepEnabled(bool);
13703 void SetEnabledRecursive(bool);
13704 void SetFixedHeight(int);
13705 void SetFixedSize(int, int);
13706 void SetFixedWidth(int);
13707 void SetInterceptNetworkUpdate(const String&, bool);
13708 void SetLayout(LayoutMode, int = 0, const IntRect& = IntRect ( 0 , 0 , 0 , 0 ));
13709 void SetMaxAnchor(float, float);
13710 void SetMaxSize(int, int);
13711 void SetMinAnchor(float, float);
13712 void SetMinSize(int, int);
13713 void SetParent(UIElement, uint = M_MAX_UNSIGNED);
13714 void SetPivot(float, float);
13715 void SetPosition(int, int);
13716 void SetSize(int, int);
13717 bool SetStyle(const String&, XMLFile = null);
13718 bool SetStyle(const XMLElement&);
13719 bool SetStyleAuto(XMLFile = null);
13720 void UpdateLayout();
13721 const Variant& GetVar(const StringHash&);
13722 
13723 // Properties:
13724 bool animationEnabled;
13725 /* readonly */
13726 Array<Variant> attributeDefaults;
13727 /* readonly */
13728 Array<AttributeInfo> attributeInfos;
13729 Array<Variant> attributes;
13730 bool bringToBack;
13731 bool bringToFront;
13732 /* readonly */
13733 String category;
13734 /* readonly */
13735 IntVector2 childOffset;
13736 /* readonly */
13737 Array<UIElement> children;
13738 IntRect clipBorder;
13739 bool clipChildren;
13740 /* writeonly */
13741 Color color;
13742 /* readonly */
13743 bool colorGradient;
13744 Array<Color> colors;
13745 /* readonly */
13746 IntRect combinedScreenRect;
13747 XMLFile defaultStyle;
13748 float delay;
13749 /* readonly */
13750 float derivedOpacity;
13751 /* readonly */
13752 uint dragButtonCombo;
13753 /* readonly */
13754 int dragButtonCount;
13755 uint dragDropMode;
13756 bool editable;
13757 bool elementEventSender;
13758 bool enableAnchor;
13759 bool enabled;
13760 /* readonly */
13761 bool enabledSelf;
13762 /* readonly */
13763 bool fixedHeight;
13764 /* readonly */
13765 bool fixedSize;
13766 /* readonly */
13767 bool fixedWidth;
13768 bool focus;
13769 FocusMode focusMode;
13770 int height;
13771 HorizontalAlignment horizontalAlignment;
13772 /* readonly */
13773 bool hovering;
13774 int indent;
13775 int indentSpacing;
13776 /* readonly */
13777 int indentWidth;
13778 bool internal;
13779 IntRect layoutBorder;
13780 Vector2 layoutFlexScale;
13781 LayoutMode layoutMode;
13782 int layoutSpacing;
13783 Vector2 maxAnchor;
13784 int maxHeight;
13785 IntVector2 maxOffset;
13786 IntVector2 maxSize;
13787 int maxWidth;
13788 Vector2 minAnchor;
13789 int minHeight;
13790 IntVector2 minOffset;
13791 IntVector2 minSize;
13792 int minWidth;
13793 String name;
13794 /* readonly */
13795 uint numAllChildren;
13796 /* readonly */
13797 uint numAttributes;
13798 /* readonly */
13799 uint numChildren;
13800 ObjectAnimation objectAnimation;
13801 float opacity;
13802 UIElement parent;
13803 Vector2 pivot;
13804 IntVector2 position;
13805 int priority;
13806 /* readonly */
13807 int refs;
13808 /* readonly */
13809 UIElement root;
13810 /* readonly */
13811 IntVector2 screenPosition;
13812 bool selected;
13813 IntVector2 size;
13814 bool sortChildren;
13815 String style;
13816 /* readonly */
13817 Array<String> tags;
13818 bool temporary;
13819 TraversalMode traversalMode;
13820 /* readonly */
13821 StringHash type;
13822 /* readonly */
13823 String typeName;
13824 bool useDerivedOpacity;
13825 /* readonly */
13826 VariantMap vars;
13827 VerticalAlignment verticalAlignment;
13828 bool visible;
13829 /* readonly */
13830 bool visibleEffective;
13831 /* readonly */
13832 int weakRefs;
13833 int width;
13834 };
13835 
13836 class TouchState
13837 {
13838 public:
13839 
13840 // Properties:
13841 IntVector2 delta;
13842 IntVector2 lastPosition;
13843 IntVector2 position;
13844 float pressure;
13845 int touchID;
13846 /* readonly */
13847 UIElement touchedElement;
13848 };
13849 
13850 class UI
13851 {
13852 public:
13853 // Methods:
13854 void Clear();
13855 void DebugDraw(UIElement);
13856 UIElement GetElementAt(const IntVector2&, bool = true);
13857 UIElement GetElementAt(int, int, bool = true);
13858 bool HasModalElement() const;
13859 bool HasSubscribedToEvent(Object, const String&);
13860 bool HasSubscribedToEvent(const String&);
13861 bool IsDragging() const;
13862 UIElement LoadLayout(File);
13863 UIElement LoadLayout(File, XMLFile);
13864 UIElement LoadLayout(VectorBuffer&);
13865 UIElement LoadLayout(VectorBuffer&, XMLFile);
13866 UIElement LoadLayout(XMLFile);
13867 UIElement LoadLayout(XMLFile, XMLFile);
13868 bool SaveLayout(File, UIElement);
13869 bool SaveLayout(VectorBuffer&, UIElement);
13870 void SendEvent(const String&, VariantMap& = VariantMap ( ));
13871 void SetCustomSize(int, int);
13872 void SetFocusElement(UIElement, bool = false);
13873 void SetHeight(float);
13874 void SetWidth(float);
13875 const Array<UIElement> GetDragElements();
13876 
13877 // Properties:
13878 /* readonly */
13879 String category;
13880 String clipBoardText;
13881 Cursor cursor;
13882 /* readonly */
13883 IntVector2 cursorPosition;
13884 IntVector2 customSize;
13885 float defaultToolTipDelay;
13886 float doubleClickInterval;
13887 int dragBeginDistance;
13888 float dragBeginInterval;
13889 UIElement focusElement;
13890 FontHintLevel fontHintLevel;
13891 int fontOversampling;
13892 float fontSubpixelThreshold;
13893 bool forceAutoHint;
13894 /* readonly */
13895 UIElement frontElement;
13896 int maxFontTextureSize;
13897 /* readonly */
13898 UIElement modalRoot;
13899 bool nonFocusedMouseWheel;
13900 /* readonly */
13901 int refs;
13902 /* readonly */
13903 UIElement root;
13904 float scale;
13905 /* readonly */
13906 StringHash type;
13907 /* readonly */
13908 String typeName;
13909 bool useMutableGlyphs;
13910 bool useScreenKeyboard;
13911 bool useSystemClipboard;
13912 /* readonly */
13913 int weakRefs;
13914 };
13915 
13916 class UIElement
13917 {
13918 public:
13919 UIElement();
13920 UIElement(const String&in);
13921 // Methods:
13922 void AddChild(UIElement);
13923 void AddTag(const String&);
13924 void AddTags(const String&, int8 = ';');
13925 void ApplyAttributes();
13926 void BringToFront();
13927 UIElement CreateChild(const String&, const String& = String ( ), uint = M_MAX_UNSIGNED);
13928 void DisableLayoutUpdate();
13929 IntVector2 ElementToScreen(const IntVector2&);
13930 void EnableLayoutUpdate();
13931 uint FindChild(UIElement) const;
13932 Variant GetAttribute(const String&) const;
13933 ValueAnimation GetAttributeAnimation(const String&) const;
13934 float GetAttributeAnimationSpeed(const String&) const;
13935 float GetAttributeAnimationTime(const String&) const;
13936 WrapMode GetAttributeAnimationWrapMode(const String&) const;
13937 Variant GetAttributeDefault(const String&) const;
13938 UIElement GetChild(const String&, bool = false) const;
13939 UIElement GetChild(const StringHash&, const Variant& = Variant ( ), bool = false) const;
13940 Array<UIElement> GetChildren(bool = false) const;
13941 Array<UIElement> GetChildrenWithTag(const String&, bool = false) const;
13942 UIElement GetElementEventSender() const;
13943 bool GetInterceptNetworkUpdate(const String&) const;
13944 uint GetNumChildren(bool) const;
13945 bool HasSubscribedToEvent(Object, const String&);
13946 bool HasSubscribedToEvent(const String&);
13947 bool HasTag(const String&) const;
13948 void InsertChild(uint, UIElement);
13949 bool IsInside(IntVector2, bool);
13950 bool IsInsideCombined(IntVector2, bool);
13951 bool Load(File, bool = false);
13952 bool Load(VectorBuffer&, bool = false);
13953 UIElement LoadChildXML(XMLFile, XMLFile = null);
13954 UIElement LoadChildXML(const XMLElement&, XMLFile = null, bool = false);
13955 bool LoadJSON(const JSONValue&, bool = false);
13956 bool LoadXML(File);
13957 bool LoadXML(VectorBuffer&);
13958 bool LoadXML(XMLFile, XMLFile);
13959 bool LoadXML(const XMLElement&, XMLFile, bool = false);
13960 bool LoadXML(const XMLElement&, bool = false);
13961 void MarkNetworkUpdate() const;
13962 void Remove();
13963 void RemoveAllChildren();
13964 void RemoveAllTags();
13965 void RemoveAttributeAnimation(const String&);
13966 void RemoveChild(UIElement, uint = 0);
13967 void RemoveChild(uint);
13968 void RemoveInstanceDefault();
13969 void RemoveObjectAnimation();
13970 bool RemoveTag(const String&);
13971 void ResetDeepEnabled();
13972 void ResetToDefault();
13973 bool Save(File) const;
13974 bool Save(VectorBuffer&) const;
13975 bool SaveJSON(JSONValue&) const;
13976 bool SaveXML(File, const String& = "\t");
13977 bool SaveXML(VectorBuffer&, const String& = "\t");
13978 bool SaveXML(XMLElement&) const;
13979 IntVector2 ScreenToElement(const IntVector2&);
13980 void SendEvent(const String&, VariantMap& = VariantMap ( ));
13981 void SetAlignment(HorizontalAlignment, VerticalAlignment);
13982 void SetAnimationTime(float);
13983 bool SetAttribute(const String&, const Variant&);
13984 void SetAttributeAnimation(const String&, ValueAnimation, WrapMode = WM_LOOP, float = 1.0f);
13985 void SetAttributeAnimationSpeed(const String&, float);
13986 void SetAttributeAnimationTime(const String&, float);
13987 void SetAttributeAnimationWrapMode(const String&, WrapMode);
13988 void SetDeepEnabled(bool);
13989 void SetEnabledRecursive(bool);
13990 void SetFixedHeight(int);
13991 void SetFixedSize(int, int);
13992 void SetFixedWidth(int);
13993 void SetInterceptNetworkUpdate(const String&, bool);
13994 void SetLayout(LayoutMode, int = 0, const IntRect& = IntRect ( 0 , 0 , 0 , 0 ));
13995 void SetMaxAnchor(float, float);
13996 void SetMaxSize(int, int);
13997 void SetMinAnchor(float, float);
13998 void SetMinSize(int, int);
13999 void SetParent(UIElement, uint = M_MAX_UNSIGNED);
14000 void SetPivot(float, float);
14001 void SetPosition(int, int);
14002 void SetSize(int, int);
14003 bool SetStyle(const String&, XMLFile = null);
14004 bool SetStyle(const XMLElement&);
14005 bool SetStyleAuto(XMLFile = null);
14006 void UpdateLayout();
14007 const Variant& GetVar(const StringHash&);
14008 
14009 // Properties:
14010 bool animationEnabled;
14011 /* readonly */
14012 Array<Variant> attributeDefaults;
14013 /* readonly */
14014 Array<AttributeInfo> attributeInfos;
14015 Array<Variant> attributes;
14016 bool bringToBack;
14017 bool bringToFront;
14018 /* readonly */
14019 String category;
14020 /* readonly */
14021 IntVector2 childOffset;
14022 /* readonly */
14023 Array<UIElement> children;
14024 IntRect clipBorder;
14025 bool clipChildren;
14026 /* writeonly */
14027 Color color;
14028 /* readonly */
14029 bool colorGradient;
14030 Array<Color> colors;
14031 /* readonly */
14032 IntRect combinedScreenRect;
14033 XMLFile defaultStyle;
14034 /* readonly */
14035 float derivedOpacity;
14036 /* readonly */
14037 uint dragButtonCombo;
14038 /* readonly */
14039 int dragButtonCount;
14040 uint dragDropMode;
14041 bool editable;
14042 bool elementEventSender;
14043 bool enableAnchor;
14044 bool enabled;
14045 /* readonly */
14046 bool enabledSelf;
14047 /* readonly */
14048 bool fixedHeight;
14049 /* readonly */
14050 bool fixedSize;
14051 /* readonly */
14052 bool fixedWidth;
14053 bool focus;
14054 FocusMode focusMode;
14055 int height;
14056 HorizontalAlignment horizontalAlignment;
14057 /* readonly */
14058 bool hovering;
14059 int indent;
14060 int indentSpacing;
14061 /* readonly */
14062 int indentWidth;
14063 bool internal;
14064 IntRect layoutBorder;
14065 Vector2 layoutFlexScale;
14066 LayoutMode layoutMode;
14067 int layoutSpacing;
14068 Vector2 maxAnchor;
14069 int maxHeight;
14070 IntVector2 maxOffset;
14071 IntVector2 maxSize;
14072 int maxWidth;
14073 Vector2 minAnchor;
14074 int minHeight;
14075 IntVector2 minOffset;
14076 IntVector2 minSize;
14077 int minWidth;
14078 String name;
14079 /* readonly */
14080 uint numAllChildren;
14081 /* readonly */
14082 uint numAttributes;
14083 /* readonly */
14084 uint numChildren;
14085 ObjectAnimation objectAnimation;
14086 float opacity;
14087 UIElement parent;
14088 Vector2 pivot;
14089 IntVector2 position;
14090 int priority;
14091 /* readonly */
14092 int refs;
14093 /* readonly */
14094 UIElement root;
14095 /* readonly */
14096 IntVector2 screenPosition;
14097 bool selected;
14098 IntVector2 size;
14099 bool sortChildren;
14100 String style;
14101 /* readonly */
14102 Array<String> tags;
14103 bool temporary;
14104 TraversalMode traversalMode;
14105 /* readonly */
14106 StringHash type;
14107 /* readonly */
14108 String typeName;
14109 bool useDerivedOpacity;
14110 /* readonly */
14111 VariantMap vars;
14112 VerticalAlignment verticalAlignment;
14113 bool visible;
14114 /* readonly */
14115 bool visibleEffective;
14116 /* readonly */
14117 int weakRefs;
14118 int width;
14119 };
14120 
14121 class ValueAnimation
14122 {
14123 public:
14124 ValueAnimation();
14125 ValueAnimation(const String&in);
14126 // Methods:
14127 bool HasSubscribedToEvent(Object, const String&);
14128 bool HasSubscribedToEvent(const String&);
14129 bool Load(File);
14130 bool Load(VectorBuffer&);
14131 bool Load(const String&);
14132 bool Save(File) const;
14133 bool Save(VectorBuffer&) const;
14134 bool Save(const String&) const;
14135 void SendEvent(const String&, VariantMap& = VariantMap ( ));
14136 void SetEventFrame(float, const String&, const VariantMap& = VariantMap ( ));
14137 void SetKeyFrame(float, const Variant&);
14138 
14139 // Properties:
14140 /* readonly */
14141 String category;
14142 InterpMethod interpolationMethod;
14143 /* readonly */
14144 uint memoryUse;
14145 String name;
14146 /* readonly */
14147 int refs;
14148 float splineTension;
14149 /* readonly */
14150 StringHash type;
14151 /* readonly */
14152 String typeName;
14153 /* readonly */
14154 uint useTimer;
14155 VariantType valueType;
14156 /* readonly */
14157 int weakRefs;
14158 };
14159 
14160 class Variant
14161 {
14162 public:
14163 ~Variant();
14164 Variant();
14165 Variant(const Variant&in);
14166 Variant(int);
14167 Variant(uint);
14168 Variant(int64);
14169 Variant(uint64);
14170 Variant(const StringHash&in);
14171 Variant(bool);
14172 Variant(float);
14173 Variant(double);
14174 Variant(const Vector2&in);
14175 Variant(const Vector3&in);
14176 Variant(const Vector4&in);
14177 Variant(const Quaternion&in);
14178 Variant(const Color&in);
14179 Variant(const String&in);
14180 Variant(const ResourceRef&in);
14181 Variant(const ResourceRefList&in);
14182 Variant(const Variant[]@);
14183 Variant(const String[]@);
14184 Variant(const VariantMap&in);
14185 Variant(const Rect&in);
14186 Variant(const IntRect&in);
14187 Variant(const IntVector2&in);
14188 Variant(const IntVector3&in);
14189 Variant(RefCounted@);
14190 Variant(ScriptObject@);
14191 Variant(const Matrix3&in);
14192 Variant(const Matrix3x4&in);
14193 Variant(const Matrix4&in);
14194 Variant(const String&in, const String&in);
14195 Variant(VariantType, const String&in);
14196 Variant(const VectorBuffer&in);
14197 // Methods:
14198 void Clear();
14199 const Color& GetColor() const;
14200 void FromString(VariantType, const String&);
14201 void FromString(const String&, const String&);
14202 bool GetBool() const;
14203 VectorBuffer GetBuffer() const;
14204 double GetDouble() const;
14205 float GetFloat() const;
14206 int GetInt() const;
14207 int GetInt64() const;
14208 RefCounted GetPtr() const;
14209 ScriptObject GetScriptObject() const;
14210 StringHash GetStringHash() const;
14211 Array<String> GetStringVector() const;
14212 uint GetUInt() const;
14213 uint64 GetUInt64() const;
14214 Array<Variant> GetVariantVector() const;
14215 const IntRect& GetIntRect() const;
14216 const IntVector2& GetIntVector2() const;
14217 const IntVector3& GetIntVector3() const;
14218 const Matrix3& GetMatrix3() const;
14219 const Matrix3x4& GetMatrix3x4() const;
14220 const Matrix4& GetMatrix4() const;
14221 const Quaternion& GetQuaternion() const;
14222 const Rect& GetRect() const;
14223 const ResourceRef& GetResourceRef() const;
14224 const ResourceRefList& GetResourceRefList() const;
14225 const String& GetString() const;
14226 String ToString() const;
14227 const VariantMap& GetVariantMap() const;
14228 const Vector2& GetVector2() const;
14229 const Vector3& GetVector3() const;
14230 const Vector4& GetVector4() const;
14231 
14232 // Properties:
14233 /* readonly */
14234 bool empty;
14235 /* readonly */
14236 VariantType type;
14237 /* readonly */
14238 String typeName;
14239 /* readonly */
14240 bool zero;
14241 };
14242 
14243 class VariantMap
14244 {
14245 public:
14246 ~VariantMap();
14247 VariantMap();
14248 VariantMap(const VariantMap&in);
14249 // Methods:
14250 void Clear();
14251 bool Contains(StringHash) const;
14252 bool Contains(const String&) const;
14253 bool Erase(StringHash);
14254 bool Erase(const String&);
14255 
14256 // Properties:
14257 /* readonly */
14258 Array<StringHash> keys;
14259 /* readonly */
14260 uint length;
14261 /* readonly */
14262 Array<Variant> values;
14263 };
14264 
14265 class Vector2
14266 {
14267 public:
14268 Vector2();
14269 Vector2(const Vector2&in);
14270 Vector2(const IntVector2&in);
14271 Vector2(float, float);
14272 Vector2(float[]&inout);
14273 // Methods:
14274 Vector2 Abs() const;
14275 float AbsDotProduct(const Vector2&) const;
14276 float Angle(const Vector2&) const;
14277 float DotProduct(const Vector2&) const;
14278 bool Equals(const Vector2&) const;
14279 bool IsNaN() const;
14280 Vector2 Lerp(const Vector2&, float) const;
14281 void Normalize();
14282 Vector2 Normalized() const;
14283 float ProjectOntoAxis(const Vector2&) const;
14284 String ToString() const;
14285 
14286 // Properties:
14287 /* readonly */
14288 Array<float> data;
14289 /* readonly */
14290 float length;
14291 /* readonly */
14292 float lengthSquared;
14293 float x;
14294 float y;
14295 
14296 // Constants:
14297 static const Vector2 DOWN;
14298 static const Vector2 LEFT;
14299 static const Vector2 ONE;
14300 static const Vector2 RIGHT;
14301 static const Vector2 UP;
14302 static const Vector2 ZERO;
14303 };
14304 
14305 class Vector3
14306 {
14307 public:
14308 Vector3();
14309 Vector3(const Vector3&in);
14310 Vector3(const Vector2&in, float);
14311 Vector3(const Vector2&in);
14312 Vector3(const IntVector3&in);
14313 Vector3(float, float, float);
14314 Vector3(float, float);
14315 Vector3(float[]&inout);
14316 // Methods:
14317 Vector3 Abs() const;
14318 float AbsDotProduct(const Vector3&) const;
14319 float Angle(const Vector3&) const;
14320 Vector3 CrossProduct(const Vector3&) const;
14321 float DotProduct(const Vector3&) const;
14322 bool Equals(const Vector3&) const;
14323 bool IsNaN() const;
14324 Vector3 Lerp(const Vector3&, float) const;
14325 void Normalize();
14326 Vector3 Normalized() const;
14327 Vector3 Orthogonalize(const Vector3&) const;
14328 float ProjectOntoAxis(const Vector3&) const;
14329 String ToString() const;
14330 
14331 // Properties:
14332 /* readonly */
14333 Array<float> data;
14334 /* readonly */
14335 float length;
14336 /* readonly */
14337 float lengthSquared;
14338 float x;
14339 float y;
14340 float z;
14341 
14342 // Constants:
14343 static const Vector3 BACK;
14344 static const Vector3 DOWN;
14345 static const Vector3 FORWARD;
14346 static const Vector3 LEFT;
14347 static const Vector3 ONE;
14348 static const Vector3 RIGHT;
14349 static const Vector3 UP;
14350 static const Vector3 ZERO;
14351 };
14352 
14353 class Vector4
14354 {
14355 public:
14356 Vector4();
14357 Vector4(const Vector4&in);
14358 Vector4(float, float, float, float);
14359 Vector4(const Vector3&in, float);
14360 Vector4(float[]&inout);
14361 // Methods:
14362 Vector4 Abs() const;
14363 float AbsDotProduct(const Vector4&) const;
14364 float DotProduct(const Vector4&) const;
14365 bool Equals(const Vector4&) const;
14366 bool IsNaN() const;
14367 Vector4 Lerp(const Vector4&, float) const;
14368 float ProjectOntoAxis(const Vector3&) const;
14369 String ToString() const;
14370 
14371 // Properties:
14372 /* readonly */
14373 Array<float> data;
14374 float w;
14375 float x;
14376 float y;
14377 float z;
14378 };
14379 
14380 class VectorBuffer
14381 {
14382 public:
14383 ~VectorBuffer();
14384 VectorBuffer();
14385 VectorBuffer(const VectorBuffer&in);
14386 VectorBuffer(Deserializer@, uint);
14387 // Methods:
14388 void Clear();
14389 Array<uint8> Read(uint);
14390 bool ReadBool();
14391 BoundingBox ReadBoundingBox();
14392 int8 ReadByte();
14393 Color ReadColor();
14394 double ReadDouble();
14395 String ReadFileID();
14396 float ReadFloat();
14397 int ReadInt();
14398 int64 ReadInt64();
14399 IntRect ReadIntRect();
14400 IntVector2 ReadIntVector2();
14401 String ReadLine();
14402 Matrix3 ReadMatrix3();
14403 Matrix3x4 ReadMatrix3x4();
14404 Matrix4 ReadMatrix4();
14405 uint ReadNetID();
14406 Quaternion ReadPackedQuaternion();
14407 Vector3 ReadPackedVector3(float);
14408 Quaternion ReadQuaternion();
14409 int16 ReadShort();
14410 String ReadString();
14411 StringHash ReadStringHash();
14412 uint8 ReadUByte();
14413 uint ReadUInt();
14414 uint64 ReadUInt64();
14415 uint16 ReadUShort();
14416 uint ReadVLE();
14417 Variant ReadVariant();
14418 VariantMap ReadVariantMap();
14419 Vector2 ReadVector2();
14420 Vector3 ReadVector3();
14421 Vector4 ReadVector4();
14422 VectorBuffer ReadVectorBuffer(uint);
14423 void Resize(uint);
14424 uint Seek(uint);
14425 uint SeekRelative(int);
14426 void SetData(Deserializer, uint);
14427 uint Tell() const;
14428 uint Write(Array<uint8>);
14429 bool WriteBool(bool);
14430 bool WriteBoundingBox(const BoundingBox&);
14431 bool WriteByte(int8);
14432 bool WriteColor(const Color&);
14433 bool WriteDouble(double);
14434 bool WriteFileID(const String&);
14435 bool WriteFloat(float);
14436 bool WriteInt(int);
14437 bool WriteInt64(int64);
14438 bool WriteIntRect(const IntRect&);
14439 bool WriteIntVector2(const IntVector2&);
14440 bool WriteLine(const String&);
14441 bool WriteMatrix3(const Matrix3&);
14442 bool WriteMatrix3x4(const Matrix3x4&);
14443 bool WriteMatrix4(const Matrix4&);
14444 bool WriteNetID(uint);
14445 bool WritePackedQuaternion(const Quaternion&);
14446 bool WritePackedVector3(const Vector3&, float);
14447 bool WriteQuaternion(const Quaternion&);
14448 bool WriteShort(int16);
14449 bool WriteString(const String&);
14450 bool WriteStringHash(const StringHash&);
14451 bool WriteUByte(uint8);
14452 bool WriteUInt(uint);
14453 bool WriteUInt64(uint64);
14454 bool WriteUShort(uint16);
14455 bool WriteVLE(uint);
14456 bool WriteVariant(const Variant&);
14457 bool WriteVariantMap(const VariantMap&);
14458 bool WriteVector2(const Vector2&);
14459 bool WriteVector3(const Vector3&);
14460 bool WriteVector4(const Vector4&);
14461 bool WriteVectorBuffer(const VectorBuffer&);
14462 
14463 // Properties:
14464 /* readonly */
14465 uint checksum;
14466 /* readonly */
14467 bool eof;
14468 /* readonly */
14469 String name;
14470 /* readonly */
14471 uint position;
14472 /* readonly */
14473 uint size;
14474 };
14475 
14476 class VertexBuffer
14477 {
14478 public:
14479 VertexBuffer();
14480 // Methods:
14481 VectorBuffer GetData() const;
14482 uint GetElementOffset(VertexElementSemantic, uint8 = 0) const;
14483 uint GetElementOffset(VertexElementType, VertexElementSemantic, uint8 = 0) const;
14484 bool HasElement(VertexElementSemantic, uint8 = 0) const;
14485 bool HasElement(VertexElementType, VertexElementSemantic, uint8 = 0) const;
14486 bool HasSubscribedToEvent(Object, const String&);
14487 bool HasSubscribedToEvent(const String&);
14488 void SendEvent(const String&, VariantMap& = VariantMap ( ));
14489 bool SetData(VectorBuffer&);
14490 bool SetDataRange(VectorBuffer&, uint, uint, bool = false);
14491 void SetSize(uint, Array<VertexElement>, bool = false);
14492 void SetSize(uint, uint, bool = false);
14493 
14494 // Properties:
14495 /* readonly */
14496 String category;
14497 /* readonly */
14498 bool dynamic;
14499 /* readonly */
14500 uint elementMask;
14501 /* readonly */
14502 Array<VertexElement> elements;
14503 /* readonly */
14504 int refs;
14505 bool shadowed;
14506 /* readonly */
14507 StringHash type;
14508 /* readonly */
14509 String typeName;
14510 /* readonly */
14511 uint vertexCount;
14512 /* readonly */
14513 uint vertexSize;
14514 /* readonly */
14515 int weakRefs;
14516 };
14517 
14518 class VertexElement
14519 {
14520 public:
14521 ~VertexElement();
14522 VertexElement();
14523 VertexElement(const VertexElement&in);
14524 VertexElement(VertexElementType, VertexElementSemantic, uint8 index = 0, bool perInstance = false);
14525 
14526 // Properties:
14527 uint8 index;
14528 uint offset;
14529 bool perInstance;
14530 VertexElementSemantic semantic;
14531 VertexElementType type;
14532 };
14533 
14534 class View3D
14535 {
14536 public:
14537 View3D();
14538 View3D(const String&in);
14539 // Methods:
14540 void AddChild(UIElement);
14541 void AddTag(const String&);
14542 void AddTags(const String&, int8 = ';');
14543 void ApplyAttributes();
14544 void BringToFront();
14545 UIElement CreateChild(const String&, const String& = String ( ), uint = M_MAX_UNSIGNED);
14546 void DisableLayoutUpdate();
14547 IntVector2 ElementToScreen(const IntVector2&);
14548 void EnableLayoutUpdate();
14549 uint FindChild(UIElement) const;
14550 Variant GetAttribute(const String&) const;
14551 ValueAnimation GetAttributeAnimation(const String&) const;
14552 float GetAttributeAnimationSpeed(const String&) const;
14553 float GetAttributeAnimationTime(const String&) const;
14554 WrapMode GetAttributeAnimationWrapMode(const String&) const;
14555 Variant GetAttributeDefault(const String&) const;
14556 UIElement GetChild(const String&, bool = false) const;
14557 UIElement GetChild(const StringHash&, const Variant& = Variant ( ), bool = false) const;
14558 Array<UIElement> GetChildren(bool = false) const;
14559 Array<UIElement> GetChildrenWithTag(const String&, bool = false) const;
14560 UIElement GetElementEventSender() const;
14561 bool GetInterceptNetworkUpdate(const String&) const;
14562 uint GetNumChildren(bool) const;
14563 bool HasSubscribedToEvent(Object, const String&);
14564 bool HasSubscribedToEvent(const String&);
14565 bool HasTag(const String&) const;
14566 void InsertChild(uint, UIElement);
14567 bool IsInside(IntVector2, bool);
14568 bool IsInsideCombined(IntVector2, bool);
14569 bool Load(File, bool = false);
14570 bool Load(VectorBuffer&, bool = false);
14571 UIElement LoadChildXML(XMLFile, XMLFile = null);
14572 UIElement LoadChildXML(const XMLElement&, XMLFile = null, bool = false);
14573 bool LoadJSON(const JSONValue&, bool = false);
14574 bool LoadXML(File);
14575 bool LoadXML(VectorBuffer&);
14576 bool LoadXML(XMLFile, XMLFile);
14577 bool LoadXML(const XMLElement&, XMLFile, bool = false);
14578 bool LoadXML(const XMLElement&, bool = false);
14579 void MarkNetworkUpdate() const;
14580 void QueueUpdate();
14581 void Remove();
14582 void RemoveAllChildren();
14583 void RemoveAllTags();
14584 void RemoveAttributeAnimation(const String&);
14585 void RemoveChild(UIElement, uint = 0);
14586 void RemoveChild(uint);
14587 void RemoveInstanceDefault();
14588 void RemoveObjectAnimation();
14589 bool RemoveTag(const String&);
14590 void ResetDeepEnabled();
14591 void ResetToDefault();
14592 bool Save(File) const;
14593 bool Save(VectorBuffer&) const;
14594 bool SaveJSON(JSONValue&) const;
14595 bool SaveXML(File, const String& = "\t");
14596 bool SaveXML(VectorBuffer&, const String& = "\t");
14597 bool SaveXML(XMLElement&) const;
14598 IntVector2 ScreenToElement(const IntVector2&);
14599 void SendEvent(const String&, VariantMap& = VariantMap ( ));
14600 void SetAlignment(HorizontalAlignment, VerticalAlignment);
14601 void SetAnimationTime(float);
14602 bool SetAttribute(const String&, const Variant&);
14603 void SetAttributeAnimation(const String&, ValueAnimation, WrapMode = WM_LOOP, float = 1.0f);
14604 void SetAttributeAnimationSpeed(const String&, float);
14605 void SetAttributeAnimationTime(const String&, float);
14606 void SetAttributeAnimationWrapMode(const String&, WrapMode);
14607 void SetDeepEnabled(bool);
14608 void SetEnabledRecursive(bool);
14609 void SetFixedHeight(int);
14610 void SetFixedSize(int, int);
14611 void SetFixedWidth(int);
14612 void SetFullImageRect();
14613 void SetHoverOffset(int, int);
14614 void SetInterceptNetworkUpdate(const String&, bool);
14615 void SetLayout(LayoutMode, int = 0, const IntRect& = IntRect ( 0 , 0 , 0 , 0 ));
14616 void SetMaxAnchor(float, float);
14617 void SetMaxSize(int, int);
14618 void SetMinAnchor(float, float);
14619 void SetMinSize(int, int);
14620 void SetParent(UIElement, uint = M_MAX_UNSIGNED);
14621 void SetPivot(float, float);
14622 void SetPosition(int, int);
14623 void SetSize(int, int);
14624 bool SetStyle(const String&, XMLFile = null);
14625 bool SetStyle(const XMLElement&);
14626 bool SetStyleAuto(XMLFile = null);
14627 void SetView(Scene, Camera, bool = true);
14628 void UpdateLayout();
14629 const Variant& GetVar(const StringHash&);
14630 
14631 // Properties:
14632 bool animationEnabled;
14633 /* readonly */
14634 Array<Variant> attributeDefaults;
14635 /* readonly */
14636 Array<AttributeInfo> attributeInfos;
14637 Array<Variant> attributes;
14638 bool autoUpdate;
14639 BlendMode blendMode;
14640 IntRect border;
14641 bool bringToBack;
14642 bool bringToFront;
14643 /* readonly */
14644 Node cameraNode;
14645 /* readonly */
14646 String category;
14647 /* readonly */
14648 IntVector2 childOffset;
14649 /* readonly */
14650 Array<UIElement> children;
14651 IntRect clipBorder;
14652 bool clipChildren;
14653 /* writeonly */
14654 Color color;
14655 /* readonly */
14656 bool colorGradient;
14657 Array<Color> colors;
14658 /* readonly */
14659 IntRect combinedScreenRect;
14660 XMLFile defaultStyle;
14661 /* readonly */
14662 Texture2D depthTexture;
14663 /* readonly */
14664 float derivedOpacity;
14665 /* readonly */
14666 uint dragButtonCombo;
14667 /* readonly */
14668 int dragButtonCount;
14669 uint dragDropMode;
14670 bool editable;
14671 bool elementEventSender;
14672 bool enableAnchor;
14673 bool enabled;
14674 /* readonly */
14675 bool enabledSelf;
14676 /* readonly */
14677 bool fixedHeight;
14678 bool fixedHeightResizing;
14679 /* readonly */
14680 bool fixedSize;
14681 /* readonly */
14682 bool fixedWidth;
14683 bool fixedWidthResizing;
14684 bool focus;
14685 FocusMode focusMode;
14686 uint format;
14687 int height;
14688 HorizontalAlignment horizontalAlignment;
14689 IntVector2 hoverOffset;
14690 /* readonly */
14691 bool hovering;
14692 IntRect imageBorder;
14693 IntRect imageRect;
14694 int indent;
14695 int indentSpacing;
14696 /* readonly */
14697 int indentWidth;
14698 bool internal;
14699 IntRect layoutBorder;
14700 Vector2 layoutFlexScale;
14701 LayoutMode layoutMode;
14702 int layoutSpacing;
14703 Vector2 maxAnchor;
14704 int maxHeight;
14705 IntVector2 maxOffset;
14706 IntVector2 maxSize;
14707 int maxWidth;
14708 Vector2 minAnchor;
14709 int minHeight;
14710 IntVector2 minOffset;
14711 IntVector2 minSize;
14712 int minWidth;
14713 bool modal;
14714 bool modalAutoDismiss;
14715 Color modalFrameColor;
14716 IntVector2 modalFrameSize;
14717 Color modalShadeColor;
14718 bool movable;
14719 String name;
14720 /* readonly */
14721 uint numAllChildren;
14722 /* readonly */
14723 uint numAttributes;
14724 /* readonly */
14725 uint numChildren;
14726 ObjectAnimation objectAnimation;
14727 float opacity;
14728 UIElement parent;
14729 Vector2 pivot;
14730 IntVector2 position;
14731 int priority;
14732 /* readonly */
14733 int refs;
14734 /* readonly */
14735 Texture2D renderTexture;
14736 bool resizable;
14737 IntRect resizeBorder;
14738 /* readonly */
14739 UIElement root;
14740 /* readonly */
14741 Scene scene;
14742 /* readonly */
14743 IntVector2 screenPosition;
14744 bool selected;
14745 IntVector2 size;
14746 bool sortChildren;
14747 String style;
14748 /* readonly */
14749 Array<String> tags;
14750 bool temporary;
14751 Texture texture;
14752 bool tiled;
14753 TraversalMode traversalMode;
14754 /* readonly */
14755 StringHash type;
14756 /* readonly */
14757 String typeName;
14758 bool useDerivedOpacity;
14759 /* readonly */
14760 VariantMap vars;
14761 VerticalAlignment verticalAlignment;
14762 /* readonly */
14763 Viewport viewport;
14764 bool visible;
14765 /* readonly */
14766 bool visibleEffective;
14767 /* readonly */
14768 int weakRefs;
14769 int width;
14770 };
14771 
14772 class Viewport
14773 {
14774 public:
14775 Viewport();
14776 Viewport(Scene&, Camera&, RenderPath& renderPath = null);
14777 Viewport(Scene&, Camera&, const IntRect&in, RenderPath& renderPath = null);
14778 // Methods:
14779 Ray GetScreenRay(int, int) const;
14780 bool HasSubscribedToEvent(Object, const String&);
14781 bool HasSubscribedToEvent(const String&);
14782 Vector3 ScreenToWorldPoint(int, int, float) const;
14783 void SendEvent(const String&, VariantMap& = VariantMap ( ));
14784 void SetRenderPath(XMLFile);
14785 IntVector2 WorldToScreenPoint(const Vector3&) const;
14786 
14787 // Properties:
14788 Camera camera;
14789 /* readonly */
14790 String category;
14791 Camera cullCamera;
14792 bool drawDebug;
14793 IntRect rect;
14794 /* readonly */
14795 int refs;
14796 RenderPath renderPath;
14797 Scene scene;
14798 /* readonly */
14799 StringHash type;
14800 /* readonly */
14801 String typeName;
14802 /* readonly */
14803 int weakRefs;
14804 };
14805 
14806 class WeakHandle
14807 {
14808 public:
14809 ~WeakHandle();
14810 WeakHandle();
14811 WeakHandle(const WeakHandle&in);
14812 WeakHandle(RefCounted@);
14813 // Methods:
14814 RefCounted Get() const;
14815 
14816 // Properties:
14817 /* readonly */
14818 bool expired;
14819 /* readonly */
14820 int refs;
14821 /* readonly */
14822 int weakRefs;
14823 };
14824 
14825 class Window
14826 {
14827 public:
14828 Window();
14829 Window(const String&in);
14830 // Methods:
14831 void AddChild(UIElement);
14832 void AddTag(const String&);
14833 void AddTags(const String&, int8 = ';');
14834 void ApplyAttributes();
14835 void BringToFront();
14836 UIElement CreateChild(const String&, const String& = String ( ), uint = M_MAX_UNSIGNED);
14837 void DisableLayoutUpdate();
14838 IntVector2 ElementToScreen(const IntVector2&);
14839 void EnableLayoutUpdate();
14840 uint FindChild(UIElement) const;
14841 Variant GetAttribute(const String&) const;
14842 ValueAnimation GetAttributeAnimation(const String&) const;
14843 float GetAttributeAnimationSpeed(const String&) const;
14844 float GetAttributeAnimationTime(const String&) const;
14845 WrapMode GetAttributeAnimationWrapMode(const String&) const;
14846 Variant GetAttributeDefault(const String&) const;
14847 UIElement GetChild(const String&, bool = false) const;
14848 UIElement GetChild(const StringHash&, const Variant& = Variant ( ), bool = false) const;
14849 Array<UIElement> GetChildren(bool = false) const;
14850 Array<UIElement> GetChildrenWithTag(const String&, bool = false) const;
14851 UIElement GetElementEventSender() const;
14852 bool GetInterceptNetworkUpdate(const String&) const;
14853 uint GetNumChildren(bool) const;
14854 bool HasSubscribedToEvent(Object, const String&);
14855 bool HasSubscribedToEvent(const String&);
14856 bool HasTag(const String&) const;
14857 void InsertChild(uint, UIElement);
14858 bool IsInside(IntVector2, bool);
14859 bool IsInsideCombined(IntVector2, bool);
14860 bool Load(File, bool = false);
14861 bool Load(VectorBuffer&, bool = false);
14862 UIElement LoadChildXML(XMLFile, XMLFile = null);
14863 UIElement LoadChildXML(const XMLElement&, XMLFile = null, bool = false);
14864 bool LoadJSON(const JSONValue&, bool = false);
14865 bool LoadXML(File);
14866 bool LoadXML(VectorBuffer&);
14867 bool LoadXML(XMLFile, XMLFile);
14868 bool LoadXML(const XMLElement&, XMLFile, bool = false);
14869 bool LoadXML(const XMLElement&, bool = false);
14870 void MarkNetworkUpdate() const;
14871 void Remove();
14872 void RemoveAllChildren();
14873 void RemoveAllTags();
14874 void RemoveAttributeAnimation(const String&);
14875 void RemoveChild(UIElement, uint = 0);
14876 void RemoveChild(uint);
14877 void RemoveInstanceDefault();
14878 void RemoveObjectAnimation();
14879 bool RemoveTag(const String&);
14880 void ResetDeepEnabled();
14881 void ResetToDefault();
14882 bool Save(File) const;
14883 bool Save(VectorBuffer&) const;
14884 bool SaveJSON(JSONValue&) const;
14885 bool SaveXML(File, const String& = "\t");
14886 bool SaveXML(VectorBuffer&, const String& = "\t");
14887 bool SaveXML(XMLElement&) const;
14888 IntVector2 ScreenToElement(const IntVector2&);
14889 void SendEvent(const String&, VariantMap& = VariantMap ( ));
14890 void SetAlignment(HorizontalAlignment, VerticalAlignment);
14891 void SetAnimationTime(float);
14892 bool SetAttribute(const String&, const Variant&);
14893 void SetAttributeAnimation(const String&, ValueAnimation, WrapMode = WM_LOOP, float = 1.0f);
14894 void SetAttributeAnimationSpeed(const String&, float);
14895 void SetAttributeAnimationTime(const String&, float);
14896 void SetAttributeAnimationWrapMode(const String&, WrapMode);
14897 void SetDeepEnabled(bool);
14898 void SetEnabledRecursive(bool);
14899 void SetFixedHeight(int);
14900 void SetFixedSize(int, int);
14901 void SetFixedWidth(int);
14902 void SetFullImageRect();
14903 void SetHoverOffset(int, int);
14904 void SetInterceptNetworkUpdate(const String&, bool);
14905 void SetLayout(LayoutMode, int = 0, const IntRect& = IntRect ( 0 , 0 , 0 , 0 ));
14906 void SetMaxAnchor(float, float);
14907 void SetMaxSize(int, int);
14908 void SetMinAnchor(float, float);
14909 void SetMinSize(int, int);
14910 void SetParent(UIElement, uint = M_MAX_UNSIGNED);
14911 void SetPivot(float, float);
14912 void SetPosition(int, int);
14913 void SetSize(int, int);
14914 bool SetStyle(const String&, XMLFile = null);
14915 bool SetStyle(const XMLElement&);
14916 bool SetStyleAuto(XMLFile = null);
14917 void UpdateLayout();
14918 const Variant& GetVar(const StringHash&);
14919 
14920 // Properties:
14921 bool animationEnabled;
14922 /* readonly */
14923 Array<Variant> attributeDefaults;
14924 /* readonly */
14925 Array<AttributeInfo> attributeInfos;
14926 Array<Variant> attributes;
14927 BlendMode blendMode;
14928 IntRect border;
14929 bool bringToBack;
14930 bool bringToFront;
14931 /* readonly */
14932 String category;
14933 /* readonly */
14934 IntVector2 childOffset;
14935 /* readonly */
14936 Array<UIElement> children;
14937 IntRect clipBorder;
14938 bool clipChildren;
14939 /* writeonly */
14940 Color color;
14941 /* readonly */
14942 bool colorGradient;
14943 Array<Color> colors;
14944 /* readonly */
14945 IntRect combinedScreenRect;
14946 XMLFile defaultStyle;
14947 /* readonly */
14948 float derivedOpacity;
14949 /* readonly */
14950 uint dragButtonCombo;
14951 /* readonly */
14952 int dragButtonCount;
14953 uint dragDropMode;
14954 bool editable;
14955 bool elementEventSender;
14956 bool enableAnchor;
14957 bool enabled;
14958 /* readonly */
14959 bool enabledSelf;
14960 /* readonly */
14961 bool fixedHeight;
14962 bool fixedHeightResizing;
14963 /* readonly */
14964 bool fixedSize;
14965 /* readonly */
14966 bool fixedWidth;
14967 bool fixedWidthResizing;
14968 bool focus;
14969 FocusMode focusMode;
14970 int height;
14971 HorizontalAlignment horizontalAlignment;
14972 IntVector2 hoverOffset;
14973 /* readonly */
14974 bool hovering;
14975 IntRect imageBorder;
14976 IntRect imageRect;
14977 int indent;
14978 int indentSpacing;
14979 /* readonly */
14980 int indentWidth;
14981 bool internal;
14982 IntRect layoutBorder;
14983 Vector2 layoutFlexScale;
14984 LayoutMode layoutMode;
14985 int layoutSpacing;
14986 Vector2 maxAnchor;
14987 int maxHeight;
14988 IntVector2 maxOffset;
14989 IntVector2 maxSize;
14990 int maxWidth;
14991 Vector2 minAnchor;
14992 int minHeight;
14993 IntVector2 minOffset;
14994 IntVector2 minSize;
14995 int minWidth;
14996 bool modal;
14997 bool modalAutoDismiss;
14998 Color modalFrameColor;
14999 IntVector2 modalFrameSize;
15000 Color modalShadeColor;
15001 bool movable;
15002 String name;
15003 /* readonly */
15004 uint numAllChildren;
15005 /* readonly */
15006 uint numAttributes;
15007 /* readonly */
15008 uint numChildren;
15009 ObjectAnimation objectAnimation;
15010 float opacity;
15011 UIElement parent;
15012 Vector2 pivot;
15013 IntVector2 position;
15014 int priority;
15015 /* readonly */
15016 int refs;
15017 bool resizable;
15018 IntRect resizeBorder;
15019 /* readonly */
15020 UIElement root;
15021 /* readonly */
15022 IntVector2 screenPosition;
15023 bool selected;
15024 IntVector2 size;
15025 bool sortChildren;
15026 String style;
15027 /* readonly */
15028 Array<String> tags;
15029 bool temporary;
15030 Texture texture;
15031 bool tiled;
15032 TraversalMode traversalMode;
15033 /* readonly */
15034 StringHash type;
15035 /* readonly */
15036 String typeName;
15037 bool useDerivedOpacity;
15038 /* readonly */
15039 VariantMap vars;
15040 VerticalAlignment verticalAlignment;
15041 bool visible;
15042 /* readonly */
15043 bool visibleEffective;
15044 /* readonly */
15045 int weakRefs;
15046 int width;
15047 };
15048 
15049 class XMLElement
15050 {
15051 public:
15052 ~XMLElement();
15053 XMLElement();
15054 XMLElement(const XMLElement&in);
15055 // Methods:
15056 XMLElement CreateChild(const String&);
15057 String GetAttribute(const String& = String ( )) const;
15058 String GetAttributeLower(const String&) const;
15059 Array<String> GetAttributeNames() const;
15060 String GetAttributeUpper(const String&) const;
15061 bool GetBool(const String&) const;
15062 BoundingBox GetBoundingBox() const;
15063 XMLElement GetChild(const String& = String ( )) const;
15064 Color GetColor(const String&) const;
15065 double GetDouble(const String&) const;
15066 float GetFloat(const String&) const;
15067 int GetInt(const String&) const;
15068 int64 GetInt64(const String&) const;
15069 IntRect GetIntRect(const String&) const;
15070 IntVector2 GetIntVector2(const String&) const;
15071 IntVector3 GetIntVector3(const String&) const;
15072 Matrix3 GetMatrix3(const String&) const;
15073 Matrix3x4 GetMatrix3x4(const String&) const;
15074 Matrix4 GetMatrix4(const String&) const;
15075 XMLElement GetNext(const String& = String ( )) const;
15076 XMLElement GetOrCreateChild(const String&);
15077 Quaternion GetQuaternion(const String&) const;
15078 ResourceRef GetResourceRef() const;
15079 ResourceRefList GetResourceRefList() const;
15080 uint GetUInt(const String&) const;
15081 uint64 GetUInt64(const String&) const;
15082 String GetValue() const;
15083 Variant GetVariant() const;
15084 VariantMap GetVariantMap() const;
15085 Array<Variant> GetVariantVector() const;
15086 Vector2 GetVector2(const String&) const;
15087 Vector3 GetVector3(const String&) const;
15088 Vector4 GetVector4(const String&) const;
15089 Variant GetVectorVariant(const String&) const;
15090 bool HasAttribute(const String&) const;
15091 bool HasChild(const String&) const;
15092 bool RemoveAttribute(const String& = String ( ));
15093 bool RemoveChild(const String&);
15094 bool RemoveChild(const XMLElement&);
15095 bool RemoveChildren(const String& = String ( ));
15096 XPathResultSet Select(const String&);
15097 XPathResultSet SelectPrepared(const XPathQuery&);
15098 XMLElement SelectSingle(const String&);
15099 XMLElement SelectSinglePrepared(const XPathQuery&);
15100 bool SetAttribute(const String&);
15101 bool SetAttribute(const String&, const String&);
15102 bool SetBool(const String&, bool);
15103 bool SetBoundingBox(const BoundingBox&);
15104 bool SetColor(const String&, const Color&);
15105 bool SetDouble(const String&, double);
15106 bool SetFloat(const String&, float);
15107 bool SetInt(const String&, int);
15108 bool SetInt64(const String&, int64);
15109 bool SetIntRect(const String&, const IntRect&);
15110 bool SetIntVector2(const String&, const IntVector2&);
15111 bool SetIntVector3(const String&, const IntVector3&);
15112 bool SetMatrix3(const String&, const Matrix3&);
15113 bool SetMatrix3x4(const String&, const Matrix3x4&);
15114 bool SetMatrix4(const String&, const Matrix4&);
15115 bool SetQuaternion(const String&, const Quaternion&);
15116 bool SetResourceRef(const String&, const ResourceRef&);
15117 bool SetResourceRefList(const String&, const ResourceRefList&);
15118 bool SetUInt(const String&, uint);
15119 bool SetUInt64(const String&, uint64);
15120 bool SetValue(const String&);
15121 bool SetVariant(const Variant&);
15122 bool SetVariantMap(const VariantMap&);
15123 bool SetVariantVector(Array<Variant>);
15124 bool SetVector2(const String&, const Vector2&);
15125 bool SetVector3(const String&, const Vector3&);
15126 bool SetVector4(const String&, const Vector4&);
15127 bool SetVectorVariant(const String&, const Variant&);
15128 
15129 // Properties:
15130 /* readonly */
15131 XMLFile file;
15132 /* readonly */
15133 bool isNull;
15134 /* readonly */
15135 String name;
15136 /* readonly */
15137 XMLElement nextResult;
15138 /* readonly */
15139 bool notNull;
15140 /* readonly */
15141 uint numAttributes;
15142 /* readonly */
15143 XMLElement parent;
15144 String value;
15145 };
15146 
15147 class XMLFile
15148 {
15149 public:
15150 XMLFile();
15151 XMLFile(const String&in);
15152 // Methods:
15153 XMLElement CreateRoot(const String&);
15154 bool FromString(const String&);
15155 XMLElement GetOrCreateRoot(const String&);
15156 XMLElement GetRoot(const String& = String ( ));
15157 bool HasSubscribedToEvent(Object, const String&);
15158 bool HasSubscribedToEvent(const String&);
15159 bool Load(File);
15160 bool Load(VectorBuffer&);
15161 bool Load(const String&);
15162 void Patch(XMLElement);
15163 void Patch(XMLFile);
15164 bool Save(File) const;
15165 bool Save(File, const String&) const;
15166 bool Save(VectorBuffer&) const;
15167 bool Save(const String&) const;
15168 void SendEvent(const String&, VariantMap& = VariantMap ( ));
15169 String ToString(const String& = String ( "\t" )) const;
15170 
15171 // Properties:
15172 /* readonly */
15173 String category;
15174 /* readonly */
15175 uint memoryUse;
15176 String name;
15177 /* readonly */
15178 int refs;
15179 /* readonly */
15180 XMLElement root;
15181 /* readonly */
15182 StringHash type;
15183 /* readonly */
15184 String typeName;
15185 /* readonly */
15186 uint useTimer;
15187 /* readonly */
15188 int weakRefs;
15189 };
15190 
15191 class XPathQuery
15192 {
15193 public:
15194 ~XPathQuery();
15195 XPathQuery();
15196 XPathQuery(const String&in, const String&inout arg1 = String ( ));
15197 // Methods:
15198 void Bind();
15199 void Clear();
15200 XPathResultSet Evaluate(XMLElement);
15201 bool EvaluateToBool(XMLElement);
15202 float EvaluateToFloat(XMLElement);
15203 String EvaluateToString(XMLElement);
15204 bool SetQuery(const String&, const String& = String ( ), bool = true);
15205 bool SetVariable(const String&, bool);
15206 bool SetVariable(const String&, const String&);
15207 bool SetVariable(const String&, const XPathResultSet&);
15208 bool SetVariable(const String&, float);
15209 
15210 // Properties:
15211 String query;
15212 };
15213 
15214 class XPathResultSet
15215 {
15216 public:
15217 ~XPathResultSet();
15218 XPathResultSet();
15219 XPathResultSet(const XPathResultSet&in);
15220 
15221 // Properties:
15222 /* readonly */
15223 bool empty;
15224 /* readonly */
15225 XMLElement firstResult;
15226 /* readonly */
15227 uint size;
15228 };
15229 
15230 class Zone
15231 {
15232 public:
15233 // Methods:
15234 void ApplyAttributes();
15235 void DrawDebugGeometry(DebugRenderer, bool);
15236 Variant GetAttribute(const String&) const;
15237 ValueAnimation GetAttributeAnimation(const String&) const;
15238 float GetAttributeAnimationSpeed(const String&) const;
15239 float GetAttributeAnimationTime(const String&) const;
15240 WrapMode GetAttributeAnimationWrapMode(const String&) const;
15241 Variant GetAttributeDefault(const String&) const;
15242 bool GetInterceptNetworkUpdate(const String&) const;
15243 bool HasSubscribedToEvent(Object, const String&);
15244 bool HasSubscribedToEvent(const String&);
15245 bool IsInView(Camera) const;
15246 bool Load(File, bool = false);
15247 bool Load(VectorBuffer&, bool = false);
15248 bool LoadJSON(const JSONValue&, bool = false);
15249 bool LoadXML(const XMLElement&, bool = false);
15250 void MarkNetworkUpdate() const;
15251 void Remove();
15252 void RemoveAttributeAnimation(const String&);
15253 void RemoveInstanceDefault();
15254 void RemoveObjectAnimation();
15255 void ResetToDefault();
15256 bool Save(File) const;
15257 bool Save(VectorBuffer&) const;
15258 bool SaveJSON(JSONValue&) const;
15259 bool SaveXML(XMLElement&) const;
15260 void SendEvent(const String&, VariantMap& = VariantMap ( ));
15261 void SetAnimationTime(float);
15262 bool SetAttribute(const String&, const Variant&);
15263 void SetAttributeAnimation(const String&, ValueAnimation, WrapMode = WM_LOOP, float = 1.0f);
15264 void SetAttributeAnimationSpeed(const String&, float);
15265 void SetAttributeAnimationTime(const String&, float);
15266 void SetAttributeAnimationWrapMode(const String&, WrapMode);
15267 void SetInterceptNetworkUpdate(const String&, bool);
15268 
15269 // Properties:
15270 Color ambientColor;
15271 /* readonly */
15272 Color ambientEndColor;
15273 bool ambientGradient;
15274 /* readonly */
15275 Color ambientStartColor;
15276 bool animationEnabled;
15277 /* readonly */
15278 Array<Variant> attributeDefaults;
15279 /* readonly */
15280 Array<AttributeInfo> attributeInfos;
15281 Array<Variant> attributes;
15282 BoundingBox boundingBox;
15283 bool castShadows;
15284 /* readonly */
15285 String category;
15286 float drawDistance;
15287 bool enabled;
15288 /* readonly */
15289 bool enabledEffective;
15290 Color fogColor;
15291 float fogEnd;
15292 float fogHeight;
15293 float fogHeightScale;
15294 float fogStart;
15295 bool heightFog;
15296 /* readonly */
15297 uint id;
15298 /* readonly */
15299 bool inView;
15300 /* readonly */
15301 Matrix3x4 inverseWorldTransform;
15302 uint lightMask;
15303 float lodBias;
15304 uint maxLights;
15305 /* readonly */
15306 Node node;
15307 /* readonly */
15308 uint numAttributes;
15309 ObjectAnimation objectAnimation;
15310 bool occludee;
15311 bool occluder;
15312 bool override;
15313 int priority;
15314 /* readonly */
15315 int refs;
15316 float shadowDistance;
15317 uint shadowMask;
15318 bool temporary;
15319 /* readonly */
15320 StringHash type;
15321 /* readonly */
15322 String typeName;
15323 uint viewMask;
15324 /* readonly */
15325 int weakRefs;
15326 /* readonly */
15327 BoundingBox worldBoundingBox;
15328 uint zoneMask;
15329 Texture zoneTexture;
15330 };
15331 
15332 // Enumerations
15333 
15334 enum AnimationBlendMode
15335 {
15336 ABM_LERP,
15337 ABM_ADDITIVE,
15338 };
15339 
15340 enum AutoRemoveMode
15341 {
15342 REMOVE_DISABLED,
15343 REMOVE_COMPONENT,
15344 REMOVE_NODE,
15345 };
15346 
15347 enum BlendMode
15348 {
15349 BLEND_REPLACE,
15350 BLEND_ADD,
15351 BLEND_MULTIPLY,
15352 BLEND_ALPHA,
15353 BLEND_ADDALPHA,
15354 BLEND_PREMULALPHA,
15355 BLEND_INVDESTALPHA,
15356 BLEND_SUBTRACT,
15357 BLEND_SUBTRACTALPHA,
15358 };
15359 
15360 enum BodyType2D
15361 {
15362 BT_STATIC,
15363 BT_KINEMATIC,
15364 BT_DYNAMIC,
15365 };
15366 
15367 enum CollisionEventMode
15368 {
15369 COLLISION_NEVER,
15370 COLLISION_ACTIVE,
15371 COLLISION_ALWAYS,
15372 };
15373 
15374 enum CompareMode
15375 {
15376 CMP_ALWAYS,
15377 CMP_EQUAL,
15378 CMP_NOTEQUAL,
15379 CMP_LESS,
15380 CMP_LESSEQUAL,
15381 CMP_GREATER,
15382 CMP_GREATEREQUAL,
15383 };
15384 
15385 enum CompressedFormat
15386 {
15387 CF_NONE,
15388 CF_RGBA,
15389 CF_DXT1,
15390 CF_DXT3,
15391 CF_DXT5,
15392 CF_ETC1,
15393 CF_PVRTC_RGB_2BPP,
15394 CF_PVRTC_RGBA_2BPP,
15395 CF_PVRTC_RGB_4BPP,
15396 CF_PVRTC_RGBA_4BPP,
15397 };
15398 
15399 enum ConstraintType
15400 {
15401 CONSTRAINT_POINT,
15402 CONSTRAINT_HINGE,
15403 CONSTRAINT_SLIDER,
15404 CONSTRAINT_CONETWIST,
15405 };
15406 
15407 enum Corner
15408 {
15409 C_TOPLEFT,
15410 C_TOPRIGHT,
15411 C_BOTTOMLEFT,
15412 C_BOTTOMRIGHT,
15413 };
15414 
15415 enum CreateMode
15416 {
15417 REPLICATED,
15418 LOCAL,
15419 };
15420 
15421 enum CrowdAgentRequestedTarget
15422 {
15423 CA_REQUESTEDTARGET_NONE,
15424 CA_REQUESTEDTARGET_POSITION,
15425 CA_REQUESTEDTARGET_VELOCITY,
15426 };
15427 
15428 enum CrowdAgentState
15429 {
15430 CA_STATE_INVALID,
15431 CA_STATE_WALKING,
15432 CA_STATE_OFFMESH,
15433 };
15434 
15435 enum CrowdAgentTargetState
15436 {
15437 CA_TARGET_NONE,
15438 CA_TARGET_FAILED,
15439 CA_TARGET_VALID,
15440 CA_TARGET_REQUESTING,
15441 CA_TARGET_WAITINGFORQUEUE,
15442 CA_TARGET_WAITINGFORPATH,
15443 CA_TARGET_VELOCITY,
15444 };
15445 
15446 enum CubeMapFace
15447 {
15448 FACE_POSITIVE_X,
15449 FACE_NEGATIVE_X,
15450 FACE_POSITIVE_Y,
15451 FACE_NEGATIVE_Y,
15452 FACE_POSITIVE_Z,
15453 FACE_NEGATIVE_Z,
15454 };
15455 
15456 enum CullMode
15457 {
15458 CULL_NONE,
15459 CULL_CCW,
15460 CULL_CW,
15461 };
15462 
15463 enum CursorShape
15464 {
15465 CS_NORMAL,
15466 CS_IBEAM,
15467 CS_CROSS,
15468 CS_RESIZEVERTICAL,
15469 CS_RESIZEDIAGONAL_TOPRIGHT,
15470 CS_RESIZEHORIZONTAL,
15471 CS_RESIZEDIAGONAL_TOPLEFT,
15472 CS_RESIZE_ALL,
15473 CS_ACCEPTDROP,
15474 CS_REJECTDROP,
15475 CS_BUSY,
15476 CS_BUSY_ARROW,
15477 };
15478 
15479 enum DBAPI
15480 {
15481 DBAPI_SQLITE,
15482 DBAPI_ODBC,
15483 };
15484 
15485 enum DumpMode
15486 {
15487 DOXYGEN,
15488 C_HEADER,
15489 };
15490 
15491 enum EmitterType
15492 {
15493 EMITTER_SPHERE,
15494 EMITTER_BOX,
15495 };
15496 
15497 enum EmitterType2D
15498 {
15499 EMITTER_TYPE_GRAVITY,
15500 EMITTER_TYPE_RADIAL,
15501 };
15502 
15503 enum FaceCameraMode
15504 {
15505 FC_NONE,
15506 FC_ROTATE_XYZ,
15507 FC_ROTATE_Y,
15508 FC_LOOKAT_XYZ,
15509 FC_LOOKAT_Y,
15510 FC_LOOKAT_MIXED,
15511 FC_DIRECTION,
15512 };
15513 
15514 enum FileMode
15515 {
15516 FILE_READ,
15517 FILE_WRITE,
15518 FILE_READWRITE,
15519 };
15520 
15521 enum FillMode
15522 {
15523 FILL_SOLID,
15524 FILL_WIREFRAME,
15525 FILL_POINT,
15526 };
15527 
15528 enum FocusMode
15529 {
15530 FM_NOTFOCUSABLE,
15531 FM_RESETFOCUS,
15532 FM_FOCUSABLE,
15533 FM_FOCUSABLE_DEFOCUSABLE,
15534 };
15535 
15536 enum FontHintLevel
15537 {
15538 FONT_HINT_LEVEL_NONE,
15539 FONT_HINT_LEVEL_LIGHT,
15540 FONT_HINT_LEVEL_NORMAL,
15541 };
15542 
15543 enum FontType
15544 {
15545 FONT_NONE,
15546 FONT_FREETYPE,
15547 FONT_BITMAP,
15548 };
15549 
15550 enum HighlightMode
15551 {
15552 HM_NEVER,
15553 HM_FOCUS,
15554 HM_ALWAYS,
15555 };
15556 
15557 enum HorizontalAlignment
15558 {
15559 HA_LEFT,
15560 HA_CENTER,
15561 HA_RIGHT,
15562 HA_CUSTOM,
15563 };
15564 
15565 enum HttpRequestState
15566 {
15567 HTTP_INITIALIZING,
15568 HTTP_ERROR,
15569 HTTP_OPEN,
15570 HTTP_CLOSED,
15571 };
15572 
15573 enum IKAlgorithm
15574 {
15575 ONE_BONE,
15576 TWO_BONE,
15577 FABRIK,
15578 };
15579 
15580 enum InterpMethod
15581 {
15582 IM_NONE,
15583 IM_LINEAR,
15584 IM_SPLINE,
15585 };
15586 
15587 enum InterpolationMode
15588 {
15589 BEZIER_CURVE,
15590 CATMULL_ROM_CURVE,
15591 LINEAR_CURVE,
15592 CATMULL_ROM_FULL_CURVE,
15593 };
15594 
15595 enum Intersection
15596 {
15597 OUTSIDE,
15598 INTERSECTS,
15599 INSIDE,
15600 };
15601 
15602 enum JSONNumberType
15603 {
15604 JSONNT_NAN,
15605 JSONNT_INT,
15606 JSONNT_UINT,
15607 JSONNT_FLOAT_DOUBLE,
15608 };
15609 
15610 enum JSONValueType
15611 {
15612 JSON_NULL,
15613 JSON_BOOL,
15614 JSON_NUMBER,
15615 JSON_STRING,
15616 JSON_ARRAY,
15617 JSON_OBJECT,
15618 };
15619 
15620 enum LayoutMode
15621 {
15622 LM_FREE,
15623 LM_HORIZONTAL,
15624 LM_VERTICAL,
15625 };
15626 
15627 enum LightType
15628 {
15629 LIGHT_DIRECTIONAL,
15630 LIGHT_SPOT,
15631 LIGHT_POINT,
15632 };
15633 
15634 enum LoadMode
15635 {
15636 LOAD_RESOURCES_ONLY,
15637 LOAD_SCENE,
15638 LOAD_SCENE_AND_RESOURCES,
15639 };
15640 
15641 enum LoopMode2D
15642 {
15643 LM_DEFAULT,
15644 LM_FORCE_LOOPED,
15645 LM_FORCE_CLAMPED,
15646 };
15647 
15648 enum MouseMode
15649 {
15650 MM_ABSOLUTE,
15651 MM_RELATIVE,
15652 MM_WRAP,
15653 MM_FREE,
15654 };
15655 
15656 enum NavigationPushiness
15657 {
15658 NAVIGATIONPUSHINESS_LOW,
15659 NAVIGATIONPUSHINESS_MEDIUM,
15660 NAVIGATIONPUSHINESS_HIGH,
15661 NAVIGATIONPUSHINESS_NONE,
15662 };
15663 
15664 enum NavigationQuality
15665 {
15666 NAVIGATIONQUALITY_LOW,
15667 NAVIGATIONQUALITY_MEDIUM,
15668 NAVIGATIONQUALITY_HIGH,
15669 };
15670 
15671 enum NavmeshPartitionType
15672 {
15673 NAVMESH_PARTITION_WATERSHED,
15674 NAVMESH_PARTITION_MONOTONE,
15675 };
15676 
15677 enum Orientation
15678 {
15679 O_HORIZONTAL,
15680 O_VERTICAL,
15681 };
15682 
15683 enum Orientation2D
15684 {
15685 O_ORTHOGONAL,
15686 O_ISOMETRIC,
15687 O_STAGGERED,
15688 O_HEXAGONAL,
15689 };
15690 
15691 enum PassLightingMode
15692 {
15693 LIGHTING_UNLIT,
15694 LIGHTING_PERVERTEX,
15695 LIGHTING_PERPIXEL,
15696 };
15697 
15698 enum PrimitiveType
15699 {
15700 TRIANGLE_LIST,
15701 LINE_LIST,
15702 POINT_LIST,
15703 TRIANGLE_STRIP,
15704 LINE_STRIP,
15705 TRIANGLE_FAN,
15706 };
15707 
15708 enum RayQueryLevel
15709 {
15710 RAY_AABB,
15711 RAY_OBB,
15712 RAY_TRIANGLE,
15713 RAY_TRIANGLE_UV,
15714 };
15715 
15716 enum RenderCommandSortMode
15717 {
15718 SORT_FRONTTOBACK,
15719 SORT_BACKTOFRONT,
15720 };
15721 
15722 enum RenderCommandType
15723 {
15724 CMD_NONE,
15725 CMD_CLEAR,
15726 CMD_SCENEPASS,
15727 CMD_QUAD,
15728 CMD_FORWARDLIGHTS,
15729 CMD_LIGHTVOLUMES,
15730 CMD_RENDERUI,
15731 CMD_SENDEVENT,
15732 };
15733 
15734 enum RenderSurfaceUpdateMode
15735 {
15736 SURFACE_MANUALUPDATE,
15737 SURFACE_UPDATEVISIBLE,
15738 SURFACE_UPDATEALWAYS,
15739 };
15740 
15741 enum RenderTargetSizeMode
15742 {
15743 SIZE_ABSOLUTE,
15744 SIZE_VIEWPORTDIVISOR,
15745 SIZE_VIEWPORTMULTIPLIER,
15746 };
15747 
15748 enum ShadowQuality
15749 {
15750 SHADOWQUALITY_SIMPLE_16BIT,
15751 SHADOWQUALITY_SIMPLE_24BIT,
15752 SHADOWQUALITY_PCF_16BIT,
15753 SHADOWQUALITY_PCF_24BIT,
15754 SHADOWQUALITY_VSM,
15755 SHADOWQUALITY_BLUR_VSM,
15756 };
15757 
15758 enum ShapeType
15759 {
15760 SHAPE_BOX,
15761 SHAPE_SPHERE,
15762 SHAPE_STATICPLANE,
15763 SHAPE_CYLINDER,
15764 SHAPE_CAPSULE,
15765 SHAPE_CONE,
15766 SHAPE_TRIANGLEMESH,
15767 SHAPE_CONVEXHULL,
15768 SHAPE_TERRAIN,
15769 };
15770 
15771 enum TextEffect
15772 {
15773 TE_NONE,
15774 TE_SHADOW,
15775 TE_STROKE,
15776 };
15777 
15778 enum TextureAddressMode
15779 {
15780 ADDRESS_WRAP,
15781 ADDRESS_MIRROR,
15782 ADDRESS_CLAMP,
15783 ADDRESS_BORDER,
15784 };
15785 
15786 enum TextureCoordinate
15787 {
15788 COORD_U,
15789 COORD_V,
15790 COORD_W,
15791 };
15792 
15793 enum TextureFilterMode
15794 {
15795 FILTER_NEAREST,
15796 FILTER_BILINEAR,
15797 FILTER_TRILINEAR,
15798 FILTER_ANISOTROPIC,
15799 FILTER_NEAREST_ANISOTROPIC,
15800 FILTER_DEFAULT,
15801 };
15802 
15803 enum TextureUnit
15804 {
15805 TU_DIFFUSE,
15806 TU_ALBEDOBUFFER,
15807 TU_NORMAL,
15808 TU_NORMALBUFFER,
15809 TU_SPECULAR,
15810 TU_EMISSIVE,
15811 TU_ENVIRONMENT,
15812 TU_LIGHTRAMP,
15813 TU_LIGHTSHAPE,
15814 TU_SHADOWMAP,
15815 TU_CUSTOM1,
15816 TU_CUSTOM2,
15817 TU_VOLUMEMAP,
15818 TU_FACESELECT,
15819 TU_INDIRECTION,
15820 TU_DEPTHBUFFER,
15821 TU_LIGHTBUFFER,
15822 TU_ZONE,
15823 MAX_MATERIAL_TEXTURE_UNITS,
15824 MAX_TEXTURE_UNITS,
15825 };
15826 
15827 enum TextureUsage
15828 {
15829 TEXTURE_STATIC,
15830 TEXTURE_DYNAMIC,
15831 TEXTURE_RENDERTARGET,
15832 TEXTURE_DEPTHSTENCIL,
15833 };
15834 
15835 enum TileMapLayerType2D
15836 {
15837 LT_TILE_LAYER,
15838 LT_OBJECT_GROUP,
15839 LT_IMAGE_LAYER,
15840 LT_INVALID,
15841 };
15842 
15843 enum TileObjectType2D
15844 {
15845 OT_RECTANGLE,
15846 OT_ELLIPSE,
15847 OT_POLYGON,
15848 OT_POLYLINE,
15849 OT_TILE,
15850 OT_INVALID,
15851 };
15852 
15853 enum TrailType
15854 {
15855 TT_FACE_CAMERA,
15856 TT_BONE,
15857 };
15858 
15859 enum TransformSpace
15860 {
15861 TS_LOCAL,
15862 TS_PARENT,
15863 TS_WORLD,
15864 };
15865 
15866 enum TraversalMode
15867 {
15868 TM_BREADTH_FIRST,
15869 TM_DEPTH_FIRST,
15870 };
15871 
15872 enum VariantType
15873 {
15874 VAR_NONE,
15875 VAR_INT,
15876 VAR_BOOL,
15877 VAR_FLOAT,
15878 VAR_VECTOR2,
15879 VAR_VECTOR3,
15880 VAR_VECTOR4,
15881 VAR_QUATERNION,
15882 VAR_COLOR,
15883 VAR_STRING,
15884 VAR_BUFFER,
15885 VAR_VOIDPTR,
15886 VAR_RESOURCEREF,
15887 VAR_RESOURCEREFLIST,
15888 VAR_VARIANTVECTOR,
15889 VAR_VARIANTMAP,
15890 VAR_INTRECT,
15891 VAR_INTVECTOR2,
15892 VAR_INTVECTOR3,
15893 VAR_PTR,
15894 VAR_MATRIX3,
15895 VAR_MATRIX3X4,
15896 VAR_MATRIX4,
15897 VAR_DOUBLE,
15898 VAR_STRINGVECTOR,
15899 VAR_RECT,
15900 };
15901 
15902 enum VertexElementSemantic
15903 {
15904 SEM_POSITION,
15905 SEM_NORMAL,
15906 SEM_BINORMAL,
15907 SEM_TANGENT,
15908 SEM_TEXCOORD,
15909 SEM_COLOR,
15910 SEM_BLENDWEIGHTS,
15911 SEM_BLENDINDICES,
15912 SEM_OBJECTINDEX,
15913 MAX_VERTEX_ELEMENT_SEMANTICS,
15914 };
15915 
15916 enum VertexElementType
15917 {
15918 TYPE_INT,
15919 TYPE_FLOAT,
15920 TYPE_VECTOR2,
15921 TYPE_VECTOR3,
15922 TYPE_VECTOR4,
15923 TYPE_UBYTE4,
15924 TYPE_UBYTE4_NORM,
15925 MAX_VERTEX_ELEMENT_TYPES,
15926 };
15927 
15928 enum VerticalAlignment
15929 {
15930 VA_TOP,
15931 VA_CENTER,
15932 VA_BOTTOM,
15933 VA_CUSTOM,
15934 };
15935 
15936 enum WrapMode
15937 {
15938 WM_LOOP,
15939 WM_ONCE,
15940 WM_CLAMP,
15941 };
15942 
15943 // Global functions
15944 float Abs(float);
15945 float Acos(float);
15946 String AddTrailingSlash(const String&);
15947 float Asin(float);
15948 float Atan(float);
15949 float Atan2(float, float);
15950 float Ceil(float);
15951 int CeilToInt(float);
15952 float Clamp(float, float, float);
15953 int Clamp(int, int, int);
15954 void ClearDelayedExecute(const String& = String ( ));
15955 VectorBuffer CompressVectorBuffer(VectorBuffer&);
15956 float Cos(float);
15957 uint CountSetBits(uint);
15958 Object CreateObject(const String&);
15959 VectorBuffer DecompressVectorBuffer(VectorBuffer&);
15960 void DelayedExecute(float, bool, const String&, const Array<Variant> = null);
15961 bool Equals(float, float);
15962 void ErrorDialog(const String&, const String&);
15963 float Floor(float);
15964 int FloorToInt(float);
15965 float Fract(float);
15966 uint GetAlphaFormat();
15967 Array<String> GetArguments();
15968 String GetConsoleInput();
15969 uint GetDepthStencilFormat();
15970 Object GetEventSender();
15971 String GetExtension(const String&, bool = true);
15972 String GetFileName(const String&);
15973 String GetFileNameAndExtension(const String&, bool = false);
15974 String GetFileSizeString(uint64);
15975 uint GetFloat16Format();
15976 uint GetFloat32Format();
15977 uint GetFormat(const String&);
15978 Variant GetGlobalVar(const String&);
15979 String GetHostName();
15980 String GetInternalPath(const String&);
15981 uint GetLinearDepthFormat();
15982 String GetLoginName();
15983 uint GetLuminanceAlphaFormat();
15984 uint GetLuminanceFormat();
15985 uint GetMaxBones();
15986 String GetMiniDumpDir();
15987 uint GetNumLogicalCPUs();
15988 uint GetNumPhysicalCPUs();
15989 String GetOSVersion();
15990 Array<AttributeInfo> GetObjectAttributeInfos(const String&);
15991 Array<String> GetObjectCategories();
15992 Array<String> GetObjectsByCategory(const String&);
15993 String GetParentPath(const String&);
15994 String GetPath(const String&);
15995 String GetPlatform();
15996 uint GetRG16Format();
15997 uint GetRGBA16Format();
15998 uint GetRGBAFloat16Format();
15999 uint GetRGBAFloat32Format();
16000 uint GetRGBAFormat();
16001 uint GetRGBFormat();
16002 uint GetRGFloat16Format();
16003 uint GetRGFloat32Format();
16004 uint GetRandomSeed();
16005 uint GetReadableDepthFormat();
16006 String GetTextureUnitName(TextureUnit);
16007 uint64 GetTotalMemory();
16008 VariantType GetVariantTypeFromName(const String&);
16009 String GetVariantTypeName(VariantType);
16010 bool HasSubscribedToEvent(Object, const String&);
16011 bool HasSubscribedToEvent(const String&);
16012 float InverseLerp(float, float, float);
16013 bool IsAbsolutePath(const String&);
16014 bool IsAlpha(uint);
16015 bool IsDigit(uint);
16016 bool IsNaN(float);
16017 bool IsPowerOfTwo(uint);
16018 String Join(Array<String>&, const String&);
16019 float Lerp(float, float, float);
16020 float Ln(float);
16021 uint LogBaseTwo(uint);
16022 void MarkNetworkUpdate();
16023 float Max(float, float);
16024 int Max(int, int);
16025 float Min(float, float);
16026 int Min(int, int);
16027 float Mod(float, float);
16028 uint NextPowerOfTwo(uint);
16029 void OpenConsoleWindow();
16030 float Pow(float, float);
16031 void Print(bool, bool = false);
16032 void Print(const String&, bool = false);
16033 void Print(const Variant&, bool = false);
16034 void Print(float, bool = false);
16035 void Print(int, bool = false);
16036 void Print(int64, bool = false);
16037 void Print(uint, bool = false);
16038 void Print(uint64, bool = false);
16039 void PrintCallStack(bool = false);
16040 float Random();
16041 float Random(float);
16042 float Random(float, float);
16043 int RandomInt();
16044 int RandomInt(int);
16045 int RandomInt(int, int);
16046 float RandomNormal(float, float);
16047 void RegisterEventName(const String&);
16048 void Remove();
16049 String RemoveTrailingSlash(const String&);
16050 String ReplaceExtension(const String&, const String&);
16051 float Round(float);
16052 int RoundToInt(float);
16053 uint SDBMHash(uint, uint8);
16054 void SendEvent(const String&, VariantMap& = VariantMap ( ));
16055 void SetGlobalVar(const String&, Variant&);
16056 void SetMiniDumpDir(const String&);
16057 void SetRandomSeed(uint);
16058 float Sign(float);
16059 float Sin(float);
16060 float SmoothStep(float, float, float);
16061 float Sqrt(float);
16062 float StableRandom(const Vector2&);
16063 float StableRandom(const Vector3&);
16064 float StableRandom(float);
16065 const String& GetTypeName(StringHash);
16066 void SubscribeToEvent(Object, const String&, const String&);
16067 void SubscribeToEvent(const String&, const String&);
16068 float Tan(float);
16069 uint ToLower(uint);
16070 String ToStringHex(int);
16071 uint ToUpper(uint);
16072 void UnsubscribeFromAllEvents();
16073 void UnsubscribeFromAllEventsExcept(Array<String>);
16074 void UnsubscribeFromEvent(Object, const String&);
16075 void UnsubscribeFromEvent(const String&);
16076 void UnsubscribeFromEvents(Object);
16077 Vector2 VectorCeil(const Vector2&);
16078 Vector3 VectorCeil(const Vector3&);
16079 Vector4 VectorCeil(const Vector4&);
16080 IntVector2 VectorCeilToInt(const Vector2&);
16081 IntVector3 VectorCeilToInt(const Vector3&);
16082 Vector2 VectorFloor(const Vector2&);
16083 Vector3 VectorFloor(const Vector3&);
16084 Vector4 VectorFloor(const Vector4&);
16085 IntVector2 VectorFloorToInt(const Vector2&);
16086 IntVector3 VectorFloorToInt(const Vector3&);
16087 Vector2 VectorLerp(const Vector2&, const Vector2&, const Vector2&);
16088 Vector3 VectorLerp(const Vector3&, const Vector3&, const Vector3&);
16089 Vector4 VectorLerp(const Vector4&, const Vector4&, const Vector4&);
16090 IntVector2 VectorMax(const IntVector2&, const IntVector2&);
16091 IntVector3 VectorMax(const IntVector3&, const IntVector3&);
16092 Vector2 VectorMax(const Vector2&, const Vector2&);
16093 Vector3 VectorMax(const Vector3&, const Vector3&);
16094 Vector4 VectorMax(const Vector4&, const Vector4&);
16095 IntVector2 VectorMin(const IntVector2&, const IntVector2&);
16096 IntVector3 VectorMin(const IntVector3&, const IntVector3&);
16097 Vector2 VectorMin(const Vector2&, const Vector2&);
16098 Vector3 VectorMin(const Vector3&, const Vector3&);
16099 Vector4 VectorMin(const Vector4&, const Vector4&);
16100 Vector2 VectorRound(const Vector2&);
16101 Vector3 VectorRound(const Vector3&);
16102 Vector4 VectorRound(const Vector4&);
16103 IntVector2 VectorRoundToInt(const Vector2&);
16104 IntVector3 VectorRoundToInt(const Vector3&);
16105 bool WriteDrawablesToOBJ(Array<Drawable>, File, bool, bool, bool = false);
16106 
16107 // Global properties
16108 DBAPI DBAPI;
16109 Audio audio;
16110 ResourceCache cache;
16111 Console console;
16112 Database database;
16113 DebugHud debugHud;
16114 DebugRenderer debugRenderer;
16115 Engine engine;
16116 FileSystem fileSystem;
16117 VariantMap globalVars;
16118 Graphics graphics;
16119 Input input;
16120 Localization localization;
16121 Log log;
16122 Network network;
16123 Node node;
16124 Octree octree;
16125 PhysicsWorld physicsWorld;
16126 PhysicsWorld2D physicsWorld2D;
16127 Renderer renderer;
16128 ResourceCache resourceCache;
16129 Scene scene;
16130 Script script;
16131 ScriptFile scriptFile;
16132 ScriptInstance self;
16133 Time time;
16134 UI ui;
16135 
16136 // Global constants
16137 uint AM_COMPONENTID;
16138 uint AM_DEFAULT;
16139 uint AM_FILE;
16140 uint AM_FILEREADONLY;
16141 uint AM_LATESTDATA;
16142 uint AM_NET;
16143 uint AM_NODEID;
16144 uint AM_NODEIDVECTOR;
16145 uint AM_NOEDIT;
16146 Color BLACK;
16147 Color BLUE;
16148 uint8 CHANNEL_POSITION;
16149 uint8 CHANNEL_ROTATION;
16150 uint8 CHANNEL_SCALE;
16151 uint CLEAR_COLOR;
16152 uint CLEAR_DEPTH;
16153 uint CLEAR_STENCIL;
16154 int CONTROLLER_AXIS_LEFTX;
16155 int CONTROLLER_AXIS_LEFTY;
16156 int CONTROLLER_AXIS_RIGHTX;
16157 int CONTROLLER_AXIS_RIGHTY;
16158 int CONTROLLER_AXIS_TRIGGERLEFT;
16159 int CONTROLLER_AXIS_TRIGGERRIGHT;
16160 int CONTROLLER_BUTTON_A;
16161 int CONTROLLER_BUTTON_B;
16162 int CONTROLLER_BUTTON_BACK;
16163 int CONTROLLER_BUTTON_DPAD_DOWN;
16164 int CONTROLLER_BUTTON_DPAD_LEFT;
16165 int CONTROLLER_BUTTON_DPAD_RIGHT;
16166 int CONTROLLER_BUTTON_DPAD_UP;
16167 int CONTROLLER_BUTTON_GUIDE;
16168 int CONTROLLER_BUTTON_LEFTSHOULDER;
16169 int CONTROLLER_BUTTON_LEFTSTICK;
16170 int CONTROLLER_BUTTON_RIGHTSHOULDER;
16171 int CONTROLLER_BUTTON_RIGHTSTICK;
16172 int CONTROLLER_BUTTON_START;
16173 int CONTROLLER_BUTTON_X;
16174 int CONTROLLER_BUTTON_Y;
16175 Color CYAN;
16176 uint DD_DISABLED;
16177 uint DD_SOURCE;
16178 uint DD_SOURCE_AND_TARGET;
16179 uint DD_TARGET;
16180 uint DEBUGHUD_SHOW_ALL;
16181 uint DEBUGHUD_SHOW_EVENTPROFILER;
16182 uint DEBUGHUD_SHOW_MEMORY;
16183 uint DEBUGHUD_SHOW_MODE;
16184 uint DEBUGHUD_SHOW_NONE;
16185 uint DEBUGHUD_SHOW_PROFILER;
16186 uint DEBUGHUD_SHOW_STATS;
16187 uint DEFAULT_LIGHTMASK;
16188 uint DEFAULT_VIEWMASK;
16189 uint DRAWABLE_ANY;
16190 uint DRAWABLE_GEOMETRY;
16191 uint DRAWABLE_GEOMETRY2D;
16192 uint DRAWABLE_LIGHT;
16193 uint DRAWABLE_ZONE;
16194 uint FIRST_LOCAL_ID;
16195 uint FIRST_REPLICATED_ID;
16196 Color GRAY;
16197 Color GREEN;
16198 int HAT_CENTER;
16199 int HAT_DOWN;
16200 int HAT_LEFT;
16201 int HAT_RIGHT;
16202 int HAT_UP;
16203 int KEY_0;
16204 int KEY_1;
16205 int KEY_2;
16206 int KEY_3;
16207 int KEY_4;
16208 int KEY_5;
16209 int KEY_6;
16210 int KEY_7;
16211 int KEY_8;
16212 int KEY_9;
16213 int KEY_A;
16214 int KEY_ALT;
16215 int KEY_APPLICATION;
16216 int KEY_B;
16217 int KEY_BACKSPACE;
16218 int KEY_C;
16219 int KEY_CAPSLOCK;
16220 int KEY_CTRL;
16221 int KEY_D;
16222 int KEY_DELETE;
16223 int KEY_DOWN;
16224 int KEY_E;
16225 int KEY_END;
16226 int KEY_ESCAPE;
16227 int KEY_F;
16228 int KEY_F1;
16229 int KEY_F10;
16230 int KEY_F11;
16231 int KEY_F12;
16232 int KEY_F13;
16233 int KEY_F14;
16234 int KEY_F15;
16235 int KEY_F16;
16236 int KEY_F17;
16237 int KEY_F18;
16238 int KEY_F19;
16239 int KEY_F2;
16240 int KEY_F20;
16241 int KEY_F21;
16242 int KEY_F22;
16243 int KEY_F23;
16244 int KEY_F24;
16245 int KEY_F3;
16246 int KEY_F4;
16247 int KEY_F5;
16248 int KEY_F6;
16249 int KEY_F7;
16250 int KEY_F8;
16251 int KEY_F9;
16252 int KEY_G;
16253 int KEY_GUI;
16254 int KEY_H;
16255 int KEY_HOME;
16256 int KEY_I;
16257 int KEY_INSERT;
16258 int KEY_J;
16259 int KEY_K;
16260 int KEY_KP_0;
16261 int KEY_KP_1;
16262 int KEY_KP_2;
16263 int KEY_KP_3;
16264 int KEY_KP_4;
16265 int KEY_KP_5;
16266 int KEY_KP_6;
16267 int KEY_KP_7;
16268 int KEY_KP_8;
16269 int KEY_KP_9;
16270 int KEY_KP_DIVIDE;
16271 int KEY_KP_ENTER;
16272 int KEY_KP_MINUS;
16273 int KEY_KP_MULTIPLY;
16274 int KEY_KP_PERIOD;
16275 int KEY_KP_PLUS;
16276 int KEY_L;
16277 int KEY_LALT;
16278 int KEY_LCTRL;
16279 int KEY_LEFT;
16280 int KEY_LGUI;
16281 int KEY_LSHIFT;
16282 int KEY_M;
16283 int KEY_N;
16284 int KEY_NUMLOCKCLEAR;
16285 int KEY_O;
16286 int KEY_P;
16287 int KEY_PAGEDOWN;
16288 int KEY_PAGEUP;
16289 int KEY_PAUSE;
16290 int KEY_PRINTSCREEN;
16291 int KEY_Q;
16292 int KEY_R;
16293 int KEY_RALT;
16294 int KEY_RCTRL;
16295 int KEY_RETURN;
16296 int KEY_RETURN2;
16297 int KEY_RGUI;
16298 int KEY_RIGHT;
16299 int KEY_RSHIFT;
16300 int KEY_S;
16301 int KEY_SCROLLLOCK;
16302 int KEY_SELECT;
16303 int KEY_SHIFT;
16304 int KEY_SPACE;
16305 int KEY_T;
16306 int KEY_TAB;
16307 int KEY_U;
16308 int KEY_UNKNOWN;
16309 int KEY_UP;
16310 int KEY_V;
16311 int KEY_W;
16312 int KEY_X;
16313 int KEY_Y;
16314 int KEY_Z;
16315 uint LAST_LOCAL_ID;
16316 uint LAST_REPLICATED_ID;
16317 int LOG_DEBUG;
16318 int LOG_ERROR;
16319 int LOG_INFO;
16320 int LOG_NONE;
16321 int LOG_WARNING;
16322 Color MAGENTA;
16323 uint MASK_BLENDINDICES;
16324 uint MASK_BLENDWEIGHTS;
16325 uint MASK_COLOR;
16326 uint MASK_CUBETEXCOORD1;
16327 uint MASK_CUBETEXCOORD2;
16328 uint MASK_INSTANCEMATRIX1;
16329 uint MASK_INSTANCEMATRIX2;
16330 uint MASK_INSTANCEMATRIX3;
16331 uint MASK_NONE;
16332 uint MASK_NORMAL;
16333 uint MASK_OBJECTINDEX;
16334 uint MASK_POSITION;
16335 uint MASK_TANGENT;
16336 uint MASK_TEXCOORD1;
16337 uint MASK_TEXCOORD2;
16338 int MOUSEB_LEFT;
16339 int MOUSEB_MIDDLE;
16340 int MOUSEB_RIGHT;
16341 float M_DEGTORAD;
16342 float M_DEGTORAD_2;
16343 float M_EPSILON;
16344 float M_HALF_PI;
16345 float M_INFINITY;
16346 float M_LARGE_EPSILON;
16347 float M_LARGE_VALUE;
16348 int M_MAX_INT;
16349 uint M_MAX_UNSIGNED;
16350 int M_MIN_INT;
16351 uint M_MIN_UNSIGNED;
16352 float M_PI;
16353 float M_RADTODEG;
16354 uint NPOS;
16355 float PIXEL_SIZE;
16356 int QUALITY_HIGH;
16357 int QUALITY_LOW;
16358 int QUALITY_MAX;
16359 int QUALITY_MEDIUM;
16360 int QUAL_ALT;
16361 int QUAL_ANY;
16362 int QUAL_CTRL;
16363 int QUAL_SHIFT;
16364 Color RED;
16365 int SCANCODE_0;
16366 int SCANCODE_1;
16367 int SCANCODE_2;
16368 int SCANCODE_3;
16369 int SCANCODE_4;
16370 int SCANCODE_5;
16371 int SCANCODE_6;
16372 int SCANCODE_7;
16373 int SCANCODE_8;
16374 int SCANCODE_9;
16375 int SCANCODE_A;
16376 int SCANCODE_AC_BACK;
16377 int SCANCODE_AC_BOOKMARKS;
16378 int SCANCODE_AC_FORWARD;
16379 int SCANCODE_AC_HOME;
16380 int SCANCODE_AC_REFRESH;
16381 int SCANCODE_AC_SEARCH;
16382 int SCANCODE_AC_STOP;
16383 int SCANCODE_AGAIN;
16384 int SCANCODE_ALT;
16385 int SCANCODE_ALTERASE;
16386 int SCANCODE_APOSTROPHE;
16387 int SCANCODE_APP1;
16388 int SCANCODE_APP2;
16389 int SCANCODE_APPLICATION;
16390 int SCANCODE_AUDIOMUTE;
16391 int SCANCODE_AUDIONEXT;
16392 int SCANCODE_AUDIOPLAY;
16393 int SCANCODE_AUDIOPREV;
16394 int SCANCODE_AUDIOSTOP;
16395 int SCANCODE_B;
16396 int SCANCODE_BACKSLASH;
16397 int SCANCODE_BACKSPACE;
16398 int SCANCODE_BRIGHTNESSDOWN;
16399 int SCANCODE_BRIGHTNESSUP;
16400 int SCANCODE_C;
16401 int SCANCODE_CALCULATOR;
16402 int SCANCODE_CANCEL;
16403 int SCANCODE_CAPSLOCK;
16404 int SCANCODE_CLEAR;
16405 int SCANCODE_CLEARAGAIN;
16406 int SCANCODE_COMMA;
16407 int SCANCODE_COMPUTER;
16408 int SCANCODE_COPY;
16409 int SCANCODE_CRSEL;
16410 int SCANCODE_CTRL;
16411 int SCANCODE_CURRENCYSUBUNIT;
16412 int SCANCODE_CURRENCYUNIT;
16413 int SCANCODE_CUT;
16414 int SCANCODE_D;
16415 int SCANCODE_DECIMALSEPARATOR;
16416 int SCANCODE_DELETE;
16417 int SCANCODE_DISPLAYSWITCH;
16418 int SCANCODE_DOWN;
16419 int SCANCODE_E;
16420 int SCANCODE_EJECT;
16421 int SCANCODE_END;
16422 int SCANCODE_EQUALS;
16423 int SCANCODE_ESCAPE;
16424 int SCANCODE_EXECUTE;
16425 int SCANCODE_EXSEL;
16426 int SCANCODE_F;
16427 int SCANCODE_F1;
16428 int SCANCODE_F10;
16429 int SCANCODE_F11;
16430 int SCANCODE_F12;
16431 int SCANCODE_F13;
16432 int SCANCODE_F14;
16433 int SCANCODE_F15;
16434 int SCANCODE_F16;
16435 int SCANCODE_F17;
16436 int SCANCODE_F18;
16437 int SCANCODE_F19;
16438 int SCANCODE_F2;
16439 int SCANCODE_F20;
16440 int SCANCODE_F21;
16441 int SCANCODE_F22;
16442 int SCANCODE_F23;
16443 int SCANCODE_F24;
16444 int SCANCODE_F3;
16445 int SCANCODE_F4;
16446 int SCANCODE_F5;
16447 int SCANCODE_F6;
16448 int SCANCODE_F7;
16449 int SCANCODE_F8;
16450 int SCANCODE_F9;
16451 int SCANCODE_FIND;
16452 int SCANCODE_G;
16453 int SCANCODE_GRAVE;
16454 int SCANCODE_GUI;
16455 int SCANCODE_H;
16456 int SCANCODE_HELP;
16457 int SCANCODE_HOME;
16458 int SCANCODE_I;
16459 int SCANCODE_INSERT;
16460 int SCANCODE_INTERNATIONAL1;
16461 int SCANCODE_INTERNATIONAL2;
16462 int SCANCODE_INTERNATIONAL3;
16463 int SCANCODE_INTERNATIONAL4;
16464 int SCANCODE_INTERNATIONAL5;
16465 int SCANCODE_INTERNATIONAL6;
16466 int SCANCODE_INTERNATIONAL7;
16467 int SCANCODE_INTERNATIONAL8;
16468 int SCANCODE_INTERNATIONAL9;
16469 int SCANCODE_J;
16470 int SCANCODE_K;
16471 int SCANCODE_KBDILLUMDOWN;
16472 int SCANCODE_KBDILLUMTOGGLE;
16473 int SCANCODE_KBDILLUMUP;
16474 int SCANCODE_KP_0;
16475 int SCANCODE_KP_00;
16476 int SCANCODE_KP_000;
16477 int SCANCODE_KP_1;
16478 int SCANCODE_KP_2;
16479 int SCANCODE_KP_3;
16480 int SCANCODE_KP_4;
16481 int SCANCODE_KP_5;
16482 int SCANCODE_KP_6;
16483 int SCANCODE_KP_7;
16484 int SCANCODE_KP_8;
16485 int SCANCODE_KP_9;
16486 int SCANCODE_KP_A;
16487 int SCANCODE_KP_AMPERSAND;
16488 int SCANCODE_KP_AT;
16489 int SCANCODE_KP_B;
16490 int SCANCODE_KP_BACKSPACE;
16491 int SCANCODE_KP_BINARY;
16492 int SCANCODE_KP_C;
16493 int SCANCODE_KP_CLEAR;
16494 int SCANCODE_KP_CLEARENTRY;
16495 int SCANCODE_KP_COLON;
16496 int SCANCODE_KP_COMMA;
16497 int SCANCODE_KP_D;
16498 int SCANCODE_KP_DBLAMPERSAND;
16499 int SCANCODE_KP_DBLVERTICALBAR;
16500 int SCANCODE_KP_DECIMAL;
16501 int SCANCODE_KP_DIVIDE;
16502 int SCANCODE_KP_E;
16503 int SCANCODE_KP_ENTER;
16504 int SCANCODE_KP_EQUALS;
16505 int SCANCODE_KP_EQUALSAS400;
16506 int SCANCODE_KP_EXCLAM;
16507 int SCANCODE_KP_F;
16508 int SCANCODE_KP_GREATER;
16509 int SCANCODE_KP_HASH;
16510 int SCANCODE_KP_HEXADECIMAL;
16511 int SCANCODE_KP_LEFTBRACE;
16512 int SCANCODE_KP_LEFTPAREN;
16513 int SCANCODE_KP_LESS;
16514 int SCANCODE_KP_MEMADD;
16515 int SCANCODE_KP_MEMCLEAR;
16516 int SCANCODE_KP_MEMDIVIDE;
16517 int SCANCODE_KP_MEMMULTIPLY;
16518 int SCANCODE_KP_MEMRECALL;
16519 int SCANCODE_KP_MEMSTORE;
16520 int SCANCODE_KP_MEMSUBTRACT;
16521 int SCANCODE_KP_MINUS;
16522 int SCANCODE_KP_MULTIPLY;
16523 int SCANCODE_KP_OCTAL;
16524 int SCANCODE_KP_PERCENT;
16525 int SCANCODE_KP_PERIOD;
16526 int SCANCODE_KP_PLUS;
16527 int SCANCODE_KP_PLUSMINUS;
16528 int SCANCODE_KP_POWER;
16529 int SCANCODE_KP_RIGHTBRACE;
16530 int SCANCODE_KP_RIGHTPAREN;
16531 int SCANCODE_KP_SPACE;
16532 int SCANCODE_KP_TAB;
16533 int SCANCODE_KP_VERTICALBAR;
16534 int SCANCODE_KP_XOR;
16535 int SCANCODE_L;
16536 int SCANCODE_LALT;
16537 int SCANCODE_LANG1;
16538 int SCANCODE_LANG2;
16539 int SCANCODE_LANG3;
16540 int SCANCODE_LANG4;
16541 int SCANCODE_LANG5;
16542 int SCANCODE_LANG6;
16543 int SCANCODE_LANG7;
16544 int SCANCODE_LANG8;
16545 int SCANCODE_LANG9;
16546 int SCANCODE_LCTRL;
16547 int SCANCODE_LEFT;
16548 int SCANCODE_LEFTBRACKET;
16549 int SCANCODE_LGUI;
16550 int SCANCODE_LSHIFT;
16551 int SCANCODE_M;
16552 int SCANCODE_MAIL;
16553 int SCANCODE_MEDIASELECT;
16554 int SCANCODE_MENU;
16555 int SCANCODE_MINUS;
16556 int SCANCODE_MODE;
16557 int SCANCODE_MUTE;
16558 int SCANCODE_N;
16559 int SCANCODE_NONUSBACKSLASH;
16560 int SCANCODE_NONUSHASH;
16561 int SCANCODE_NUMLOCKCLEAR;
16562 int SCANCODE_O;
16563 int SCANCODE_OPER;
16564 int SCANCODE_OUT;
16565 int SCANCODE_P;
16566 int SCANCODE_PAGEDOWN;
16567 int SCANCODE_PAGEUP;
16568 int SCANCODE_PASTE;
16569 int SCANCODE_PAUSE;
16570 int SCANCODE_PERIOD;
16571 int SCANCODE_POWER;
16572 int SCANCODE_PRINTSCREEN;
16573 int SCANCODE_PRIOR;
16574 int SCANCODE_Q;
16575 int SCANCODE_R;
16576 int SCANCODE_RALT;
16577 int SCANCODE_RCTRL;
16578 int SCANCODE_RETURN;
16579 int SCANCODE_RETURN2;
16580 int SCANCODE_RGUI;
16581 int SCANCODE_RIGHT;
16582 int SCANCODE_RIGHTBRACKET;
16583 int SCANCODE_RSHIFT;
16584 int SCANCODE_S;
16585 int SCANCODE_SCROLLLOCK;
16586 int SCANCODE_SELECT;
16587 int SCANCODE_SEMICOLON;
16588 int SCANCODE_SEPARATOR;
16589 int SCANCODE_SHIFT;
16590 int SCANCODE_SLASH;
16591 int SCANCODE_SLEEP;
16592 int SCANCODE_SPACE;
16593 int SCANCODE_STOP;
16594 int SCANCODE_SYSREQ;
16595 int SCANCODE_T;
16596 int SCANCODE_TAB;
16597 int SCANCODE_THOUSANDSSEPARATOR;
16598 int SCANCODE_U;
16599 int SCANCODE_UNDO;
16600 int SCANCODE_UNKNOWN;
16601 int SCANCODE_UP;
16602 int SCANCODE_V;
16603 int SCANCODE_VOLUMEDOWN;
16604 int SCANCODE_VOLUMEUP;
16605 int SCANCODE_W;
16606 int SCANCODE_WWW;
16607 int SCANCODE_X;
16608 int SCANCODE_Y;
16609 int SCANCODE_Z;
16610 uint SCAN_DIRS;
16611 uint SCAN_FILES;
16612 uint SCAN_HIDDEN;
16613 String SOUND_AMBIENT;
16614 String SOUND_EFFECT;
16615 String SOUND_MASTER;
16616 String SOUND_MUSIC;
16617 String SOUND_VOICE;
16618 Color TRANSPARENT;
16619 uint VO_DISABLE_OCCLUSION;
16620 uint VO_DISABLE_SHADOWS;
16621 uint VO_LOW_MATERIAL_QUALITY;
16622 uint VO_NONE;
16623 Color WHITE;
16624 Color YELLOW;
16625