GetAbsOrigin(): Difference between revisions
Jump to navigation
Jump to search
TomEdwards (talk | contribs) mNo edit summary |
TomEdwards (talk | contribs) No edit summary |
||
Line 1: | Line 1: | ||
'''<code>GetAbsOrigin()</code>''' returns the absolute (i.e. [[world]]-relative) [[origin]] of an entity as a [[vector]]. Its sister function '''<code>SetAbsOrigin()</code>''' changes it. | '''<code>GetAbsOrigin()</code>''' returns the absolute (i.e. [[world]]-relative) [[origin]] of an entity as a [[vector]]. Its sister function '''<code>SetAbsOrigin()</code>''' changes it. | ||
The origin is actually stored in local space (i.e [[parent]]-relative), meaning that the Abs functions perform | 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 '''<code>GetLocalOrigin()</code>''' and '''<code>SetLocalOrigin()</code>''' if possible; they work directly with the stored value (<code>m_vecOrigin</code>). | ||
== Alternatives == | == Alternatives == | ||
A different approach for finding an origin can be useful, particularly when dealing with a [[brush entity]] which might not have one stored. Bear in mind that these alternatives are all significantly | A different approach for finding an origin can be useful, particularly when dealing with a [[brush entity]] which might not have one stored. Bear in mind that these alternatives are all significantly more [[expensive]] than the 'vanilla' functions listed above. | ||
; [[Vector]] <code>WorldSpaceCenter()</code> | ; [[Vector]] <code>WorldSpaceCenter()</code> |
Revision as of 15:32, 6 June 2009
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
).
Alternatives
A different approach for finding an origin can be useful, particularly when dealing with a brush entity which might not have one stored. Bear in mind that these alternatives are all significantly more expensive than the 'vanilla' functions listed above.
- Vector
WorldSpaceCenter()
- Returns the centre of an entity's object-aligned bounding box.
- void
CollisionProp()->CalcNearestPoint(&vecWorldPt,*pVecNearestWorldPt)
- Finds the nearest point on the entity's OBB to
vecWorldPt
. ModifiespVecNearestWorldPt
with the result.
Todo: Do these OBB functions work with vphysics?