CBaseEntity Functions: Difference between revisions

From Valve Developer Community
Jump to navigation Jump to search
No edit summary
No edit summary
Line 1: Line 1:
CBaseEntity derives from [[IServerEntity]].
As its name suggests, all entity types derive from it.
== GetAbsOrigin() ==
== GetAbsOrigin() ==



Revision as of 02:08, 6 July 2014

CBaseEntity derives from IServerEntity.

As its name suggests, all entity types derive from it.

GetAbsOrigin()

GetAbsOrigin() returns the absolute (i.e. world-relative) origin of an entity as a vector. Its sister function SetAbsOrigin() changes it.

The origin is actually stored in local space (i.e parent-relative), meaning that the Abs functions perform extra calculations to get their return value. Use the more direct GetLocalOrigin() and SetLocalOrigin() if possible; they work directly with the stored value (m_vecOrigin).

Note.pngNote:In fact, GetAbsOrigin() seems to recalculate its return value only if it was changed since the last time it was used, otherwise it just returns cached value stored in a member variable.

Example Usage:

void CMyEntity::Think()
{
	BaseClass::Think(); // Always do this if you override Think()

	Msg( "My World Position Is %f %f %f.\n",GetAbsOrigin().x,GetAbsOrigin().y,GetAbsOrigin().z);
}

GetAbsAngles()

GetAbsAngles() returns the absolute (i.e. world-relative) angles of an entity as a QAngle. Its sister function SetAbsAngles() changes it.

Example Usage:

void CMyEntity::Think()
{
	BaseClass::Think(); // Always do this if you override Think()

	Msg( "My World Angle Is %f %f %f.\n",GetAbsAngles().x,GetAbsAngles().y,GetAbsAngles().z);
}