Pyrogenesis  trunk
Public Member Functions | List of all members
ICmpVisual Class Referenceabstract

The visual representation of an entity (typically an actor). More...

#include <ICmpVisual.h>

Inheritance diagram for ICmpVisual:
Inheritance graph
[legend]
Collaboration diagram for ICmpVisual:
Collaboration graph
[legend]

Public Member Functions

virtual CBoundingBoxAligned GetBounds () const =0
 Get the world-space bounding box of the object's visual representation. More...
 
virtual CBoundingBoxOriented GetSelectionBox () const =0
 Get the oriented world-space bounding box of the object's visual representation, clipped at the Y=0 plane in object space to prevent it from extending into the terrain. More...
 
virtual CVector3D GetPosition () const =0
 Get the world-space position of the base point of the object's visual representation. More...
 
virtual std::wstring GetProjectileActor () const =0
 Return the filename of the actor to be used for projectiles from this unit, or the empty string if none. More...
 
virtual CFixedVector3D GetProjectileLaunchPoint () const =0
 Return the exact position where a projectile should be launched from (based on the actor's ammo prop points). More...
 
virtual CUnitGetUnit ()=0
 Returns the underlying unit of this visual actor. More...
 
virtual void SetVariant (const CStr &key, const CStr &selection)=0
 Set the variant selection of the actor for a certain key. More...
 
virtual std::string GetAnimationName () const =0
 Returns the name of the currently played animation. More...
 
virtual void SelectAnimation (const std::string &name, bool once, fixed speed)=0
 Start playing the given animation. More...
 
virtual void SelectMovementAnimation (const std::string &name, fixed speed)=0
 Start playing the given movement animation unless we are currently playing a non-movement animation. More...
 
virtual void SetAnimationSyncRepeat (fixed repeattime)=0
 Adjust the speed of the current animation, so it can match simulation events. More...
 
virtual void SetAnimationSyncOffset (fixed actiontime)=0
 Adjust the offset of the current animation, so it can match simulation events. More...
 
virtual void SetShadingColor (fixed r, fixed g, fixed b, fixed a)=0
 Set the shading color that will be modulated with the model's textures. More...
 
virtual void SetVariable (const std::string &name, float value)=0
 Set an arbitrarily-named variable that the model may use to alter its appearance (e.g. More...
 
virtual u32 GetActorSeed () const =0
 Get actor seed used for random variations. More...
 
virtual void SetActorSeed (u32 seed)=0
 Set actor seed for random variations and reload model. More...
 
virtual void RecomputeActorName ()=0
 Recalculate the actor name, applying modifiers. More...
 
virtual bool HasConstructionPreview () const =0
 Returns true if this entity should have a construction preview. More...
 
virtual void Hotload (const VfsPath &name=L"")=0
 Called when an actor file has been modified and reloaded dynamically. More...
 
- Public Member Functions inherited from IComponent
virtual ~IComponent ()
 
virtual void Init (const CParamNode &paramNode)=0
 
virtual void Deinit ()=0
 
virtual void HandleMessage (const CMessage &msg, bool global)
 
CEntityHandle GetEntityHandle () const
 
void SetEntityHandle (CEntityHandle ent)
 
entity_id_t GetEntityId () const
 
CEntityHandle GetSystemEntity () const
 
const CSimContextGetSimContext () const
 
void SetSimContext (const CSimContext &context)
 
virtual void Serialize (ISerializer &serialize)=0
 
virtual void Deserialize (const CParamNode &paramNode, IDeserializer &deserialize)=0
 
virtual bool NewJSObject (const ScriptInterface &scriptInterface, JS::MutableHandleObject out) const
 Returns false by default, indicating that a scripted wrapper of this IComponent is not supported. More...
 
virtual JS::Value GetJSInstance () const
 
virtual int GetComponentTypeId () const =0
 

Additional Inherited Members

- Public Types inherited from IComponent
using AllocFunc = IComponent *(*)(const ScriptInterface &scriptInterface, JS::HandleValue ctor)
 
using DeallocFunc = void(*)(IComponent *)
 
- Static Public Member Functions inherited from IComponent
static std::string GetSchema ()
 
static void RegisterComponentType (CComponentManager &mgr, EInterfaceId iid, EComponentTypeId cid, AllocFunc alloc, DeallocFunc dealloc, const char *name, const std::string &schema)
 
static void RegisterComponentTypeScriptWrapper (CComponentManager &mgr, EInterfaceId iid, EComponentTypeId cid, AllocFunc alloc, DeallocFunc dealloc, const char *name, const std::string &schema)
 
static u8 GetSerializationVersion ()
 

Detailed Description

The visual representation of an entity (typically an actor).

Member Function Documentation

◆ GetActorSeed()

virtual u32 ICmpVisual::GetActorSeed ( ) const
pure virtual

Get actor seed used for random variations.

Implemented in CCmpVisualActor.

◆ GetAnimationName()

virtual std::string ICmpVisual::GetAnimationName ( ) const
pure virtual

Returns the name of the currently played animation.

Implemented in CCmpVisualActor.

◆ GetBounds()

virtual CBoundingBoxAligned ICmpVisual::GetBounds ( ) const
pure virtual

Get the world-space bounding box of the object's visual representation.

(Not safe for use in simulation code.)

Implemented in CCmpVisualActor.

◆ GetPosition()

virtual CVector3D ICmpVisual::GetPosition ( ) const
pure virtual

Get the world-space position of the base point of the object's visual representation.

(Not safe for use in simulation code.)

Implemented in CCmpVisualActor.

◆ GetProjectileActor()

virtual std::wstring ICmpVisual::GetProjectileActor ( ) const
pure virtual

Return the filename of the actor to be used for projectiles from this unit, or the empty string if none.

(Not safe for use in simulation code.)

Implemented in CCmpVisualActor.

◆ GetProjectileLaunchPoint()

virtual CFixedVector3D ICmpVisual::GetProjectileLaunchPoint ( ) const
pure virtual

Return the exact position where a projectile should be launched from (based on the actor's ammo prop points).

Return type is CFixedVector3D because it is exposed to the JS interface. Returns (0,0,0) if no point can be found.

Implemented in CCmpVisualActor.

◆ GetSelectionBox()

virtual CBoundingBoxOriented ICmpVisual::GetSelectionBox ( ) const
pure virtual

Get the oriented world-space bounding box of the object's visual representation, clipped at the Y=0 plane in object space to prevent it from extending into the terrain.

The primary difference with GetBounds is that this bounding box is not aligned to the world axes, but arbitrarily rotated according to the model transform.

Implemented in CCmpVisualActor.

◆ GetUnit()

virtual CUnit* ICmpVisual::GetUnit ( )
pure virtual

Returns the underlying unit of this visual actor.

May return NULL to indicate that no unit exists (e.g. may happen if the game is started without graphics rendering). Originally intended for introspection purposes in Atlas; for other purposes, consider using a specialized getter first.

Implemented in CCmpVisualActor.

◆ HasConstructionPreview()

virtual bool ICmpVisual::HasConstructionPreview ( ) const
pure virtual

Returns true if this entity should have a construction preview.

Implemented in CCmpVisualActor.

◆ Hotload()

virtual void ICmpVisual::Hotload ( const VfsPath name = L"")
pure virtual

Called when an actor file has been modified and reloaded dynamically.

If this component uses the named actor file, it should regenerate its actor to pick up the new definitions. If name is empty, this reloads all the time. This is used when global quality settings change.

Implemented in CCmpVisualActor.

◆ RecomputeActorName()

virtual void ICmpVisual::RecomputeActorName ( )
pure virtual

Recalculate the actor name, applying modifiers.

Implemented in CCmpVisualActor.

◆ SelectAnimation()

virtual void ICmpVisual::SelectAnimation ( const std::string &  name,
bool  once,
fixed  speed 
)
pure virtual

Start playing the given animation.

If there are multiple possible animations then it will pick one at random (not network-synchronised).

Parameters
nameanimation name (e.g. "idle", "walk", "melee"; the names are determined by actor XML files)
onceif true then the animation will play once and freeze at the final frame, else it will loop
speedanimation speed multiplier (typically 1.0 for the default speed)

Implemented in CCmpVisualActor.

◆ SelectMovementAnimation()

virtual void ICmpVisual::SelectMovementAnimation ( const std::string &  name,
fixed  speed 
)
pure virtual

Start playing the given movement animation unless we are currently playing a non-movement animation.

This is necessary so UnitMotion can set the movement animations without overwriting specific animations that might have been set by other components. TODO: Non-movement animations should probably be made into variants, defining "idle" (really "default"), "walk" and "run" as appropriate, and this would no longer be necessary.

Parameters
nameanimation name (i.e. one of "idle", "walk", "run").
speedanimation speed multiplier (typically 1.0 for the default speed)

Implemented in CCmpVisualActor.

◆ SetActorSeed()

virtual void ICmpVisual::SetActorSeed ( u32  seed)
pure virtual

Set actor seed for random variations and reload model.

Implemented in CCmpVisualActor.

◆ SetAnimationSyncOffset()

virtual void ICmpVisual::SetAnimationSyncOffset ( fixed  actiontime)
pure virtual

Adjust the offset of the current animation, so it can match simulation events.

Parameters
actiontimetime between now and when the 'action' event should occur, in msec

Implemented in CCmpVisualActor.

◆ SetAnimationSyncRepeat()

virtual void ICmpVisual::SetAnimationSyncRepeat ( fixed  repeattime)
pure virtual

Adjust the speed of the current animation, so it can match simulation events.

Parameters
repeattimetime for complete loop of animation, in msec

Implemented in CCmpVisualActor.

◆ SetShadingColor()

virtual void ICmpVisual::SetShadingColor ( fixed  r,
fixed  g,
fixed  b,
fixed  a 
)
pure virtual

Set the shading color that will be modulated with the model's textures.

Default shading is (1, 1, 1, 1). Alpha should probably be 1 else it's unlikely to work properly.

Parameters
rred component, expected range [0, 1]
ggreen component, expected range [0, 1]
bblue component, expected range [0, 1]
aalpha component, expected range [0, 1]

Implemented in CCmpVisualActor.

◆ SetVariable()

virtual void ICmpVisual::SetVariable ( const std::string &  name,
float  value 
)
pure virtual

Set an arbitrarily-named variable that the model may use to alter its appearance (e.g.

in particle emitter parameter computations).

Implemented in CCmpVisualActor.

◆ SetVariant()

virtual void ICmpVisual::SetVariant ( const CStr &  key,
const CStr &  selection 
)
pure virtual

Set the variant selection of the actor for a certain key.

This overrides a previous selection on that key, so every component should use unique keys.

Implemented in CCmpVisualActor.


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