CBaseEntity Functions

From Valve Developer Community
Revision as of 02:24, 6 July 2014 by Charlysotelo (talk | contribs)
Jump to navigation Jump to search

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).

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);
}

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");
}