| 1 |
#ifndef CRAILPLUGIN_H_INCLUDED |
| 2 |
#define CRAILPLUGIN_H_INCLUDED |
| 3 |
|
| 4 |
#include "CProfilePlugin.h" |
| 5 |
|
| 6 |
/* |
| 7 |
* レールプラグイン |
| 8 |
*/ |
| 9 |
class CRailPlugin: public CProfilePlugin{ |
| 10 |
friend class CRailBuilder; |
| 11 |
friend class CLineBuildCurve; |
| 12 |
friend class CPierPlugin; |
| 13 |
private: |
| 14 |
float m_Gauge; // ゲージ |
| 15 |
float m_Height; // 高さ |
| 16 |
float m_SurfaceAlt; // レール表面高度 |
| 17 |
float m_CantRatio; // カント係数 |
| 18 |
float m_MaxCant; // カント最大値 [deg] |
| 19 |
float m_JointInterval; // 継ぎ目間隔 |
| 20 |
bool m_FlattenCant; // カント無効化 |
| 21 |
CWaveArray *m_WheelSound; // 車輪音 |
| 22 |
public: |
| 23 |
static void RenderPreview(); |
| 24 |
CRailPlugin(char *); |
| 25 |
~CRailPlugin(); |
| 26 |
char *DirName(){ return "Rail"; } |
| 27 |
char *TextName2(){ return "Rail2.txt"; } |
| 28 |
bool Load(); |
| 29 |
void SetPreview(); |
| 30 |
float CantFunc(float); |
| 31 |
void PlayWheelSound(float, float, VEC3 &); |
| 32 |
void BeforeDump(VEC3 &, VEC3 &, VEC3 &, VEC3 &, VEC3 &, VEC3 &); |
| 33 |
void AfterDump(VEC3 &, VEC3 &, VEC3 &, VEC3 &, VEC3 &, VEC3 &, VEC3 &, VEC3 &); |
| 34 |
void CalcPierPos(VEC3 *, VEC3 *, VEC3 *, VEC3 *); |
| 35 |
CPLUGIN_CASTFUNC(CRailPlugin); |
| 36 |
}; |
| 37 |
|
| 38 |
/* |
| 39 |
* レールプラグインリスト |
| 40 |
*/ |
| 41 |
class CRailPluginList: public CProfilePluginList{ |
| 42 |
private: |
| 43 |
public: |
| 44 |
char *DirName(){ return "Rail"; } |
| 45 |
char *TextName2(){ return "Rail2.txt"; } |
| 46 |
char *Default(){ return "Default_JR_Narrow"; } |
| 47 |
CPlugin *NewEntry(char *id){ return new CRailPlugin(id); } |
| 48 |
CPLUGINLIST_CASTFUNC(CRailPlugin); |
| 49 |
}; |
| 50 |
|
| 51 |
// 外部グローバル |
| 52 |
extern CRailPlugin *g_Rail; |
| 53 |
extern CRailPluginList *g_RailPluginList; |
| 54 |
|
| 55 |
#endif |