Kigs Framework  Doc version 0.8
Open source multi purpose Rapid Application Development framework
Public Member Functions | Protected Attributes | Friends | List of all members
OctreeSubNode Class Reference

#include <Octree.h>

Inheritance diagram for OctreeSubNode:
Node3D SceneNode CoreModifiable GenericRefCountedBaseClass

Public Member Functions

SP< OctreeSubNodeAddNode (SP< SceneNode > &node, int currentlevel, int maxLevel, int subdivelevel)
 add a node More...
 
bool RemoveNode (SceneNode *node)
 remove a node More...
 
void Divide ()
 divide
 
int FindSubNode (SceneNode *node)
 find a sub node More...
 
int FindSubNode (BBox *bbox)
 find a sub node from a bounding box More...
 
OctreeSubNodeGetFather ()
 get the father More...
 
bool SonsAreEmpty ()
 check if sons are empty More...
 
void KillSons ()
 kill sons
 
CullingObject::CULLING_RESULT RecurseCullSubNodes (const kstl::vector< PrecomputedCullInfo > &precull, TravState *state, unsigned int cullSubMask)
 perform culling recursivelly on sub node More...
 
SP< OctreeSubNode > & GetSubNode (int index)
 get a sub node More...
 
const kstl::vector< SceneNode * > & GetObjectList ()
 get object list More...
 
bool HasSons ()
 check if the octree has sons More...
 
- Public Member Functions inherited from Node3D
 DECLARE_DECORABLE_2_PARAMS (bool, Cull, Node3D, TravState *, unsigned int)
 
virtual void TravDraw (TravState *state)
 
virtual void TravCull (TravState *state)
 
bool addItem (const CMSP &item, ItemPosition pos=Last DECLARE_DEFAULT_LINK_NAME) override
 add item at first or last position
 
bool removeItem (const CMSP &item DECLARE_DEFAULT_LINK_NAME) override
 
void localMove (const v3f &move)
 move local node position ( pos = move + pos )
 
void globalMove (const v3f &move)
 move global node position ( gpos = gmove + gpos )
 
- Public Member Functions inherited from SceneNode
bool addItem (const CMSP &item, ItemPosition pos=Last DECLARE_DEFAULT_LINK_NAME) override
 add item at first or last position
 
- Public Member Functions inherited from CoreModifiable
void Init ()
 Modifiable managmenent.
 
void EmptyItemList ()
 remove all items (sons)
 
CMSP GetInstanceByPath (const std::string &path)
 return the instance corresponding to the given path in sons tree
 
std::string GetRuntimeID () const
 ID.
 
CoreModifiableAttributegetAttribute (KigsID labelid) const
 Attribute management.
 
u32 getNbArrayElements (KigsID attributeLabel) const
 return element count for an array type attribute
 
template<typename attribute_type , typename value_type >
attribute_type * AddDynamicAttribute (KigsID ID, const value_type &value)
 Dynamic attribute management.
 
const kigs::unordered_map< KigsID, ModifiableMethodStruct > * GetMethods ()
 Method management.
 
bool aggregateWith (CMSP &item, ItemPosition pos=Last)
 Aggregate management.
 
void flagAsNotificationCenterRegistered ()
 Flags.
 
void InitParametersFromList (const std::vector< CoreModifiableAttribute * > *params)
 Utility. More...
 
virtual void UninitModifiable ()
 called when InitModifiable has failled : reset read/write flag on all init params More...
 
virtual void ProtectedDestroy ()
 Destroy method decrement refcounter and delete instance if no more used. More...
 
virtual bool removeItem (const CMSP &item)
 remove item (son)
 

Protected Attributes

SP< OctreeSubNode > * mSonsSubNodes
 list of sons

 
OctreeSubNodemFatherSubNode
 list of father?
 
kstl::vector< SceneNode * > mObjectList
 list of object
 
int mTotalNodes
 numer of nodes
 
CullingObject::CULLING_RESULT mCullingResult
 result of the culling
 
- Protected Attributes inherited from Node3D
unsigned int mIsVisible
 valid after scene TravCull : mIsVisible store current frame index if object is visible
 
unsigned short mFirstVisibleNodeIndex
 first visible Node in ModuleSceneGraph::mVisiblesNodeList
 
unsigned short mVisibleNodeCount
 number of visible node
 
Matrix3x4 mTransform
 Local transformation matrix (father => this local coordinate system)
 
Matrix3x4 mLocalToGlobal
 Local to global transformation matrix (Local coordinate system => global "world" coordinate system)
 
Matrix3x4 mGlobalToLocal
 Global to local transformation matrix (Global "world" coordinate system => local coordinate system)
 
BBox mLocalBBox
 AABounding box in local coordinate system.
 
BBox mBBox
 AABounding box in father coordinate system.
 
BBox mGlobalBBox
 AABounding box in global "world" coordinate system.
 

Friends

class Octree
 

Additional Inherited Members

- Static Public Member Functions inherited from CoreModifiable
static std::vector< CMSP > GetRootInstances (const KigsID &cid, bool exactTypeOnly=false)
 static method : return the set of all root instances of the given type
 
static void Append (std::string &XMLString, const std::list< CoreModifiable * > &toexport, bool recursive, ExportSettings *settings=nullptr)
 static method to export the several CoreModifiable to an XML file. if recursive flag is set to true, export also all sons tree More...
 
static void Export (const std::string &filename, CoreModifiable *toexport, bool recursive=false, ExportSettings *settings=nullptr)
 static method to export the given CoreModifiable to an XML file. if recursive flag is set to true, export also all sons tree More...
 
static XMLNodeExportToXMLNode (CoreModifiable *toexport, XML *owner_xml_file, bool recursive, ExportSettings *settings=nullptr)
 static method to export the given CoreModifiable to an XML Node. if recursive flag is set to true, export also all sons tree More...
 
static std::string ExportToXMLString (CoreModifiable *toexport, bool recursive, ExportSettings *settings=nullptr)
 static method to export the given CoreModifiable to an XML file. if recursive flag is set to true, export also all sons tree More...
 
static void Export (std::string &XMLString, const std::list< CoreModifiable * > &toexport, bool recursive, ExportSettings *settings=nullptr)
 static method to export the several CoreModifiable to an XML file. if recursive flag is set to true, export also all sons tree More...
 
static CMSP Import (const std::string &filename, bool noInit=false, bool keepImportFileName=false, ImportState *state=nullptr, const std::string &override_name="")
 return an new CoreModifiable instance using the description found in XML file given by name
 
static CMSP GetInstanceByGlobalPath (const std::string &path)
 static method : return the instance corresponding to the given path, and given search start
 
static void debugPrintfFullTree (int maxindent=3)
 Editor. More...
 
- Protected Member Functions inherited from Node3D
void removeUser (CoreModifiable *user) override
 remove user (parent)
 
void addUser (CoreModifiable *user) override
 add the given parent to list
 
void InitModifiable () override
 default modifiable init : set all initparams to readonly and set initflag to true More...
 
void PreDrawDrawable (TravState *state)
 call predraw for drawable sons of this node return true if at least one drawable son was found More...
 
void DrawDrawable (TravState *state)
 call draw for drawable sons of this node More...
 
void PostDrawDrawable (TravState *state)
 call postdraw for drawable sons of this node More...
 
void RecomputeGlobalToLocal ()
 
void RecomputeGlobalBoundingBox ()
 
virtual void RecomputeBoundingBox ()
 
- Protected Member Functions inherited from CoreModifiable
void UpdateAggregates (const Timer &timer, void *addParam)
 Internals.
 
void Export (std::vector< CoreModifiable * > &savedList, XMLNode *currentNode, bool recursive, ExportSettings *settings)
 Export. More...
 
CoreModifiableAttributeGenericCreateDynamicAttribute (CoreModifiable::ATTRIBUTE_TYPE type, KigsID ID)
 create and add dynamic attribute except arrays
 
- Static Protected Member Functions inherited from CoreModifiable
template<typename StringType >
static CMSP Import (XMLNodeTemplate< StringType > *currentNode, CoreModifiable *currentModifiable, ImportState &importState)
 recusrive method to add sons and attributes found in the XML file
 

Detailed Description

Node in an octree.

Using a Node3D for this is probably overkilling.

Inherited Attributes

Inherited Methods

Member Function Documentation

◆ AddNode()

SP< OctreeSubNode > OctreeSubNode::AddNode ( SP< SceneNode > &  node,
int  currentlevel,
int  maxLevel,
int  subdivelevel 
)

add a node

Parameters
node: node to add
currentlevel: current level
maxLevel: max level
subdivelevel: subdivide level
Returns
the OctreeSubNode

◆ FindSubNode() [1/2]

int OctreeSubNode::FindSubNode ( BBox *  bbox)

find a sub node from a bounding box

Parameters
bbox: start from this bounding box
Returns
the index of the found node

◆ FindSubNode() [2/2]

int OctreeSubNode::FindSubNode ( SceneNode node)

find a sub node

Parameters
node: start from this node
Returns
the index of the found node

◆ GetFather()

OctreeSubNode * OctreeSubNode::GetFather ( )
inline

get the father

Returns
the father

◆ GetObjectList()

const kstl::vector< SceneNode * > & OctreeSubNode::GetObjectList ( )
inline

get object list

Returns
the object list

◆ GetSubNode()

OctreeSubNode * OctreeSubNode::GetSubNode ( int  index)
inline

get a sub node

Parameters
index: index of the root
Returns
a sub node

◆ HasSons()

OctreeSubNode::HasSons ( )
inline

check if the octree has sons

Returns
TRUS if the octree has sons

◆ RecurseCullSubNodes()

CullingObject::CULLING_RESULT OctreeSubNode::RecurseCullSubNodes ( const kstl::vector< PrecomputedCullInfo > &  precull,
TravState state,
unsigned int  cullSubMask 
)

perform culling recursivelly on sub node

Parameters
precull: precomputed culling
state: current TravState
Returns
the culling result

◆ RemoveNode()

bool OctreeSubNode::RemoveNode ( SceneNode node)

remove a node

Parameters
node: node to add
Returns
TRUE if the node has been removed

◆ SonsAreEmpty()

bool OctreeSubNode::SonsAreEmpty ( )

check if sons are empty

Returns
TRUE if sons are empty

The documentation for this class was generated from the following files: