<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.thedarkmod.com/index.php?action=history&amp;feed=atom&amp;title=Clip_Functions_to_check_Specific_Models</id>
	<title>Clip Functions to check Specific Models - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.thedarkmod.com/index.php?action=history&amp;feed=atom&amp;title=Clip_Functions_to_check_Specific_Models"/>
	<link rel="alternate" type="text/html" href="https://wiki.thedarkmod.com/index.php?title=Clip_Functions_to_check_Specific_Models&amp;action=history"/>
	<updated>2026-04-18T02:34:50Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.45.3</generator>
	<entry>
		<id>https://wiki.thedarkmod.com/index.php?title=Clip_Functions_to_check_Specific_Models&amp;diff=1815&amp;oldid=prev</id>
		<title>Greebo at 15:02, 11 September 2006</title>
		<link rel="alternate" type="text/html" href="https://wiki.thedarkmod.com/index.php?title=Clip_Functions_to_check_Specific_Models&amp;diff=1815&amp;oldid=prev"/>
		<updated>2006-09-11T15:02:22Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{Original_Reference|Ishtvan|3480}}&lt;br /&gt;
&lt;br /&gt;
Looking at the clip functions for something else, I noticed there are some set up to clip vs. specific models, and to trace against everything but the world. I seem to remember this coming up in the past, but I never knew about these functions until now. For example in the rope arrows, there&amp;#039;s sometimes a problem jumping between two rope arrows on a wall, because the trace hits the wall instead of the rope. This could be useful to ignore the world in the test, although we&amp;#039;d have to put in another test if a rope was found to make sure the player can&amp;#039;t climb ropes through walls.&lt;br /&gt;
&lt;br /&gt;
Anyway, here&amp;#039;s a list of functions in idClip. Posting them will be useful to me anyway, because I always forget and have to look them up in the source:&lt;br /&gt;
&lt;br /&gt;
    // clip versus the rest of the world&lt;br /&gt;
    bool      Translation( trace_t &amp;amp;results, const idVec3 &amp;amp;start, const idVec3 &amp;amp;end,&lt;br /&gt;
              const idClipModel *mdl, const idMat3 &amp;amp;trmAxis, int contentMask, const idEntity *passEntity );&lt;br /&gt;
    bool      Rotation( trace_t &amp;amp;results, const idVec3 &amp;amp;start, const idRotation &amp;amp;rotation,&lt;br /&gt;
              const idClipModel *mdl, const idMat3 &amp;amp;trmAxis, int contentMask, const idEntity *passEntity );&lt;br /&gt;
    bool      Motion( trace_t &amp;amp;results, const idVec3 &amp;amp;start, const idVec3 &amp;amp;end, const idRotation &amp;amp;rotation,&lt;br /&gt;
              const idClipModel *mdl, const idMat3 &amp;amp;trmAxis, int contentMask, const idEntity *passEntity );&lt;br /&gt;
    int       Contacts( contactInfo_t *contacts, const int maxContacts, const idVec3 &amp;amp;start, const idVec6 &amp;amp;dir, const float depth,&lt;br /&gt;
              const idClipModel *mdl, const idMat3 &amp;amp;trmAxis, int contentMask, const idEntity *passEntity );&lt;br /&gt;
    int       Contents( const idVec3 &amp;amp;start,&lt;br /&gt;
              const idClipModel *mdl, const idMat3 &amp;amp;trmAxis, int contentMask, const idEntity *passEntity );&lt;br /&gt;
 &lt;br /&gt;
    // special case translations versus the rest of the world&lt;br /&gt;
    bool      TracePoint( trace_t &amp;amp;results, const idVec3 &amp;amp;start, const idVec3 &amp;amp;end,&lt;br /&gt;
              int contentMask, const idEntity *passEntity );&lt;br /&gt;
    bool      TraceBounds( trace_t &amp;amp;results, const idVec3 &amp;amp;start, const idVec3 &amp;amp;end, const idBounds &amp;amp;bounds,&lt;br /&gt;
              int contentMask, const idEntity *passEntity );&lt;br /&gt;
 &lt;br /&gt;
    // clip versus a specific model&lt;br /&gt;
    void      TranslationModel( trace_t &amp;amp;results, const idVec3 &amp;amp;start, const idVec3 &amp;amp;end,&lt;br /&gt;
              const idClipModel *mdl, const idMat3 &amp;amp;trmAxis, int contentMask,&lt;br /&gt;
              cmHandle_t model, const idVec3 &amp;amp;modelOrigin, const idMat3 &amp;amp;modelAxis );&lt;br /&gt;
    void      RotationModel( trace_t &amp;amp;results, const idVec3 &amp;amp;start, const idRotation &amp;amp;rotation,&lt;br /&gt;
              const idClipModel *mdl, const idMat3 &amp;amp;trmAxis, int contentMask,&lt;br /&gt;
              cmHandle_t model, const idVec3 &amp;amp;modelOrigin, const idMat3 &amp;amp;modelAxis );&lt;br /&gt;
    int       ContactsModel( contactInfo_t *contacts, const int maxContacts, const idVec3 &amp;amp;start, const idVec6 &amp;amp;dir, const float depth,&lt;br /&gt;
              const idClipModel *mdl, const idMat3 &amp;amp;trmAxis, int contentMask,&lt;br /&gt;
              cmHandle_t model, const idVec3 &amp;amp;modelOrigin, const idMat3 &amp;amp;modelAxis );&lt;br /&gt;
    int       ContentsModel( const idVec3 &amp;amp;start,&lt;br /&gt;
              const idClipModel *mdl, const idMat3 &amp;amp;trmAxis, int contentMask,&lt;br /&gt;
              cmHandle_t model, const idVec3 &amp;amp;modelOrigin, const idMat3 &amp;amp;modelAxis );&lt;br /&gt;
 &lt;br /&gt;
    // clip versus all entities but not the world&lt;br /&gt;
    void      TranslationEntities( trace_t &amp;amp;results, const idVec3 &amp;amp;start, const idVec3 &amp;amp;end,&lt;br /&gt;
              const idClipModel *mdl, const idMat3 &amp;amp;trmAxis, int contentMask, const idEntity *passEntity );&lt;br /&gt;
 &lt;br /&gt;
    // get a contact feature&lt;br /&gt;
    bool      GetModelContactFeature( const contactInfo_t &amp;amp;contact, const idClipModel *clipModel, idFixedWinding &amp;amp;winding ) const;&lt;br /&gt;
 &lt;br /&gt;
    // get entities/clip models within or touching the given bounds&lt;br /&gt;
    int       EntitiesTouchingBounds( const idBounds &amp;amp;bounds, int contentMask, idEntity **entityList, int maxCount ) const;&lt;br /&gt;
    int       ClipModelsTouchingBounds( const idBounds &amp;amp;bounds, int contentMask, idClipModel **clipModelList, int maxCount ) const;&lt;br /&gt;
 &lt;br /&gt;
    const idBounds &amp;amp; GetWorldBounds( void ) const;&lt;br /&gt;
    idClipModel *    DefaultClipModel( void );&lt;br /&gt;
 &lt;br /&gt;
    // stats and debug drawing&lt;br /&gt;
    void      PrintStatistics( void );&lt;br /&gt;
    void      DrawClipModels( const idVec3 &amp;amp;eye, const float radius, const idEntity *passEntity );&lt;br /&gt;
    bool      DrawModelContactFeature( const contactInfo_t &amp;amp;contact, const idClipModel *clipModel, int lifetime ) const;&lt;br /&gt;
&lt;br /&gt;
[[Category:SDK]]&lt;/div&gt;</summary>
		<author><name>Greebo</name></author>
	</entry>
</feed>