[an error occurred while processing this directive]
// =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-==-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= //
//
//  Project:   Talina Gaming System (TgS) (∂)
//  File:      TgS Collision - Linear.cpp
//  Author:    Andrew Aye (EMail: andrew.aye@gmail.com, Web: http://www.andrewaye.com) 
//  Version:   3.11
//
// ------------------------------------------------------------------------------------------------------------------------------ //
//
//  Copyright: © 2002-2008, Andrew Aye.  All Rights Reserved.
//
//  This software is free for non-commercial use. Redistribution and use in source and binary forms, with or without modification,
//  are permitted provided that the following conditions are met: 
//    Redistributions of source code must retain this copyright notice, this list of conditions and the following disclaimers. 
//    Redistributions in binary form must reproduce this copyright notice, this list of conditions and the following
//      disclaimers in the documentation and other materials provided with the distribution. 
//
//  Neither the names of the copyright owner nor the names of its contributors may be used to endorse or promote products derived
//  from this software without specific prior written permission. 
//
//  The intellectual property rights of the algorithms used reside with Andrew Aye.  You may not use this software, in whole or
//  in part, in support of any commercial product without the express written consent of the author.
//
//  There is no warranty or other guarantee of fitness of this software for any purpose. It is provided solely "as is".
//
// =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-==-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= //





namespace TGS { // START TGS ///////////////////////////////////////////////////////////////////////////////////////////////////////
namespace COL { // START COL ///////////////////////////////////////////////////////////////////////////////////////////////////////

// ============================================================================================================================== //
//  Functions used internally by the system
// ============================================================================================================================== //

TgVOID Unit_Test_Collision_Linear() //« Used to confirm the instantiation of standard functions and compile time valid.
{
    TgF4VECTOR                          tvS0 = TgF4VECTOR::ZERO;
    TgF4LINE                            tgLN0;
    TgF4RAY                             tgRY0;
    TgF4SEGMENT                         tgSG0;
    TgF4VECTOR                          tvRT0;
    TgFLOAT32                           tyT0;




//    F_DistSq( TgTRUE,TgTRUE,tvS0,tvD0, TgTRUE,TgTRUE,tvS1,tvD1 );

    F_DistSq( tgLN0, tvS0 );
    F_DistSq( tgLN0, tgLN0 );
    F_DistSq( tgLN0, tgRY0 );
    F_DistSq( tgLN0, tgSG0 );
    F_DistSq( tgRY0, tvS0 );
    F_DistSq( tgRY0, tgLN0 );
    F_DistSq( tgRY0, tgRY0 );
    F_DistSq( tgRY0, tgSG0 );
    F_DistSq( tgSG0, tvS0 );
    F_DistSq( tgSG0, tgLN0 );
    F_DistSq( tgSG0, tgRY0 );
    F_DistSq( tgSG0, tgSG0 );

    F_Dist( tgLN0, tvS0 );
    F_Dist( tgLN0, tgLN0 );
    F_Dist( tgLN0, tgRY0 );
    F_Dist( tgLN0, tgSG0 );
    F_Dist( tgRY0, tvS0 );
    F_Dist( tgRY0, tgLN0 );
    F_Dist( tgRY0, tgRY0 );
    F_Dist( tgRY0, tgSG0 );
    F_Dist( tgSG0, tvS0 );
    F_Dist( tgSG0, tgLN0 );
    F_Dist( tgSG0, tgRY0 );
    F_Dist( tgSG0, tgSG0 );



    //F_ClosestSq( tvRT0,tvRT0, TgTRUE,TgTRUE,tvS0,tvD0, TgTRUE,TgTRUE,tvS1,tvD1 );

    F_ClosestSq( &tvRT0, tgLN0, tvS0 );
    F_ClosestSq( &tvRT0, &tvRT0, tgLN0, tgLN0 );
    F_ClosestSq( &tvRT0, &tvRT0, tgLN0, tgRY0 );
    F_ClosestSq( &tvRT0, &tvRT0, tgLN0, tgSG0 );
    F_ClosestSq( &tvRT0, tgRY0, tvS0 );
    F_ClosestSq( &tvRT0, &tvRT0, tgRY0, tgLN0 );
    F_ClosestSq( &tvRT0, &tvRT0, tgRY0, tgRY0 );
    F_ClosestSq( &tvRT0, &tvRT0, tgRY0, tgSG0 );
    F_ClosestSq( &tvRT0, tgSG0, tvS0 );
    F_ClosestSq( &tvRT0, &tvRT0, tgSG0, tgLN0 );
    F_ClosestSq( &tvRT0, &tvRT0, tgSG0, tgRY0 );
    F_ClosestSq( &tvRT0, &tvRT0, tgSG0, tgSG0 );

    F_Closest( &tvRT0, tgLN0, tvS0 );
    F_Closest( &tvRT0, &tvRT0, tgLN0, tgLN0 );
    F_Closest( &tvRT0, &tvRT0, tgLN0, tgRY0 );
    F_Closest( &tvRT0, &tvRT0, tgLN0, tgSG0 );
    F_Closest( &tvRT0, tgRY0, tvS0 );
    F_Closest( &tvRT0, &tvRT0, tgRY0, tgLN0 );
    F_Closest( &tvRT0, &tvRT0, tgRY0, tgRY0 );
    F_Closest( &tvRT0, &tvRT0, tgRY0, tgSG0 );
    F_Closest( &tvRT0, tgSG0, tvS0 );
    F_Closest( &tvRT0, &tvRT0, tgSG0, tgLN0 );
    F_Closest( &tvRT0, &tvRT0, tgSG0, tgRY0 );
    F_Closest( &tvRT0, &tvRT0, tgSG0, tgSG0 );



    //F_ClosestSq( tyT0,tyT0, TgTRUE,TgTRUE,tvS0,tvD0, TgTRUE,TgTRUE,tvS1,tvD1 );

    F_ClosestSq( &tyT0, tgLN0, tvS0 );
    F_ClosestSq( &tyT0, &tyT0, tgLN0, tgLN0 );
    F_ClosestSq( &tyT0, &tyT0, tgLN0, tgRY0 );
    F_ClosestSq( &tyT0, &tyT0, tgLN0, tgSG0 );
    F_ClosestSq( &tyT0, tgRY0, tvS0 );
    F_ClosestSq( &tyT0, &tyT0, tgRY0, tgLN0 );
    F_ClosestSq( &tyT0, &tyT0, tgRY0, tgRY0 );
    F_ClosestSq( &tyT0, &tyT0, tgRY0, tgSG0 );
    F_ClosestSq( &tyT0, tgSG0, tvS0 );
    F_ClosestSq( &tyT0, &tyT0, tgSG0, tgLN0 );
    F_ClosestSq( &tyT0, &tyT0, tgSG0, tgRY0 );
    F_ClosestSq( &tyT0, &tyT0, tgSG0, tgSG0 );

    F_Closest( &tyT0, tgLN0, tvS0 );
    F_Closest( &tyT0, &tyT0, tgLN0, tgLN0 );
    F_Closest( &tyT0, &tyT0, tgLN0, tgRY0 );
    F_Closest( &tyT0, &tyT0, tgLN0, tgSG0 );
    F_Closest( &tyT0, tgRY0, tvS0 );
    F_Closest( &tyT0, &tyT0, tgRY0, tgLN0 );
    F_Closest( &tyT0, &tyT0, tgRY0, tgRY0 );
    F_Closest( &tyT0, &tyT0, tgRY0, tgSG0 );
    F_Closest( &tyT0, tgSG0, tvS0 );
    F_Closest( &tyT0, &tyT0, tgSG0, tgLN0 );
    F_Closest( &tyT0, &tyT0, tgSG0, tgRY0 );
    F_Closest( &tyT0, &tyT0, tgSG0, tgSG0 );



    F_Contact_Test( tgLN0, tgLN0 );
    F_Contact_Test( tgLN0, tgRY0 );
    F_Contact_Test( tgLN0, tgSG0 );
    F_Contact_Test( tgRY0, tgLN0 );
    F_Contact_Test( tgRY0, tgRY0 );
    F_Contact_Test( tgRY0, tgSG0 );
    F_Contact_Test( tgSG0, tgLN0 );
    F_Contact_Test( tgSG0, tgRY0 );
    F_Contact_Test( tgSG0, tgSG0 );

    F_Internal_Intersect( &tvRT0,&tvRT0, tvS0,tvS0, tvS0,tvS0 );
};




// ============================================================================================================================== //

}; // END COL //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
}; // END TGS //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
[an error occurred while processing this directive]