Colobot
Public Member Functions | Static Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
CObject Class Referenceabstract

Base class for all 3D in-game objects. More...

#include <object.h>

Inheritance diagram for CObject:
Inheritance graph
[legend]

Public Member Functions

 CObject (const CObject &)=delete
 
CObjectoperator= (const CObject &)=delete
 
ObjectType GetType () const
 Returns object type.
 
int GetID () const
 Returns object's unique id.
 
virtual void Write (CLevelParserLine *line)=0
 Writes object properties to line in level file.
 
virtual void Read (CLevelParserLine *line)=0
 Reads object properties from line in level file.
 
virtual void UpdateInterface ()
 Updates all interface controls.
 
bool Implements (ObjectInterfaceType type) const
 Check if object implements the given type of interface.
 
virtual Math::Vector GetPosition () const
 Returns object's position.
 
virtual void SetPosition (const Math::Vector &pos)
 Sets object's position.
 
virtual Math::Vector GetRotation () const
 Returns object's rotation (Euler angles) More...
 
virtual void SetRotation (const Math::Vector &rotation)
 Sets object's rotation (Euler angles) More...
 
virtual Math::Vector GetScale () const
 Returns object's scale.
 
virtual void SetScale (const Math::Vector &scale)
 Sets objects's scale.
 
void SetScale (float scale)
 Sets objects's scale (uniform value)
 
void SetCrashSpheres (const std::vector< Gfx::ModelCrashSphere > &crashSpheres)
 Sets crash spheres for object.
 
void AddCrashSphere (const CrashSphere &crashSphere)
 Adds a new crash sphere. More...
 
int GetCrashSphereCount ()
 Returns total number of crash spheres.
 
CrashSphere GetFirstCrashSphere ()
 Returns the first crash sphere (assumes it exists) More...
 
std::vector< CrashSphereGetAllCrashSpheres ()
 Returns all crash spheres. More...
 
void DeleteAllCrashSpheres ()
 Removes all crash spheres.
 
bool CanCollideWith (CObject *other)
 Returns true if this object can collide with the other one.
 
Math::Sphere GetCameraCollisionSphere ()
 Returns sphere used to test for camera collisions.
 
void SetCameraCollisionSphere (const Math::Sphere &sphere)
 Sets sphere used to test for camera collisions.
 
virtual void SetTransparency (float value)=0
 Sets the transparency of object.
 
void SetAnimateOnReset (bool animateOnReset)
 Sets flag controlling animation effect on level reset.
 
bool GetAnimateOnReset ()
 Returns flag controlling animation effect on level reset.
 
void SetCollisions (bool collisions)
 Turns object collisions on/off.
 
bool GetCollisions ()
 Returns true if collisions are enabled.
 
void SetTeam (int team)
 Sets object team (shouldn't be called after creation because the model won't update!)
 
int GetTeam ()
 Returns object team.
 
void SetProxyActivate (bool activate)
 Enable object activation only after you come close.
 
bool GetProxyActivate ()
 Returns close activation mode.
 
void SetProxyDistance (float distance)
 Sets distance for close activation.
 
float GetProxyDistance ()
 Returns distance for close activation.
 
CBotVarGetBotVar ()
 Returns CBot "object" variable associated with this object.
 
std::string GetTooltipText ()
 Returns tooltip text for an object.
 
void SetLock (bool lock)
 Set "lock" mode of an object (for example, a robot while it's being factored, or a building while it's built)
 
bool GetLock ()
 Return "lock" mode of an object.
 
virtual bool GetActive ()
 Is this object active (not dead)?
 
virtual bool GetDetectable ()
 Is this object detectable (not dead and not underground)?
 
void SetRotationX (float angle)
 
void SetRotationY (float angle)
 
void SetRotationZ (float angle)
 
float GetRotationX ()
 
float GetRotationY ()
 
float GetRotationZ ()
 
void SetScaleX (float angle)
 
void SetScaleY (float angle)
 
void SetScaleZ (float angle)
 
float GetScaleX ()
 
float GetScaleY ()
 
float GetScaleZ ()
 
- Public Member Functions inherited from COldObjectInterface
virtual void Simplify ()
 
virtual void DeletePart (int part)
 
virtual void SetType (ObjectType type)
 
virtual int GetObjectRank (int part)
 
virtual int GetOption ()
 
virtual void SetDrawFront (bool bDraw)
 
virtual void FloorAdjust ()
 
virtual void SetLinVibration (Math::Vector dir)
 
virtual void SetCirVibration (Math::Vector dir)
 
virtual Math::Vector GetTilt ()
 
virtual void SetMasterParticle (int part, int parti)
 
virtual Math::MatrixGetWorldMatrix (int part)
 
virtual CharacterGetCharacter ()
 
virtual void FlatParent ()
 
virtual void SetVirusMode (bool bEnable)
 
virtual bool GetVirusMode ()
 
virtual CAutoGetAuto ()
 

Static Public Member Functions

static ObjectCreateParams ReadCreateParams (CLevelParserLine *line)
 Reads params required for object creation.
 

Protected Member Functions

 CObject (int id, ObjectType type)
 Constructor only accessible to subclasses.
 
virtual void TransformCrashSphere (Math::Sphere &crashSphere)=0
 Transform crash sphere by object's world matrix.
 
virtual void TransformCameraCollisionSphere (Math::Sphere &collisionSphere)=0
 Transform crash sphere by object's world matrix.
 

Protected Attributes

const int m_id
 unique identifier
 
ObjectType m_type
 object type
 
ObjectInterfaceTypes m_implementedInterfaces
 interfaces that the object implements
 
Math::Vector m_position
 
Math::Vector m_rotation
 
Math::Vector m_scale
 
std::vector< CrashSpherem_crashSpheres
 crash spheres
 
Math::Sphere m_cameraCollisionSphere
 
bool m_animateOnReset
 
bool m_collisions
 
int m_team
 
bool m_proxyActivate
 
float m_proxyDistance
 
CBotVarm_botVar
 
bool m_lock
 

Detailed Description

Base class for all 3D in-game objects.

CObject serves as a base class for all in-game objects, including:

As every object has its specific behavior, there are or will be separate subclasses for each of the specific objects. For the time being, old object interface is still present, but its functions will be moved to appropriate subclasses with time. The new CObject interface implemented here will feature only functions common to all objects.

Member Function Documentation

void CObject::AddCrashSphere ( const CrashSphere crashSphere)

Adds a new crash sphere.

Crash sphere position is given in object coordinates

std::vector< CrashSphere > CObject::GetAllCrashSpheres ( )

Returns all crash spheres.

Crash sphere position is returned in world coordinates

CrashSphere CObject::GetFirstCrashSphere ( )

Returns the first crash sphere (assumes it exists)

Crash sphere position is returned in world coordinates

Math::Vector CObject::GetRotation ( ) const
virtual

Returns object's rotation (Euler angles)

Angles are given in radians

Reimplemented in COldObject.

void CObject::SetRotation ( const Math::Vector rotation)
virtual

Sets object's rotation (Euler angles)

Angles are given in radians

Reimplemented in COldObject.

void CObject::SetRotationX ( float  angle)

Shortcuts for rotation components

void CObject::SetScaleX ( float  angle)

Shortcuts for scale components


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