diff options
| author | Jørgen P. Tjernø <[email protected]> | 2013-12-02 19:31:46 -0800 |
|---|---|---|
| committer | Jørgen P. Tjernø <[email protected]> | 2013-12-02 19:46:31 -0800 |
| commit | f56bb35301836e56582a575a75864392a0177875 (patch) | |
| tree | de61ddd39de3e7df52759711950b4c288592f0dc /mp/src/game/client/c_testtraceline.cpp | |
| parent | Mark some more files as text. (diff) | |
| download | source-sdk-2013-f56bb35301836e56582a575a75864392a0177875.tar.xz source-sdk-2013-f56bb35301836e56582a575a75864392a0177875.zip | |
Fix line endings. WHAMMY.
Diffstat (limited to 'mp/src/game/client/c_testtraceline.cpp')
| -rw-r--r-- | mp/src/game/client/c_testtraceline.cpp | 362 |
1 files changed, 181 insertions, 181 deletions
diff --git a/mp/src/game/client/c_testtraceline.cpp b/mp/src/game/client/c_testtraceline.cpp index 635d101a..6475fff9 100644 --- a/mp/src/game/client/c_testtraceline.cpp +++ b/mp/src/game/client/c_testtraceline.cpp @@ -1,181 +1,181 @@ -//========= Copyright Valve Corporation, All rights reserved. ============//
-//
-// Purpose:
-//
-// $NoKeywords: $
-//=============================================================================//
-
-#include "cbase.h"
-#include "materialsystem/imesh.h"
-
-// memdbgon must be the last include file in a .cpp file!!!
-#include "tier0/memdbgon.h"
-
-// -------------------------------------------------------------------------------- //
-// An entity used to test traceline
-// -------------------------------------------------------------------------------- //
-class C_TestTraceline : public C_BaseEntity
-{
-public:
- DECLARE_CLASS( C_TestTraceline, C_BaseEntity );
- DECLARE_CLIENTCLASS();
-
- C_TestTraceline();
- virtual ~C_TestTraceline();
-
-// IClientEntity overrides.
-public:
- virtual int DrawModel( int flags );
- virtual bool ShouldDraw() { return true; }
-
-private:
- void DrawCube( Vector& center, unsigned char* pColor );
- IMaterial* m_pWireframe;
-};
-
-// Expose it to the engine.
-IMPLEMENT_CLIENTCLASS(C_TestTraceline, DT_TestTraceline, CTestTraceline);
-
-BEGIN_RECV_TABLE_NOBASE(C_TestTraceline, DT_TestTraceline)
- RecvPropInt(RECVINFO(m_clrRender)),
- RecvPropVector( RECVINFO_NAME( m_vecNetworkOrigin, m_vecOrigin ) ),
- RecvPropFloat( RECVINFO_NAME( m_angNetworkAngles[0], m_angRotation[0] ) ),
- RecvPropFloat( RECVINFO_NAME( m_angNetworkAngles[1], m_angRotation[1] ) ),
- RecvPropFloat( RECVINFO_NAME( m_angNetworkAngles[2], m_angRotation[2] ) ),
- RecvPropInt( RECVINFO_NAME(m_hNetworkMoveParent, moveparent), 0, RecvProxy_IntToMoveParent ),
-END_RECV_TABLE()
-
-
-// -------------------------------------------------------------------------------- //
-// Functions.
-// -------------------------------------------------------------------------------- //
-
-C_TestTraceline::C_TestTraceline()
-{
- m_pWireframe = materials->FindMaterial("shadertest/wireframevertexcolor", TEXTURE_GROUP_OTHER);
-}
-
-C_TestTraceline::~C_TestTraceline()
-{
-}
-
-
-enum
-{
- CUBE_SIZE = 5
-};
-
-void C_TestTraceline::DrawCube( Vector& center, unsigned char* pColor )
-{
- Vector facePoints[8];
- Vector bmins, bmaxs;
-
- bmins[0] = center[0] - CUBE_SIZE;
- bmins[1] = center[1] - CUBE_SIZE;
- bmins[2] = center[2] - CUBE_SIZE;
-
- bmaxs[0] = center[0] + CUBE_SIZE;
- bmaxs[1] = center[1] + CUBE_SIZE;
- bmaxs[2] = center[2] + CUBE_SIZE;
-
- facePoints[0][0] = bmins[0];
- facePoints[0][1] = bmins[1];
- facePoints[0][2] = bmins[2];
-
- facePoints[1][0] = bmins[0];
- facePoints[1][1] = bmins[1];
- facePoints[1][2] = bmaxs[2];
-
- facePoints[2][0] = bmins[0];
- facePoints[2][1] = bmaxs[1];
- facePoints[2][2] = bmins[2];
-
- facePoints[3][0] = bmins[0];
- facePoints[3][1] = bmaxs[1];
- facePoints[3][2] = bmaxs[2];
-
- facePoints[4][0] = bmaxs[0];
- facePoints[4][1] = bmins[1];
- facePoints[4][2] = bmins[2];
-
- facePoints[5][0] = bmaxs[0];
- facePoints[5][1] = bmins[1];
- facePoints[5][2] = bmaxs[2];
-
- facePoints[6][0] = bmaxs[0];
- facePoints[6][1] = bmaxs[1];
- facePoints[6][2] = bmins[2];
-
- facePoints[7][0] = bmaxs[0];
- facePoints[7][1] = bmaxs[1];
- facePoints[7][2] = bmaxs[2];
-
- int nFaces[6][4] =
- {
- { 0, 2, 3, 1 },
- { 0, 1, 5, 4 },
- { 4, 5, 7, 6 },
- { 2, 6, 7, 3 },
- { 1, 3, 7, 5 },
- { 0, 4, 6, 2 }
- };
-
- for (int nFace = 0; nFace < 6; nFace++)
- {
- int nP1, nP2, nP3, nP4;
-
- nP1 = nFaces[nFace][0];
- nP2 = nFaces[nFace][1];
- nP3 = nFaces[nFace][2];
- nP4 = nFaces[nFace][3];
-
- // Draw the face.
- CMeshBuilder meshBuilder;
- CMatRenderContextPtr pRenderContext( materials );
- IMesh* pMesh = pRenderContext->GetDynamicMesh();
- meshBuilder.DrawQuad( pMesh, facePoints[nP1].Base(), facePoints[nP2].Base(),
- facePoints[nP3].Base(), facePoints[nP4].Base(), pColor, true );
- }
-}
-
-int C_TestTraceline::DrawModel( int flags )
-{
- trace_t tr;
- Vector forward, right, up, endpos, hitpos;
- AngleVectors (GetAbsAngles(), &forward, &right, &up);
- endpos = GetAbsOrigin() + forward * MAX_TRACE_LENGTH;
-
- UTIL_TraceLine( GetAbsOrigin(), endpos, MASK_SOLID_BRUSHONLY, NULL, COLLISION_GROUP_NONE, &tr );
-
- CMatRenderContextPtr pRenderContext( materials );
- IMesh* pMesh = pRenderContext->GetDynamicMesh( true, NULL, NULL, m_pWireframe );
-
- CMeshBuilder meshBuilder;
- meshBuilder.Begin( pMesh, MATERIAL_LINES, 1 );
-
- meshBuilder.Position3fv( GetAbsOrigin().Base() );
- meshBuilder.Color3ub( 255, 255, 255 );
- meshBuilder.AdvanceVertex();
-
- meshBuilder.Position3fv( tr.endpos.Base() );
- meshBuilder.Color3ub( 255, 255, 255 );
- meshBuilder.AdvanceVertex();
-
- meshBuilder.End();
- pMesh->Draw();
-
- // Didn't hit anything
- if ( tr.fraction != 1.0 )
- {
- unsigned char color[] = { 0, 255, 0 };
- DrawCube( tr.endpos, color );
- }
-
- if ( (!tr.allsolid) && (tr.fractionleftsolid != 0.0) )
- {
- unsigned char color[] = { 255, 0, 0 };
- DrawCube( tr.startpos, color );
- }
-
- return 1;
-}
+//========= Copyright Valve Corporation, All rights reserved. ============// +// +// Purpose: +// +// $NoKeywords: $ +//=============================================================================// + +#include "cbase.h" +#include "materialsystem/imesh.h" + +// memdbgon must be the last include file in a .cpp file!!! +#include "tier0/memdbgon.h" + +// -------------------------------------------------------------------------------- // +// An entity used to test traceline +// -------------------------------------------------------------------------------- // +class C_TestTraceline : public C_BaseEntity +{ +public: + DECLARE_CLASS( C_TestTraceline, C_BaseEntity ); + DECLARE_CLIENTCLASS(); + + C_TestTraceline(); + virtual ~C_TestTraceline(); + +// IClientEntity overrides. +public: + virtual int DrawModel( int flags ); + virtual bool ShouldDraw() { return true; } + +private: + void DrawCube( Vector& center, unsigned char* pColor ); + IMaterial* m_pWireframe; +}; + +// Expose it to the engine. +IMPLEMENT_CLIENTCLASS(C_TestTraceline, DT_TestTraceline, CTestTraceline); + +BEGIN_RECV_TABLE_NOBASE(C_TestTraceline, DT_TestTraceline) + RecvPropInt(RECVINFO(m_clrRender)), + RecvPropVector( RECVINFO_NAME( m_vecNetworkOrigin, m_vecOrigin ) ), + RecvPropFloat( RECVINFO_NAME( m_angNetworkAngles[0], m_angRotation[0] ) ), + RecvPropFloat( RECVINFO_NAME( m_angNetworkAngles[1], m_angRotation[1] ) ), + RecvPropFloat( RECVINFO_NAME( m_angNetworkAngles[2], m_angRotation[2] ) ), + RecvPropInt( RECVINFO_NAME(m_hNetworkMoveParent, moveparent), 0, RecvProxy_IntToMoveParent ), +END_RECV_TABLE() + + +// -------------------------------------------------------------------------------- // +// Functions. +// -------------------------------------------------------------------------------- // + +C_TestTraceline::C_TestTraceline() +{ + m_pWireframe = materials->FindMaterial("shadertest/wireframevertexcolor", TEXTURE_GROUP_OTHER); +} + +C_TestTraceline::~C_TestTraceline() +{ +} + + +enum +{ + CUBE_SIZE = 5 +}; + +void C_TestTraceline::DrawCube( Vector& center, unsigned char* pColor ) +{ + Vector facePoints[8]; + Vector bmins, bmaxs; + + bmins[0] = center[0] - CUBE_SIZE; + bmins[1] = center[1] - CUBE_SIZE; + bmins[2] = center[2] - CUBE_SIZE; + + bmaxs[0] = center[0] + CUBE_SIZE; + bmaxs[1] = center[1] + CUBE_SIZE; + bmaxs[2] = center[2] + CUBE_SIZE; + + facePoints[0][0] = bmins[0]; + facePoints[0][1] = bmins[1]; + facePoints[0][2] = bmins[2]; + + facePoints[1][0] = bmins[0]; + facePoints[1][1] = bmins[1]; + facePoints[1][2] = bmaxs[2]; + + facePoints[2][0] = bmins[0]; + facePoints[2][1] = bmaxs[1]; + facePoints[2][2] = bmins[2]; + + facePoints[3][0] = bmins[0]; + facePoints[3][1] = bmaxs[1]; + facePoints[3][2] = bmaxs[2]; + + facePoints[4][0] = bmaxs[0]; + facePoints[4][1] = bmins[1]; + facePoints[4][2] = bmins[2]; + + facePoints[5][0] = bmaxs[0]; + facePoints[5][1] = bmins[1]; + facePoints[5][2] = bmaxs[2]; + + facePoints[6][0] = bmaxs[0]; + facePoints[6][1] = bmaxs[1]; + facePoints[6][2] = bmins[2]; + + facePoints[7][0] = bmaxs[0]; + facePoints[7][1] = bmaxs[1]; + facePoints[7][2] = bmaxs[2]; + + int nFaces[6][4] = + { + { 0, 2, 3, 1 }, + { 0, 1, 5, 4 }, + { 4, 5, 7, 6 }, + { 2, 6, 7, 3 }, + { 1, 3, 7, 5 }, + { 0, 4, 6, 2 } + }; + + for (int nFace = 0; nFace < 6; nFace++) + { + int nP1, nP2, nP3, nP4; + + nP1 = nFaces[nFace][0]; + nP2 = nFaces[nFace][1]; + nP3 = nFaces[nFace][2]; + nP4 = nFaces[nFace][3]; + + // Draw the face. + CMeshBuilder meshBuilder; + CMatRenderContextPtr pRenderContext( materials ); + IMesh* pMesh = pRenderContext->GetDynamicMesh(); + meshBuilder.DrawQuad( pMesh, facePoints[nP1].Base(), facePoints[nP2].Base(), + facePoints[nP3].Base(), facePoints[nP4].Base(), pColor, true ); + } +} + +int C_TestTraceline::DrawModel( int flags ) +{ + trace_t tr; + Vector forward, right, up, endpos, hitpos; + AngleVectors (GetAbsAngles(), &forward, &right, &up); + endpos = GetAbsOrigin() + forward * MAX_TRACE_LENGTH; + + UTIL_TraceLine( GetAbsOrigin(), endpos, MASK_SOLID_BRUSHONLY, NULL, COLLISION_GROUP_NONE, &tr ); + + CMatRenderContextPtr pRenderContext( materials ); + IMesh* pMesh = pRenderContext->GetDynamicMesh( true, NULL, NULL, m_pWireframe ); + + CMeshBuilder meshBuilder; + meshBuilder.Begin( pMesh, MATERIAL_LINES, 1 ); + + meshBuilder.Position3fv( GetAbsOrigin().Base() ); + meshBuilder.Color3ub( 255, 255, 255 ); + meshBuilder.AdvanceVertex(); + + meshBuilder.Position3fv( tr.endpos.Base() ); + meshBuilder.Color3ub( 255, 255, 255 ); + meshBuilder.AdvanceVertex(); + + meshBuilder.End(); + pMesh->Draw(); + + // Didn't hit anything + if ( tr.fraction != 1.0 ) + { + unsigned char color[] = { 0, 255, 0 }; + DrawCube( tr.endpos, color ); + } + + if ( (!tr.allsolid) && (tr.fractionleftsolid != 0.0) ) + { + unsigned char color[] = { 255, 0, 0 }; + DrawCube( tr.startpos, color ); + } + + return 1; +} |