CBaseEntity Functions
CBaseEntity derives from IServerEntity.
As its name suggests, all entity types derive from it.
NOTE: This article is under-construction. Please feel free to add to it, or edit 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
).

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);
}
DecalTrace()
Parameters:
trace_t *pTrace
is the traceline along which the decal will be applied.char const *decalName
is the name of the decal that is to be applied.
This function is usually not called directly, but through UTIL_DecalTrace()
.
Example Usage:
trace_t tr;
UTIL_TraceLine( GetAbsOrigin(), GetAbsOrigin() - Vector( 0, 0, 128 ), MASK_SOLID_BRUSHONLY, this, COLLISION_GROUP_NONE, &tr );
if(tr.fraction == 1)
{
CBaseEntity *pEntity = tr.m_pEnt;
pEntity->DecalTrace(&tr,"Scorch");
}