| ## Public API Reference

- Main Page
- Modules
- Namespaces
- Classes
- Files
- Related Pages

- Alphabetical List
- Class List
- Class Hierarchy
- Class Members

# iObject Struct Reference
[Utilities]

This interface is an SCF interface for encapsulating csObject. More...

`#include <iutil/object.h>`

Inheritance diagram for iObject:

[legend]
List of all members.

## Public Member Functions
virtual void | AddNameChangeListener (iObjectNameChangeListener *listener)=0
| Add a name change listener.
virtual iObject * | GetChild (const char *Name) const =0
| Return the first child object with the given name.
virtual iObject * | GetChild (int iInterfaceID, int iVersion, const char *Name=0, bool FirstName=false) const =0
| Look for a child object that implements the given interface.
virtual uint | GetID () const =0
| Get the unique ID associated with this object.
virtual csPtr< iObjectIterator > | GetIterator ()=0
| Return an iterator for all child objects.
virtual const char * | GetName () const =0
| Query object name.
virtual iObject * | GetObjectParent () const =0
| Returns the parent iObject.
virtual void | ObjAdd (iObject *obj)=0
| Attach a new iObject to the tree.
virtual void | ObjAddChildren (iObject *Parent)=0
| Add all child objects of the given object.
virtual void | ObjReleaseOld (iObject *obj)=0
virtual void | ObjRemove (iObject *obj)=0
| Remove an iObject from the tree.
virtual void | ObjRemoveAll ()=0
| Remove all child objects.
virtual void | RemoveNameChangeListener (iObjectNameChangeListener *listener)=0
| Remove a name change listener.
virtual void | SetName (const char *iName)=0
| Set object name.
virtual void | SetObjectParent (iObject *obj)=0
| Set the parent iObject.

## Detailed Description

This interface is an SCF interface for encapsulating csObject.

Main creators of instances implementing this interface:

- Many objects implement this (especially objects in the 3D engine like meshes, lights, sectors, materials, ...)

Main ways to get pointers to this interface:

- Many objects have a QueryObject() method that you can use.
- scfQueryInterface() on the object.
- iObject::GetObjectParent()
- iObject::GetChild()
- iObjectIterator::Next()
- iObjectIterator::GetParentObj()

Definition at line 92 of file object.h.

## Member Function Documentation

virtual void iObject::AddNameChangeListener | ( | iObjectNameChangeListener * | listener | ) | `[pure virtual]`

Add a name change listener.

Implemented in csObject.

virtual iObject* iObject::GetChild | ( | const char * | Name | ) | const`[pure virtual]`

Return the first child object with the given name.

Implemented in csObject.

virtual iObject* iObject::GetChild | ( | int | iInterfaceID,
|  | int | iVersion,
|  | const char * | Name = `0`,
|  | bool | FirstName = `false` |
| ) |  |  | const`[pure virtual]`

Look for a child object that implements the given interface.

You can optionally pass a name to look for. If FirstName is true then the method will stop at the first object with the requested name, even if it did not implement the requested type. Note that the returned object must still be queried for the requested type.

Note that the returned object will be IncRef'ed.

Implemented in csObject.

virtual uint iObject::GetID | ( |  | ) | const`[pure virtual]`

Get the unique ID associated with this object.

Implemented in csObject.

virtual csPtr<iObjectIterator> iObject::GetIterator | ( |  | ) | `[pure virtual]`

Return an iterator for all child objects.

Note that you should not remove child objects while iterating.

Implemented in csObject.

Referenced by csTypedObjectIterator< T >::csTypedObjectIterator().

virtual const char* iObject::GetName | ( |  | ) | const`[pure virtual]`

Query object name.

Implemented in csObject.

virtual iObject* iObject::GetObjectParent | ( |  | ) | const`[pure virtual]`

Returns the parent iObject.

Implemented in csObject.

virtual void iObject::ObjAdd | ( | iObject * | obj | ) | `[pure virtual]`

Attach a new iObject to the tree.

Implemented in csObject.

virtual void iObject::ObjAddChildren | ( | iObject * | Parent | ) | `[pure virtual]`

Add all child objects of the given object.

Implemented in csObject.

virtual void iObject::ObjReleaseOld | ( | iObject * | obj | ) | `[pure virtual]`

Todo:
  Investigate a way to remove this function.

Implemented in csObject.

virtual void iObject::ObjRemove | ( | iObject * | obj | ) | `[pure virtual]`

Remove an iObject from the tree.

Implemented in csObject.

virtual void iObject::ObjRemoveAll | ( |  | ) | `[pure virtual]`

Remove all child objects.

Implemented in csObject.

virtual void iObject::RemoveNameChangeListener | ( | iObjectNameChangeListener * | listener | ) | `[pure virtual]`

Remove a name change listener.

Implemented in csObject.

virtual void iObject::SetName | ( | const char * | iName | ) | `[pure virtual]`

Set object name.

Implemented in csObject.

virtual void iObject::SetObjectParent | ( | iObject * | obj | ) | `[pure virtual]`

Set the parent iObject.

Note that this only sets the 'parent' pointer but does not add the object as a child object.

Implemented in csObject.

The documentation for this struct was generated from the following file:

- iutil/object.h