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.
81 lines
1.6 KiB
81 lines
1.6 KiB
5 years ago
|
//========= 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
|