Skylicht Engine
Loading...
Searching...
No Matches
ISceneNode.h
1// Copyright (C) 2002-2012 Nikolaus Gebhardt
2// This file is part of the "Irrlicht Engine".
3// For conditions of distribution and use, see copyright notice in irrlicht.h
4
5#ifndef __I_SCENE_NODE_H_INCLUDED__
6#define __I_SCENE_NODE_H_INCLUDED__
7
8#include "IAttributeExchangingObject.h"
9#include "ESceneNodeTypes.h"
10#include "ECullingTypes.h"
11#include "EDebugSceneTypes.h"
12#include "ISceneNodeAnimator.h"
13#include "ITriangleSelector.h"
14#include "SMaterial.h"
15#include "irrString.h"
16#include "aabbox3d.h"
17#include "matrix4.h"
18#include "irrList.h"
19#include "IAttributes.h"
20
21namespace irr
22{
23namespace scene
24{
25 class ISceneManager;
26
31
33
41 {
42 public:
43
45 ISceneNode(ISceneNode* parent, ISceneManager* mgr, s32 id=-1,
46 const core::vector3df& position = core::vector3df(0,0,0),
47 const core::vector3df& rotation = core::vector3df(0,0,0),
48 const core::vector3df& scale = core::vector3df(1.0f, 1.0f, 1.0f))
49 : RelativeTranslation(position), RelativeRotation(rotation), RelativeScale(scale),
50 Parent(0), SceneManager(mgr), TriangleSelector(0), ID(id),
52 IsVisible(true), IsDebugObject(false), IsStaticObject(false)
53 {
54 if (parent)
55 parent->addChild(this);
56
58 }
59
60
62 virtual ~ISceneNode()
63 {
64 // delete all children
65 removeAll();
66
67 // delete all animators
68 ISceneNodeAnimatorList::Iterator ait = Animators.begin();
69 for (; ait != Animators.end(); ++ait)
70 (*ait)->drop();
71
73 TriangleSelector->drop();
74 }
75
76
78
91 virtual void OnRegisterSceneNode()
92 {
93 if (IsVisible)
94 {
95 ISceneNodeList::Iterator it = Children.begin(), end = Children.end();
96 for (; it != end; ++it)
97 {
98 ISceneNode* node = (*it);
99 if (node->IsVisible == true)
100 node->OnRegisterSceneNode();
101 }
102 }
103 }
104
105 virtual void CheckCount(int &count)
106 {
107 count++;
108
109 ISceneNodeList::Iterator it = Children.begin(), end = Children.end();
110 for (; it != end; ++it)
111 {
112 (*it)->CheckCount(count);
113 }
114 }
115
117
122 virtual void OnAnimate(u32 timeMs)
123 {
124 if (IsVisible && IsStaticObject == false)
125 {
126 // animate this node with all animators
127
128 ISceneNodeAnimatorList::Iterator ait = Animators.begin(), atEnd = Animators.end();
129 while (ait != atEnd)
130 {
131 // continue to the next node before calling animateNode()
132 // so that the animator may remove itself from the scene
133 // node without the iterator becoming invalid
134 ISceneNodeAnimator* anim = *ait;
135 ++ait;
136 anim->animateNode(this, timeMs);
137 }
138
139 // update absolute position
141
142 // perform the post render process on all children
143
144 ISceneNodeList::Iterator it = Children.begin(), itEnd = Children.end();
145 for (; it != itEnd; ++it)
146 {
147 ISceneNode *node = (*it);
148 if (node->IsVisible == true && node->IsStaticObject == false)
149 node->OnAnimate(timeMs);
150 }
151 }
152 }
153
154
156 virtual void render() = 0;
157
158
160
161 virtual const c8* getName() const
162 {
163 return Name.c_str();
164 }
165
166
168
169 virtual void setName(const c8* name)
170 {
171 Name = name;
172 }
173
174
176
177 virtual void setName(const core::stringc& name)
178 {
179 Name = name;
180 }
181
182
184
191 virtual const core::aabbox3d<f32>& getBoundingBox() const = 0;
192
193
195
197 {
199 AbsoluteTransformation.transformBoxEx(box);
200 return box;
201 }
202
203
205
212 {
214 }
215
216
218
223 {
224 core::matrix4 mat;
227
228 if (RelativeScale != core::vector3df(1.f,1.f,1.f))
229 {
230 core::matrix4 smat;
232 mat *= smat;
233 }
234
235 return mat;
236 }
237
238
240
244 virtual bool isVisible() const
245 {
246 _IRR_IMPLEMENT_MANAGED_MARSHALLING_BUGFIX;
247 return IsVisible;
248 }
249
251
253 virtual bool isTrulyVisible() const
254 {
255 _IRR_IMPLEMENT_MANAGED_MARSHALLING_BUGFIX;
256 if(!IsVisible)
257 return false;
258
259 if(!Parent)
260 return true;
261
262 return Parent->isTrulyVisible();
263 }
264
266
270 virtual void setVisible(bool isVisible)
271 {
273 }
274
275 // Skylicht engine
276 // Add to skip OnAnimation
277 virtual void setStaticNode(bool s)
278 {
279 IsStaticObject = s;
280 }
281
282 virtual bool isStaticNode()
283 {
284 return IsStaticObject;
285 }
286
288
290 virtual s32 getID() const
291 {
292 return ID;
293 }
294
295
297
299 virtual void setID(s32 id)
300 {
301 ID = id;
302 }
303
304
306
309 virtual void addChild(ISceneNode* child)
310 {
311 if (child && (child != this))
312 {
313 // Change scene manager?
314 if (SceneManager != child->SceneManager)
316
317 child->grab();
318 child->remove(); // remove from old parent
319 Children.push_back(child);
320 child->Parent = this;
321 }
322 }
323
324
326
331 virtual bool removeChild(ISceneNode* child)
332 {
333 ISceneNodeList::Iterator it = Children.begin();
334 for (; it != Children.end(); ++it)
335 if ((*it) == child)
336 {
337 (*it)->Parent = 0;
338 (*it)->drop();
339 Children.erase(it);
340 return true;
341 }
342
343 _IRR_IMPLEMENT_MANAGED_MARSHALLING_BUGFIX;
344 return false;
345 }
346
347
349
352 virtual void removeAll()
353 {
354 ISceneNodeList::Iterator it = Children.begin();
355 for (; it != Children.end(); ++it)
356 {
357 (*it)->Parent = 0;
358 (*it)->drop();
359 }
360
361 Children.clear();
362 }
363
364
366
368 virtual void remove()
369 {
370 if (Parent)
371 Parent->removeChild(this);
372 }
373
374
376
377 virtual void addAnimator(ISceneNodeAnimator* animator)
378 {
379 if (animator)
380 {
381 Animators.push_back(animator);
382 animator->grab();
383 }
384 }
385
386
388
390 {
391 return Animators;
392 }
393
394
396
399 virtual void removeAnimator(ISceneNodeAnimator* animator)
400 {
401 ISceneNodeAnimatorList::Iterator it = Animators.begin();
402 for (; it != Animators.end(); ++it)
403 {
404 if ((*it) == animator)
405 {
406 (*it)->drop();
407 Animators.erase(it);
408 return;
409 }
410 }
411 }
412
413
415
417 virtual void removeAnimators()
418 {
419 ISceneNodeAnimatorList::Iterator it = Animators.begin();
420 for (; it != Animators.end(); ++it)
421 (*it)->drop();
422
423 Animators.clear();
424 }
425
426
428
436 {
438 }
439
440
442
443 virtual u32 getMaterialCount() const
444 {
445 return 0;
446 }
447
448
450
454 void setMaterialFlag(video::E_MATERIAL_FLAG flag, bool newvalue)
455 {
456 for (u32 i=0; i<getMaterialCount(); ++i)
457 getMaterial(i).setFlag(flag, newvalue);
458 }
459
460
462
465 void setMaterialTexture(u32 textureLayer, video::ITexture* texture)
466 {
467 if (textureLayer >= video::MATERIAL_MAX_TEXTURES)
468 return;
469
470 for (u32 i=0; i<getMaterialCount(); ++i)
471 getMaterial(i).setTexture(textureLayer, texture);
472 }
473
474
476
477 void setMaterialType(s32 newType)
478 {
479 for (u32 i=0; i<getMaterialCount(); ++i)
480 getMaterial(i).MaterialType = newType;
481 }
482
483
485
489 virtual const core::vector3df& getScale() const
490 {
491 return RelativeScale;
492 }
493
494
496
497 virtual void setScale(const core::vector3df& scale)
498 {
499 RelativeScale = scale;
500 }
501
502
504
508 virtual const core::vector3df& getRotation() const
509 {
510 return RelativeRotation;
511 }
512
513
515
517 virtual void setRotation(const core::vector3df& rotation)
518 {
519 RelativeRotation = rotation;
520 }
521
522
524
527 virtual const core::vector3df& getPosition() const
528 {
529 return RelativeTranslation;
530 }
531
532
534
536 virtual void setPosition(const core::vector3df& newpos)
537 {
538 RelativeTranslation = newpos;
539 }
540
541
543
552 {
553 return AbsoluteTransformation.getTranslation();
554 }
555
556
558
564 {
565 AutomaticCullingState = state;
566 }
567
568
570
572 {
574 }
575
576
578
581 virtual void setDebugDataVisible(u32 state)
582 {
583 DebugDataVisible = state;
584 }
585
587
590 {
591 return DebugDataVisible;
592 }
593
594
596
598 void setIsDebugObject(bool debugObject)
599 {
600 IsDebugObject = debugObject;
601 }
602
603
605
608 bool isDebugObject() const
609 {
610 _IRR_IMPLEMENT_MANAGED_MARSHALLING_BUGFIX;
611 return IsDebugObject;
612 }
613
614
616
618 {
619 return Children;
620 }
621
622
624
625 virtual void setParent(ISceneNode* newParent)
626 {
627 grab();
628 remove();
629
630 Parent = newParent;
631
632 if (Parent)
633 Parent->addChild(this);
634
635 drop();
636 }
637
638
640
650 {
651 return TriangleSelector;
652 }
653
654
656
665 {
666 if (TriangleSelector != selector)
667 {
669 TriangleSelector->drop();
670
671 TriangleSelector = selector;
673 TriangleSelector->grab();
674 }
675 }
676
677
679
682 {
683 if (Parent)
684 {
686 Parent->getAbsoluteTransformation() * getRelativeTransformation();
687 }
688 else
690 }
691
692
694
696 {
697 return Parent;
698 }
699
700
702
703 virtual ESCENE_NODE_TYPE getType() const
704 {
705 return ESNT_UNKNOWN;
706 }
707
708
710
717 {
718 if (!out)
719 return;
720 out->addString ("Name", Name.c_str());
721 out->addInt ("Id", ID );
722
723 out->addVector3d("Position", getPosition() );
724 out->addVector3d("Rotation", getRotation() );
725 out->addVector3d("Scale", getScale() );
726
727 out->addBool ("Visible", IsVisible );
728 out->addInt ("AutomaticCulling", AutomaticCullingState);
729 out->addInt ("DebugDataVisible", DebugDataVisible );
730 out->addBool ("IsDebugObject", IsDebugObject );
731 }
732
733
735
742 {
743 if (!in)
744 return;
745 Name = in->getAttributeAsString("Name");
746 ID = in->getAttributeAsInt("Id");
747
748 setPosition(in->getAttributeAsVector3d("Position"));
749 setRotation(in->getAttributeAsVector3d("Rotation"));
750 setScale(in->getAttributeAsVector3d("Scale"));
751
752 IsVisible = in->getAttributeAsBool("Visible");
753 s32 tmpState = in->getAttributeAsEnumeration("AutomaticCulling",
755 if (tmpState != -1)
756 AutomaticCullingState = (u32)tmpState;
757 else
758 AutomaticCullingState = in->getAttributeAsInt("AutomaticCulling");
759
760 DebugDataVisible = in->getAttributeAsInt("DebugDataVisible");
761 IsDebugObject = in->getAttributeAsBool("IsDebugObject");
762
764 }
765
767
770 virtual ISceneNode* clone(ISceneNode* newParent=0, ISceneManager* newManager=0)
771 {
772 return 0; // to be implemented by derived classes
773 }
774
776
777 virtual ISceneManager* getSceneManager(void) const { return SceneManager; }
778
779 protected:
780
782
786 void cloneMembers(ISceneNode* toCopyFrom, ISceneManager* newManager)
787 {
788 Name = toCopyFrom->Name;
792 RelativeScale = toCopyFrom->RelativeScale;
793 ID = toCopyFrom->ID;
797 IsVisible = toCopyFrom->IsVisible;
798 IsDebugObject = toCopyFrom->IsDebugObject;
799
800 if (newManager)
801 SceneManager = newManager;
802 else
803 SceneManager = toCopyFrom->SceneManager;
804
805 // clone children
806
807 ISceneNodeList::Iterator it = toCopyFrom->Children.begin();
808 for (; it != toCopyFrom->Children.end(); ++it)
809 (*it)->clone(this, newManager);
810
811 // clone animators
812
813 ISceneNodeAnimatorList::Iterator ait = toCopyFrom->Animators.begin();
814 for (; ait != toCopyFrom->Animators.end(); ++ait)
815 {
816 ISceneNodeAnimator* anim = (*ait)->createClone(this, SceneManager);
817 if (anim)
818 {
819 addAnimator(anim);
820 anim->drop();
821 }
822 }
823 }
824
828 {
829 SceneManager = newManager;
830
831 ISceneNodeList::Iterator it = Children.begin();
832 for (; it != Children.end(); ++it)
833 (*it)->setSceneManager(newManager);
834 }
835
838
841
844
847
850
853
856
859
862
865
868
871
874
877
878 // Skylicht engine add
879 bool IsStaticObject;
880
883 };
884
885
886} // end namespace scene
887} // end namespace irr
888
889#endif
890
bool drop() const
Drops the object. Decrements the reference counter by one.
Definition IReferenceCounted.h:126
void grab() const
Grabs the object. Increments the reference counter by one.
Definition IReferenceCounted.h:96
CMatrix4< T > & setScale(const vector3d< T > &scale)
Set Scale.
Definition matrix4.h:778
CMatrix4< T > & setRotationDegrees(const vector3d< T > &rotation)
Make a rotation matrix from Euler angles. The 4th row and column are unmodified.
Definition matrix4.h:816
CMatrix4< T > & setTranslation(const vector3d< T > &translation)
Set the translation of the current matrix. Will erase any previous values.
Definition matrix4.h:754
Axis aligned bounding box in 3d dimensional space.
Definition aabbox3d.h:22
Doubly linked list template.
Definition irrList.h:21
Iterator end()
Gets end node.
Definition irrList.h:273
Iterator begin()
Gets first node.
Definition irrList.h:257
An object which is able to serialize and deserialize its attributes into an attributes object.
Definition IAttributeExchangingObject.h:52
Provides a generic interface for attributes and their values and the possiblity to serialize them.
Definition IAttributes.h:42
virtual s32 getAttributeAsInt(const c8 *attributeName, irr::s32 defaultNotFound=0) const =0
virtual core::vector3df getAttributeAsVector3d(const c8 *attributeName, const core::vector3df &defaultNotFound=core::vector3df(0, 0, 0))=0
virtual core::stringc getAttributeAsString(const c8 *attributeName, const core::stringc &defaultNotFound=core::stringc())=0
virtual bool getAttributeAsBool(const c8 *attributeName, bool defaultNotFound=false)=0
virtual const c8 * getAttributeAsEnumeration(const c8 *attributeName, const c8 *defaultNotFound=0)=0
The Scene Manager manages scene nodes, mesh recources, cameras and all the other stuff.
Definition ISceneManager.h:135
Animates a scene node. Can animate position, rotation, material, and so on.
Definition ISceneNodeAnimator.h:31
virtual ISceneNodeAnimator * createClone(ISceneNode *node, ISceneManager *newManager=0)=0
Creates a clone of this animator.
virtual void animateNode(ISceneNode *node, u32 timeMs)=0
Animates a scene node.
Scene node interface.
Definition ISceneNode.h:41
s32 ID
ID of the node.
Definition ISceneNode.h:867
void cloneMembers(ISceneNode *toCopyFrom, ISceneManager *newManager)
A clone function for the ISceneNode members.
Definition ISceneNode.h:786
ISceneManager * SceneManager
Pointer to the scene manager.
Definition ISceneNode.h:861
u32 getAutomaticCulling() const
Gets the automatic culling state.
Definition ISceneNode.h:571
u32 AutomaticCullingState
Automatic culling state.
Definition ISceneNode.h:870
virtual core::vector3df getAbsolutePosition() const
Gets the absolute position of the node in world coordinates.
Definition ISceneNode.h:551
void setMaterialTexture(u32 textureLayer, video::ITexture *texture)
Sets the texture of the specified layer in all materials of this scene node to the new texture.
Definition ISceneNode.h:465
virtual void addAnimator(ISceneNodeAnimator *animator)
Adds an animator which should animate this node.
Definition ISceneNode.h:377
ISceneNode * Parent
Pointer to the parent.
Definition ISceneNode.h:852
virtual s32 getID() const
Get the id of the scene node.
Definition ISceneNode.h:290
const core::list< ISceneNode * > & getChildren() const
Returns a const reference to the list of all children.
Definition ISceneNode.h:617
core::list< ISceneNode * > Children
List of all children of this node.
Definition ISceneNode.h:855
virtual void setScale(const core::vector3df &scale)
Sets the relative scale of the scene node.
Definition ISceneNode.h:497
core::vector3df RelativeTranslation
Relative translation of the scene node.
Definition ISceneNode.h:843
virtual const core::matrix4 & getAbsoluteTransformation() const
Get the absolute transformation of the node. Is recalculated every OnAnimate()-call.
Definition ISceneNode.h:211
virtual void setName(const core::stringc &name)
Sets the name of the node.
Definition ISceneNode.h:177
virtual void setPosition(const core::vector3df &newpos)
Sets the position of the node relative to its parent.
Definition ISceneNode.h:536
u32 DebugDataVisible
Flag if debug data should be drawn, such as Bounding Boxes.
Definition ISceneNode.h:873
core::stringc Name
Name of the scene node.
Definition ISceneNode.h:837
virtual const core::vector3df & getScale() const
Gets the scale of the scene node relative to its parent.
Definition ISceneNode.h:489
void setMaterialFlag(video::E_MATERIAL_FLAG flag, bool newvalue)
Sets all material flags at once to a new value.
Definition ISceneNode.h:454
virtual void removeAnimators()
Removes all animators from this scene node.
Definition ISceneNode.h:417
scene::ISceneNode * getParent() const
Returns the parent of this scene node.
Definition ISceneNode.h:695
virtual void setVisible(bool isVisible)
Sets if the node should be visible or not.
Definition ISceneNode.h:270
virtual void remove()
Removes this scene node from the scene.
Definition ISceneNode.h:368
bool isDebugObject() const
Returns if this scene node is a debug object.
Definition ISceneNode.h:608
virtual ~ISceneNode()
Destructor.
Definition ISceneNode.h:62
virtual void serializeAttributes(io::IAttributes *out, io::SAttributeReadWriteOptions *options=0) const
Writes attributes of the scene node.
Definition ISceneNode.h:716
virtual const c8 * getName() const
Returns the name of the node.
Definition ISceneNode.h:161
virtual ESCENE_NODE_TYPE getType() const
Returns type of the scene node.
Definition ISceneNode.h:703
virtual void removeAll()
Removes all children of this scene node.
Definition ISceneNode.h:352
virtual bool isTrulyVisible() const
Check whether the node is truly visible, taking into accounts its parents' visibility.
Definition ISceneNode.h:253
void setSceneManager(ISceneManager *newManager)
Definition ISceneNode.h:827
virtual void setParent(ISceneNode *newParent)
Changes the parent of the scene node.
Definition ISceneNode.h:625
virtual const core::aabbox3d< f32 > getTransformedBoundingBox() const
Get the axis aligned, transformed and animated absolute bounding box of this node.
Definition ISceneNode.h:196
virtual void deserializeAttributes(io::IAttributes *in, io::SAttributeReadWriteOptions *options=0)
Reads attributes of the scene node.
Definition ISceneNode.h:741
void setAutomaticCulling(u32 state)
Enables or disables automatic culling based on the bounding box.
Definition ISceneNode.h:563
virtual ISceneManager * getSceneManager(void) const
Retrieve the scene manager for this node.
Definition ISceneNode.h:777
core::vector3df RelativeScale
Relative scale of the scene node.
Definition ISceneNode.h:849
void setIsDebugObject(bool debugObject)
Sets if this scene node is a debug object.
Definition ISceneNode.h:598
core::list< ISceneNodeAnimator * > Animators
List of all animator nodes.
Definition ISceneNode.h:858
virtual void setName(const c8 *name)
Sets the name of the node.
Definition ISceneNode.h:169
virtual bool removeChild(ISceneNode *child)
Removes a child from this scene node.
Definition ISceneNode.h:331
core::vector3df RelativeRotation
Relative rotation of the scene node.
Definition ISceneNode.h:846
virtual void setTriangleSelector(ITriangleSelector *selector)
Sets the triangle selector of the scene node.
Definition ISceneNode.h:664
virtual u32 getMaterialCount() const
Get amount of materials used by this scene node.
Definition ISceneNode.h:443
bool IsDebugObject
Is debug object?
Definition ISceneNode.h:882
virtual const core::aabbox3d< f32 > & getBoundingBox() const =0
Get the axis aligned, not transformed bounding box of this node.
ISceneNode(ISceneNode *parent, ISceneManager *mgr, s32 id=-1, const core::vector3df &position=core::vector3df(0, 0, 0), const core::vector3df &rotation=core::vector3df(0, 0, 0), const core::vector3df &scale=core::vector3df(1.0f, 1.0f, 1.0f))
Constructor.
Definition ISceneNode.h:45
virtual bool isVisible() const
Returns whether the node should be visible (if all of its parents are visible).
Definition ISceneNode.h:244
virtual video::SMaterial & getMaterial(u32 num)
Returns the material based on the zero based index i.
Definition ISceneNode.h:435
bool IsVisible
Is the node visible?
Definition ISceneNode.h:876
virtual void removeAnimator(ISceneNodeAnimator *animator)
Removes an animator from this scene node.
Definition ISceneNode.h:399
core::matrix4 AbsoluteTransformation
Absolute transformation of the node.
Definition ISceneNode.h:840
virtual core::matrix4 getRelativeTransformation() const
Returns the relative transformation of the scene node.
Definition ISceneNode.h:222
virtual void OnRegisterSceneNode()
This method is called just before the rendering process of the whole scene.
Definition ISceneNode.h:91
virtual const core::vector3df & getPosition() const
Gets the position of the node relative to its parent.
Definition ISceneNode.h:527
virtual void addChild(ISceneNode *child)
Adds a child to this scene node.
Definition ISceneNode.h:309
u32 isDebugDataVisible() const
Returns if debug data like bounding boxes are drawn.
Definition ISceneNode.h:589
const core::list< ISceneNodeAnimator * > & getAnimators() const
Get a list of all scene node animators.
Definition ISceneNode.h:389
ITriangleSelector * TriangleSelector
Pointer to the triangle selector.
Definition ISceneNode.h:864
virtual ITriangleSelector * getTriangleSelector() const
Returns the triangle selector attached to this scene node.
Definition ISceneNode.h:649
void setMaterialType(s32 newType)
Sets the material type of all materials in this scene node to a new material type.
Definition ISceneNode.h:477
virtual void setDebugDataVisible(u32 state)
Sets if debug data like bounding boxes should be drawn.
Definition ISceneNode.h:581
virtual ISceneNode * clone(ISceneNode *newParent=0, ISceneManager *newManager=0)
Creates a clone of this scene node and its children.
Definition ISceneNode.h:770
virtual void setRotation(const core::vector3df &rotation)
Sets the rotation of the node relative to its parent.
Definition ISceneNode.h:517
virtual const core::vector3df & getRotation() const
Gets the rotation of the node relative to its parent.
Definition ISceneNode.h:508
virtual void setID(s32 id)
Sets the id of the scene node.
Definition ISceneNode.h:299
virtual void updateAbsolutePosition()
Updates the absolute position based on the relative and the parents position.
Definition ISceneNode.h:681
virtual void OnAnimate(u32 timeMs)
OnAnimate() is called just before rendering the whole scene.
Definition ISceneNode.h:122
virtual void render()=0
Renders the node.
Interface to return triangles with specific properties.
Definition ITriangleSelector.h:29
Interface of a Video Driver dependent Texture.
Definition ITexture.h:119
Struct for holding parameters for a material renderer.
Definition SMaterial.h:255
s32 MaterialType
Type of the material. Specifies how everything is blended together.
Definition SMaterial.h:333
void setTexture(u32 i, ITexture *tex)
Sets the i-th texture.
Definition SMaterial.h:524
void setFlag(E_MATERIAL_FLAG flag, bool value, int intValue=0)
Sets the Material flag to the given value.
Definition SMaterial.h:534
vector3d< f32 > vector3df
Typedef for a f32 3d vector.
Definition vector3d.h:445
CMatrix4< f32 > matrix4
Typedef for f32 matrix.
Definition matrix4.h:2241
string< c8 > stringc
Typedef for character strings.
Definition irrString.h:1373
All scene management can be found in this namespace: Mesh loading, special scene nodes like octrees a...
Definition CIndexBuffer.h:13
core::list< ISceneNodeAnimator * > ISceneNodeAnimatorList
Typedef for list of scene node animators.
Definition ISceneNode.h:30
@ EDS_OFF
No Debug Data ( Default ).
Definition EDebugSceneTypes.h:17
core::list< ISceneNode * > ISceneNodeList
Typedef for list of scene nodes.
Definition ISceneNode.h:28
ESCENE_NODE_TYPE
An enumeration for all types of built-in scene nodes.
Definition ESceneNodeTypes.h:20
@ ESNT_UNKNOWN
Unknown scene node.
Definition ESceneNodeTypes.h:48
const c8 *const AutomaticCullingNames[]
Names for culling type.
Definition ECullingTypes.h:26
IRRLICHT_API SMaterial IdentityMaterial
global const identity Material
E_MATERIAL_FLAG
Material flags.
Definition EMaterialFlags.h:15
const u32 MATERIAL_MAX_TEXTURES
Maximum number of texture an SMaterial can have.
Definition SMaterial.h:251
Everything in the Irrlicht Engine can be found in this namespace.
Definition Skylicht.h:33
unsigned int u32
32 bit unsigned variable.
Definition irrTypes.h:58
char c8
8 bit character variable.
Definition irrTypes.h:31
signed int s32
32 bit signed variable.
Definition irrTypes.h:66
struct holding data describing options
Definition IAttributeExchangingObject.h:35