You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
80 lines
1.6 KiB
80 lines
1.6 KiB
//========= Copyright Valve Corporation, All rights reserved. ============// |
|
// |
|
// Purpose: |
|
// |
|
// $NoKeywords: $ |
|
//=============================================================================// |
|
|
|
#ifndef GROUND_LINE_H |
|
#define GROUND_LINE_H |
|
#ifdef _WIN32 |
|
#pragma once |
|
#endif |
|
|
|
|
|
#include "mathlib/vector.h" |
|
#include "hud_minimap.h" |
|
|
|
|
|
class IMaterial; |
|
|
|
|
|
#define MAX_GROUNDLINE_SEGMENTS 100 |
|
|
|
|
|
// This class will lay out a line of a specified width along the ground. It follows |
|
// the contour of the ground as well as it can. |
|
class CGroundLine : public vgui::Panel |
|
{ |
|
typedef vgui::Panel BaseClass; |
|
|
|
public: |
|
CGroundLine(); |
|
~CGroundLine(); |
|
|
|
// One-time initialization. |
|
bool Init(const char *pMaterialName); |
|
|
|
// Setup the line's rendering parameters. |
|
void SetParameters( |
|
const Vector &vStart, |
|
const Vector &vEnd, |
|
const Vector &vStartColor, // Color values 0-1 |
|
const Vector &vEndColor, // Color values 0-1 |
|
float alpha, |
|
float lineWidth |
|
); |
|
|
|
// Called by the renderer when it's time to render the ground lines. |
|
static void DrawAllGroundLines(); |
|
|
|
// Set the visibility |
|
void SetVisible( bool bVisible ); |
|
bool IsVisible( void ); |
|
|
|
private: |
|
|
|
// Draw a line along the ground. |
|
void Draw(); |
|
void Paint(); |
|
|
|
private: |
|
// Rendering parameters. |
|
IMaterial *m_pMaterial; |
|
Vector m_vStartColor; |
|
Vector m_vEndColor; |
|
float m_Alpha; |
|
Vector m_vStart; |
|
Vector m_vEnd; |
|
float m_LineWidth; |
|
bool m_bVisible; |
|
|
|
// Points along the line. |
|
Vector m_Points[MAX_GROUNDLINE_SEGMENTS]; |
|
unsigned int m_nPoints; |
|
|
|
unsigned short m_ListHandle; |
|
}; |
|
|
|
|
|
#endif // GROUND_LINE_H
|
|
|