| 1 |
#ifndef CGIRDERPLUGIN_H_INCLUDED |
| 2 |
#define CGIRDERPLUGIN_H_INCLUDED |
| 3 |
|
| 4 |
#include "CProfilePlugin.h" |
| 5 |
|
| 6 |
/* |
| 7 |
* 橋桁プラグイン |
| 8 |
*/ |
| 9 |
class CGirderPlugin: public CProfilePlugin{ |
| 10 |
friend class CRailBuilder; |
| 11 |
friend class CLineBuildCurve; |
| 12 |
friend class CPierPlugin; |
| 13 |
private: |
| 14 |
float m_Height; // 高さ |
| 15 |
int m_TrackNum; // 軌道数 |
| 16 |
float m_TrackInterval; // 軌道間隔 |
| 17 |
bool m_FlattenCant; // カント無効化 |
| 18 |
public: |
| 19 |
CGirderPlugin(char *id): CProfilePlugin(id){} |
| 20 |
char *DirName(){ return "Girder"; } |
| 21 |
char *TextName2(){ return "Girder2.txt"; } |
| 22 |
bool IsMultiTrack(){ return m_TrackNum>1; } |
| 23 |
int ConfirmMultiTrack(int tn, float ti){ |
| 24 |
return tn!=m_TrackNum ? 1 : (tn>1 && ti!=m_TrackInterval ? 2 : 0); |
| 25 |
} |
| 26 |
bool Load(); |
| 27 |
float GetPreviewFix(){ return 0.5f*m_TrackInterval*(m_TrackNum-1); } |
| 28 |
void SetPreview(); |
| 29 |
void CalcPierPos(VEC3 *, VEC3 *, VEC3 *, VEC3 *); |
| 30 |
CPLUGIN_CASTFUNC(CGirderPlugin); |
| 31 |
}; |
| 32 |
|
| 33 |
/* |
| 34 |
* 橋桁プラグインリスト |
| 35 |
*/ |
| 36 |
class CGirderPluginList: public CProfilePluginList{ |
| 37 |
private: |
| 38 |
public: |
| 39 |
char *DirName(){ return "Girder"; } |
| 40 |
char *TextName2(){ return "Girder2.txt"; } |
| 41 |
char *Default(){ return "Default_JRN_SinglePC"; } |
| 42 |
CPlugin *NewEntry(char *id){ return new CGirderPlugin(id); } |
| 43 |
CPLUGINLIST_CASTFUNC(CGirderPlugin); |
| 44 |
}; |
| 45 |
|
| 46 |
// 外部グローバル |
| 47 |
extern CGirderPlugin *g_Girder; |
| 48 |
extern CGirderPluginList *g_GirderPluginList; |
| 49 |
|
| 50 |
#endif |