Develop and Download Open Source Software

Browse Subversion Repository

Contents of /trunk/CRailBuilder.h

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1 - (show annotations) (download) (as text)
Sun Aug 15 01:53:13 2010 UTC (13 years, 9 months ago) by okadu
File MIME type: text/x-chdr
File size: 2145 byte(s)


1 #ifndef CRAILBUILDER_H_INCLUDED
2 #define CRAILBUILDER_H_INCLUDED
3
4 #include "CRailWay.h"
5
6 class CRailCurve;
7 class CRailConnectorLink;
8 class CRailPlugin;
9 class CTiePlugin;
10 class CGirderPlugin;
11
12 /*
13 * レール設置子
14 */
15 class CRailBuilder{
16 private:
17 static int ms_CurrentTrack; // 現在のトラック
18 static int ms_TrackNum; // 線数
19 static float ms_TrackInterval; // 線間隔
20 static float ms_TrackShift; // 中心からのシフト量
21 static bool ms_LiftRailSurface; // レール持ち上げ
22 static VEC3 ms_BeginPosSum; // 開始位置総和
23 static VEC3 ms_BeginDirSum; // 開始方向総和
24 static VEC3 ms_EndPosSum; // 終了位置総和
25 static VEC3 ms_EndDirSum; // 終了方向総和
26 bool m_HitFlag; // 判定フラグ
27 VEC3 m_Pos; // 座標
28 VEC3 m_HitPos; // 判定座標
29 VEC3 m_HitNorm; // 判定法線
30 vector<CRailLinkTemp> m_Link; // 接続情報
31 CRailBuilder *m_Prev; // 前
32 CRailBuilder *m_Next; // 次
33 public:
34 static void ResetDirSum();
35 static void SetTrack(int, int, float, bool);
36 static int GetCurrentTrack(){ return ms_CurrentTrack; }
37 CRailBuilder(VEC3, CRailBuilder *);
38 ~CRailBuilder();
39 CRailBuilder *Pop();
40 CRailBuilder *GetPrev(){ return m_Prev; }
41 VEC3 GetPos(){ return m_Pos; }
42 VEC3 SetPos(VEC3, int);
43 bool CheckLink(){
44 return ms_CurrentTrack<ms_TrackNum
45 && m_Link.size()>ms_CurrentTrack && m_Link[ms_CurrentTrack].m_Link;
46 }
47 bool IsLinkEmpty(){
48 return !m_Link.size() || m_Link.size()==1 && !m_Link.begin()->m_Link;
49 }
50 bool IsLinkFilled(){
51 return m_Link.size()==ms_TrackNum && m_Link.rbegin()->m_Link;
52 }
53 CRailLinkTemp &GetLink(){ return m_Link[ms_CurrentTrack]; }
54 bool SetLink(CRailLinkTemp &);
55 void PushLink(){ if(m_Link.size()<ms_TrackNum) m_Link.push_back(CRailLinkTemp()); }
56 bool IsLast();
57 void CalcRight(VEC3 *, VEC3 *, VEC3 *, VEC3 *);
58 VEC3 CalcSplitPos();
59 VEC3 CalcTrackPos(VEC3 *);
60 bool Curve(CRailCurve *, CRailPlugin *, CTiePlugin *, CGirderPlugin *);
61 void Render(CLineDumpL *, CRailPlugin *, CTiePlugin *, CGirderPlugin *, bool);
62 void BuildRail(CRailConnectorLink &, CRailConnectorLink &,
63 CRailPlugin *, CTiePlugin *, CGirderPlugin *);
64 };
65
66 #endif

Back to OSDN">Back to OSDN
ViewVC Help
Powered by ViewVC 1.1.26