Colobot
|
Base class for all 3D in-game objects. More...
#include <object.h>
Public Member Functions | |
CObject (const CObject &)=delete | |
CObject & | operator= (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< CrashSphere > | GetAllCrashSpheres () |
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. | |
CBotVar * | GetBotVar () |
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 () |
![]() | |
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::Matrix * | GetWorldMatrix (int part) |
virtual Character * | GetCharacter () |
virtual void | FlatParent () |
virtual void | SetVirusMode (bool bEnable) |
virtual bool | GetVirusMode () |
virtual CAuto * | GetAuto () |
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< CrashSphere > | m_crashSpheres |
crash spheres | |
Math::Sphere | m_cameraCollisionSphere |
bool | m_animateOnReset |
bool | m_collisions |
int | m_team |
bool | m_proxyActivate |
float | m_proxyDistance |
CBotVar * | m_botVar |
bool | m_lock |
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.
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
|
virtual |
|
virtual |
void CObject::SetRotationX | ( | float | angle | ) |
Shortcuts for rotation components
void CObject::SetScaleX | ( | float | angle | ) |
Shortcuts for scale components