From f9158592e1478b2013afc7041d9ed041cf2d2f4a Mon Sep 17 00:00:00 2001 From: David Walter Seikel Date: Mon, 13 Jan 2014 19:47:58 +1000 Subject: Update Irrlicht to 1.8.1. Include actual change markers this time. lol --- .../doc/html/_i_scene_node_8h_source.html | 777 --------------------- 1 file changed, 777 deletions(-) delete mode 100644 libraries/irrlicht-1.8/doc/html/_i_scene_node_8h_source.html (limited to 'libraries/irrlicht-1.8/doc/html/_i_scene_node_8h_source.html') diff --git a/libraries/irrlicht-1.8/doc/html/_i_scene_node_8h_source.html b/libraries/irrlicht-1.8/doc/html/_i_scene_node_8h_source.html deleted file mode 100644 index b2435b7..0000000 --- a/libraries/irrlicht-1.8/doc/html/_i_scene_node_8h_source.html +++ /dev/null @@ -1,777 +0,0 @@ - - -
- -00001 // Copyright (C) 2002-2012 Nikolaus Gebhardt -00002 // This file is part of the "Irrlicht Engine". -00003 // For conditions of distribution and use, see copyright notice in irrlicht.h -00004 -00005 #ifndef __I_SCENE_NODE_H_INCLUDED__ -00006 #define __I_SCENE_NODE_H_INCLUDED__ -00007 -00008 #include "IAttributeExchangingObject.h" -00009 #include "ESceneNodeTypes.h" -00010 #include "ECullingTypes.h" -00011 #include "EDebugSceneTypes.h" -00012 #include "ISceneNodeAnimator.h" -00013 #include "ITriangleSelector.h" -00014 #include "SMaterial.h" -00015 #include "irrString.h" -00016 #include "aabbox3d.h" -00017 #include "matrix4.h" -00018 #include "irrList.h" -00019 #include "IAttributes.h" -00020 -00021 namespace irr -00022 { -00023 namespace scene -00024 { -00025 class ISceneManager; -00026 -00028 typedef core::list<ISceneNode*> ISceneNodeList; -00030 typedef core::list<ISceneNodeAnimator*> ISceneNodeAnimatorList; -00031 -00033 -00040 class ISceneNode : virtual public io::IAttributeExchangingObject -00041 { -00042 public: -00043 -00045 ISceneNode(ISceneNode* parent, ISceneManager* mgr, s32 id=-1, -00046 const core::vector3df& position = core::vector3df(0,0,0), -00047 const core::vector3df& rotation = core::vector3df(0,0,0), -00048 const core::vector3df& scale = core::vector3df(1.0f, 1.0f, 1.0f)) -00049 : RelativeTranslation(position), RelativeRotation(rotation), RelativeScale(scale), -00050 Parent(0), SceneManager(mgr), TriangleSelector(0), ID(id), -00051 AutomaticCullingState(EAC_BOX), DebugDataVisible(EDS_OFF), -00052 IsVisible(true), IsDebugObject(false) -00053 { -00054 if (parent) -00055 parent->addChild(this); -00056 -00057 updateAbsolutePosition(); -00058 } -00059 -00060 -00062 virtual ~ISceneNode() -00063 { -00064 // delete all children -00065 removeAll(); -00066 -00067 // delete all animators -00068 ISceneNodeAnimatorList::Iterator ait = Animators.begin(); -00069 for (; ait != Animators.end(); ++ait) -00070 (*ait)->drop(); -00071 -00072 if (TriangleSelector) -00073 TriangleSelector->drop(); -00074 } -00075 -00076 -00078 -00091 virtual void OnRegisterSceneNode() -00092 { -00093 if (IsVisible) -00094 { -00095 ISceneNodeList::Iterator it = Children.begin(); -00096 for (; it != Children.end(); ++it) -00097 (*it)->OnRegisterSceneNode(); -00098 } -00099 } -00100 -00101 -00103 -00108 virtual void OnAnimate(u32 timeMs) -00109 { -00110 if (IsVisible) -00111 { -00112 // animate this node with all animators -00113 -00114 ISceneNodeAnimatorList::Iterator ait = Animators.begin(); -00115 while (ait != Animators.end()) -00116 { -00117 // continue to the next node before calling animateNode() -00118 // so that the animator may remove itself from the scene -00119 // node without the iterator becoming invalid -00120 ISceneNodeAnimator* anim = *ait; -00121 ++ait; -00122 anim->animateNode(this, timeMs); -00123 } -00124 -00125 // update absolute position -00126 updateAbsolutePosition(); -00127 -00128 // perform the post render process on all children -00129 -00130 ISceneNodeList::Iterator it = Children.begin(); -00131 for (; it != Children.end(); ++it) -00132 (*it)->OnAnimate(timeMs); -00133 } -00134 } -00135 -00136 -00138 virtual void render() = 0; -00139 -00140 -00142 -00143 virtual const c8* getName() const -00144 { -00145 return Name.c_str(); -00146 } -00147 -00148 -00150 -00151 virtual void setName(const c8* name) -00152 { -00153 Name = name; -00154 } -00155 -00156 -00158 -00159 virtual void setName(const core::stringc& name) -00160 { -00161 Name = name; -00162 } -00163 -00164 -00166 -00173 virtual const core::aabbox3d<f32>& getBoundingBox() const = 0; -00174 -00175 -00177 -00178 virtual const core::aabbox3d<f32> getTransformedBoundingBox() const -00179 { -00180 core::aabbox3d<f32> box = getBoundingBox(); -00181 AbsoluteTransformation.transformBoxEx(box); -00182 return box; -00183 } -00184 -00185 -00187 -00193 virtual const core::matrix4& getAbsoluteTransformation() const -00194 { -00195 return AbsoluteTransformation; -00196 } -00197 -00198 -00200 -00204 virtual core::matrix4 getRelativeTransformation() const -00205 { -00206 core::matrix4 mat; -00207 mat.setRotationDegrees(RelativeRotation); -00208 mat.setTranslation(RelativeTranslation); -00209 -00210 if (RelativeScale != core::vector3df(1.f,1.f,1.f)) -00211 { -00212 core::matrix4 smat; -00213 smat.setScale(RelativeScale); -00214 mat *= smat; -00215 } -00216 -00217 return mat; -00218 } -00219 -00220 -00222 -00226 virtual bool isVisible() const -00227 { -00228 _IRR_IMPLEMENT_MANAGED_MARSHALLING_BUGFIX; -00229 return IsVisible; -00230 } -00231 -00233 -00235 virtual bool isTrulyVisible() const -00236 { -00237 _IRR_IMPLEMENT_MANAGED_MARSHALLING_BUGFIX; -00238 if(!IsVisible) -00239 return false; -00240 -00241 if(!Parent) -00242 return true; -00243 -00244 return Parent->isTrulyVisible(); -00245 } -00246 -00248 -00252 virtual void setVisible(bool isVisible) -00253 { -00254 IsVisible = isVisible; -00255 } -00256 -00257 -00259 -00261 virtual s32 getID() const -00262 { -00263 return ID; -00264 } -00265 -00266 -00268 -00270 virtual void setID(s32 id) -00271 { -00272 ID = id; -00273 } -00274 -00275 -00277 -00280 virtual void addChild(ISceneNode* child) -00281 { -00282 if (child && (child != this)) -00283 { -00284 // Change scene manager? -00285 if (SceneManager != child->SceneManager) -00286 child->setSceneManager(SceneManager); -00287 -00288 child->grab(); -00289 child->remove(); // remove from old parent -00290 Children.push_back(child); -00291 child->Parent = this; -00292 } -00293 } -00294 -00295 -00297 -00302 virtual bool removeChild(ISceneNode* child) -00303 { -00304 ISceneNodeList::Iterator it = Children.begin(); -00305 for (; it != Children.end(); ++it) -00306 if ((*it) == child) -00307 { -00308 (*it)->Parent = 0; -00309 (*it)->drop(); -00310 Children.erase(it); -00311 return true; -00312 } -00313 -00314 _IRR_IMPLEMENT_MANAGED_MARSHALLING_BUGFIX; -00315 return false; -00316 } -00317 -00318 -00320 -00323 virtual void removeAll() -00324 { -00325 ISceneNodeList::Iterator it = Children.begin(); -00326 for (; it != Children.end(); ++it) -00327 { -00328 (*it)->Parent = 0; -00329 (*it)->drop(); -00330 } -00331 -00332 Children.clear(); -00333 } -00334 -00335 -00337 -00339 virtual void remove() -00340 { -00341 if (Parent) -00342 Parent->removeChild(this); -00343 } -00344 -00345 -00347 -00348 virtual void addAnimator(ISceneNodeAnimator* animator) -00349 { -00350 if (animator) -00351 { -00352 Animators.push_back(animator); -00353 animator->grab(); -00354 } -00355 } -00356 -00357 -00359 -00360 const core::list<ISceneNodeAnimator*>& getAnimators() const -00361 { -00362 return Animators; -00363 } -00364 -00365 -00367 -00370 virtual void removeAnimator(ISceneNodeAnimator* animator) -00371 { -00372 ISceneNodeAnimatorList::Iterator it = Animators.begin(); -00373 for (; it != Animators.end(); ++it) -00374 { -00375 if ((*it) == animator) -00376 { -00377 (*it)->drop(); -00378 Animators.erase(it); -00379 return; -00380 } -00381 } -00382 } -00383 -00384 -00386 -00388 virtual void removeAnimators() -00389 { -00390 ISceneNodeAnimatorList::Iterator it = Animators.begin(); -00391 for (; it != Animators.end(); ++it) -00392 (*it)->drop(); -00393 -00394 Animators.clear(); -00395 } -00396 -00397 -00399 -00406 virtual video::SMaterial& getMaterial(u32 num) -00407 { -00408 return video::IdentityMaterial; -00409 } -00410 -00411 -00413 -00414 virtual u32 getMaterialCount() const -00415 { -00416 return 0; -00417 } -00418 -00419 -00421 -00425 void setMaterialFlag(video::E_MATERIAL_FLAG flag, bool newvalue) -00426 { -00427 for (u32 i=0; i<getMaterialCount(); ++i) -00428 getMaterial(i).setFlag(flag, newvalue); -00429 } -00430 -00431 -00433 -00436 void setMaterialTexture(u32 textureLayer, video::ITexture* texture) -00437 { -00438 if (textureLayer >= video::MATERIAL_MAX_TEXTURES) -00439 return; -00440 -00441 for (u32 i=0; i<getMaterialCount(); ++i) -00442 getMaterial(i).setTexture(textureLayer, texture); -00443 } -00444 -00445 -00447 -00448 void setMaterialType(video::E_MATERIAL_TYPE newType) -00449 { -00450 for (u32 i=0; i<getMaterialCount(); ++i) -00451 getMaterial(i).MaterialType = newType; -00452 } -00453 -00454 -00456 -00460 virtual const core::vector3df& getScale() const -00461 { -00462 return RelativeScale; -00463 } -00464 -00465 -00467 -00468 virtual void setScale(const core::vector3df& scale) -00469 { -00470 RelativeScale = scale; -00471 } -00472 -00473 -00475 -00479 virtual const core::vector3df& getRotation() const -00480 { -00481 return RelativeRotation; -00482 } -00483 -00484 -00486 -00488 virtual void setRotation(const core::vector3df& rotation) -00489 { -00490 RelativeRotation = rotation; -00491 } -00492 -00493 -00495 -00498 virtual const core::vector3df& getPosition() const -00499 { -00500 return RelativeTranslation; -00501 } -00502 -00503 -00505 -00507 virtual void setPosition(const core::vector3df& newpos) -00508 { -00509 RelativeTranslation = newpos; -00510 } -00511 -00512 -00514 -00522 virtual core::vector3df getAbsolutePosition() const -00523 { -00524 return AbsoluteTransformation.getTranslation(); -00525 } -00526 -00527 -00529 -00534 void setAutomaticCulling( u32 state) -00535 { -00536 AutomaticCullingState = state; -00537 } -00538 -00539 -00541 -00542 u32 getAutomaticCulling() const -00543 { -00544 return AutomaticCullingState; -00545 } -00546 -00547 -00549 -00552 virtual void setDebugDataVisible(u32 state) -00553 { -00554 DebugDataVisible = state; -00555 } -00556 -00558 -00560 u32 isDebugDataVisible() const -00561 { -00562 return DebugDataVisible; -00563 } -00564 -00565 -00567 -00569 void setIsDebugObject(bool debugObject) -00570 { -00571 IsDebugObject = debugObject; -00572 } -00573 -00574 -00576 -00579 bool isDebugObject() const -00580 { -00581 _IRR_IMPLEMENT_MANAGED_MARSHALLING_BUGFIX; -00582 return IsDebugObject; -00583 } -00584 -00585 -00587 -00588 const core::list<ISceneNode*>& getChildren() const -00589 { -00590 return Children; -00591 } -00592 -00593 -00595 -00596 virtual void setParent(ISceneNode* newParent) -00597 { -00598 grab(); -00599 remove(); -00600 -00601 Parent = newParent; -00602 -00603 if (Parent) -00604 Parent->addChild(this); -00605 -00606 drop(); -00607 } -00608 -00609 -00611 -00620 virtual ITriangleSelector* getTriangleSelector() const -00621 { -00622 return TriangleSelector; -00623 } -00624 -00625 -00627 -00635 virtual void setTriangleSelector(ITriangleSelector* selector) -00636 { -00637 if (TriangleSelector != selector) -00638 { -00639 if (TriangleSelector) -00640 TriangleSelector->drop(); -00641 -00642 TriangleSelector = selector; -00643 if (TriangleSelector) -00644 TriangleSelector->grab(); -00645 } -00646 } -00647 -00648 -00650 -00652 virtual void updateAbsolutePosition() -00653 { -00654 if (Parent) -00655 { -00656 AbsoluteTransformation = -00657 Parent->getAbsoluteTransformation() * getRelativeTransformation(); -00658 } -00659 else -00660 AbsoluteTransformation = getRelativeTransformation(); -00661 } -00662 -00663 -00665 -00666 scene::ISceneNode* getParent() const -00667 { -00668 return Parent; -00669 } -00670 -00671 -00673 -00674 virtual ESCENE_NODE_TYPE getType() const -00675 { -00676 return ESNT_UNKNOWN; -00677 } -00678 -00679 -00681 -00687 virtual void serializeAttributes(io::IAttributes* out, io::SAttributeReadWriteOptions* options=0) const -00688 { -00689 if (!out) -00690 return; -00691 out->addString ("Name", Name.c_str()); -00692 out->addInt ("Id", ID ); -00693 -00694 out->addVector3d("Position", getPosition() ); -00695 out->addVector3d("Rotation", getRotation() ); -00696 out->addVector3d("Scale", getScale() ); -00697 -00698 out->addBool ("Visible", IsVisible ); -00699 out->addInt ("AutomaticCulling", AutomaticCullingState); -00700 out->addInt ("DebugDataVisible", DebugDataVisible ); -00701 out->addBool ("IsDebugObject", IsDebugObject ); -00702 } -00703 -00704 -00706 -00712 virtual void deserializeAttributes(io::IAttributes* in, io::SAttributeReadWriteOptions* options=0) -00713 { -00714 if (!in) -00715 return; -00716 Name = in->getAttributeAsString("Name"); -00717 ID = in->getAttributeAsInt("Id"); -00718 -00719 setPosition(in->getAttributeAsVector3d("Position")); -00720 setRotation(in->getAttributeAsVector3d("Rotation")); -00721 setScale(in->getAttributeAsVector3d("Scale")); -00722 -00723 IsVisible = in->getAttributeAsBool("Visible"); -00724 s32 tmpState = in->getAttributeAsEnumeration("AutomaticCulling", -00725 scene::AutomaticCullingNames); -00726 if (tmpState != -1) -00727 AutomaticCullingState = (u32)tmpState; -00728 else -00729 AutomaticCullingState = in->getAttributeAsInt("AutomaticCulling"); -00730 -00731 DebugDataVisible = in->getAttributeAsInt("DebugDataVisible"); -00732 IsDebugObject = in->getAttributeAsBool("IsDebugObject"); -00733 -00734 updateAbsolutePosition(); -00735 } -00736 -00738 -00741 virtual ISceneNode* clone(ISceneNode* newParent=0, ISceneManager* newManager=0) -00742 { -00743 return 0; // to be implemented by derived classes -00744 } -00745 -00747 -00748 virtual ISceneManager* getSceneManager(void) const { return SceneManager; } -00749 -00750 protected: -00751 -00753 -00757 void cloneMembers(ISceneNode* toCopyFrom, ISceneManager* newManager) -00758 { -00759 Name = toCopyFrom->Name; -00760 AbsoluteTransformation = toCopyFrom->AbsoluteTransformation; -00761 RelativeTranslation = toCopyFrom->RelativeTranslation; -00762 RelativeRotation = toCopyFrom->RelativeRotation; -00763 RelativeScale = toCopyFrom->RelativeScale; -00764 ID = toCopyFrom->ID; -00765 setTriangleSelector(toCopyFrom->TriangleSelector); -00766 AutomaticCullingState = toCopyFrom->AutomaticCullingState; -00767 DebugDataVisible = toCopyFrom->DebugDataVisible; -00768 IsVisible = toCopyFrom->IsVisible; -00769 IsDebugObject = toCopyFrom->IsDebugObject; -00770 -00771 if (newManager) -00772 SceneManager = newManager; -00773 else -00774 SceneManager = toCopyFrom->SceneManager; -00775 -00776 // clone children -00777 -00778 ISceneNodeList::Iterator it = toCopyFrom->Children.begin(); -00779 for (; it != toCopyFrom->Children.end(); ++it) -00780 (*it)->clone(this, newManager); -00781 -00782 // clone animators -00783 -00784 ISceneNodeAnimatorList::Iterator ait = toCopyFrom->Animators.begin(); -00785 for (; ait != toCopyFrom->Animators.end(); ++ait) -00786 { -00787 ISceneNodeAnimator* anim = (*ait)->createClone(this, SceneManager); -00788 if (anim) -00789 { -00790 addAnimator(anim); -00791 anim->drop(); -00792 } -00793 } -00794 } -00795 -00798 void setSceneManager(ISceneManager* newManager) -00799 { -00800 SceneManager = newManager; -00801 -00802 ISceneNodeList::Iterator it = Children.begin(); -00803 for (; it != Children.end(); ++it) -00804 (*it)->setSceneManager(newManager); -00805 } -00806 -00808 core::stringc Name; -00809 -00811 core::matrix4 AbsoluteTransformation; -00812 -00814 core::vector3df RelativeTranslation; -00815 -00817 core::vector3df RelativeRotation; -00818 -00820 core::vector3df RelativeScale; -00821 -00823 ISceneNode* Parent; -00824 -00826 core::list<ISceneNode*> Children; -00827 -00829 core::list<ISceneNodeAnimator*> Animators; -00830 -00832 ISceneManager* SceneManager; -00833 -00835 ITriangleSelector* TriangleSelector; -00836 -00838 s32 ID; -00839 -00841 u32 AutomaticCullingState; -00842 -00844 u32 DebugDataVisible; -00845 -00847 bool IsVisible; -00848 -00850 bool IsDebugObject; -00851 }; -00852 -00853 -00854 } // end namespace scene -00855 } // end namespace irr -00856 -00857 #endif -00858 -