| 1 |
#ifndef CLINEPLUGIN_H_INCLUDED |
| 2 |
#define CLINEPLUGIN_H_INCLUDED |
| 3 |
|
| 4 |
#include "CProfilePlugin.h" |
| 5 |
|
| 6 |
/* |
| 7 |
* 架線プラグイン |
| 8 |
*/ |
| 9 |
class CLinePlugin: public CProfilePlugin{ |
| 10 |
friend class CLine; |
| 11 |
friend class CRailPlugin; |
| 12 |
friend class CLineBuildCurve; |
| 13 |
private: |
| 14 |
float m_TrolleyAlt; // 軌道面−トロリ線間高さ |
| 15 |
float m_Height; // トロリ線−支持点間高さ |
| 16 |
float m_MaxInterval; // 架線柱間隔 |
| 17 |
float m_Offset; // オフセット |
| 18 |
float m_MaxDeflection; // パンタグラフ中心からの最大偏位 |
| 19 |
float m_PolePos; // 架線柱間積算距離 |
| 20 |
public: |
| 21 |
static void RenderPreview(); |
| 22 |
CLinePlugin(char *id): CProfilePlugin(id){} |
| 23 |
char *DirName(){ return "Line"; } |
| 24 |
char *TextName2(){ return "Line2.txt"; } |
| 25 |
float GetTrolleyAlt(){ return m_TrolleyAlt; } |
| 26 |
float GetHeight(){ return m_Height; } |
| 27 |
bool Load(); |
| 28 |
void SetPreview(); |
| 29 |
float GetPolePos(){ return m_PolePos; } |
| 30 |
void AddPolePos(float); |
| 31 |
void ResetPolePos(){ m_PolePos = m_Offset; } |
| 32 |
void SetPolePos(float pp){ m_PolePos = pp; } |
| 33 |
CPLUGIN_CASTFUNC(CLinePlugin); |
| 34 |
}; |
| 35 |
|
| 36 |
/* |
| 37 |
* 枕木プラグインリスト |
| 38 |
*/ |
| 39 |
class CLinePluginList: public CProfilePluginList{ |
| 40 |
private: |
| 41 |
public: |
| 42 |
char *DirName(){ return "Line"; } |
| 43 |
char *TextName2(){ return "Line2.txt"; } |
| 44 |
char *Default(){ return "Default_SimpleCatenary"; } |
| 45 |
CPlugin *NewEntry(char *id){ return new CLinePlugin(id); } |
| 46 |
CPLUGINLIST_CASTFUNC(CLinePlugin); |
| 47 |
}; |
| 48 |
|
| 49 |
// 外部グローバル |
| 50 |
extern CLinePlugin *g_Line; |
| 51 |
extern CLinePluginList *g_LinePluginList; |
| 52 |
|
| 53 |
#endif |