forked from DT85/Assimilate
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathModel.h
203 lines (166 loc) · 4.49 KB
/
Model.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
// Model.h
#pragma warning( disable : 4786 ) // identifier was truncated
#include <string>
#include <vector>
#include <map>
#include <set>
using namespace std;
class CModel
{
public:
CModel();
virtual ~CModel();
virtual void Delete();
static CModel* Create(CComment* comments = NULL);
void Write(CTxtFile* file);
bool WriteExternal(bool bPromptForNames, bool& bCFGWritten);
bool HasGLA(void);
LPCSTR GLAName(void);
void SetNext(CModel* next);
CModel* GetNext();
bool DoProperties();
void AddComment(CComment* comment);
CComment* GetFirstComment();
CComment* ExtractComments();
bool ContainsFile(LPCSTR psFilename);
int AnimEnumInUse(LPCSTR psAnimEnum);
void AddSequence(CSequence* sequence);
void DeleteSequence(CSequence* deleteSequence);
CSequence* GetFirstSequence();
void Resequence(bool bReScanASEFiles = false);
int GetTotSequences();
int GetTotMasterSequences();
void ReOrderSequences();
void GetMasterEnumBoundaryFrameNumbers(int *piFirstFrameAfterBOTH, int *piFirstFrameAfterTORSO);
LPCTSTR GetName();
void SetName(LPCTSTR name);
void DeriveName(LPCTSTR fromname);
void SetPath(LPCTSTR path);
LPCTSTR GetPath();
void SetOrigin(int x, int y, int z);
void SetOriginX(int x);
void SetOriginY(int y);
void SetOriginZ(int z);
int GetOriginX();
int GetOriginY();
int GetOriginZ();
void SetParms(int skipStart, int skipEnd, int totFrames, int headFrames);
void SetTotFrames(int value);
int GetTotFrames();
void SetUserSelectionBool(bool bSelected = true);
bool GetUserSelectionBool();
void SetConvertType(int iType);
int GetConvertType(void);
bool IsGhoul2(void);
void SetKeepMotion(bool bKeepMotion);
bool GetKeepMotion(void);
void SetSmooth(bool bSmooth);
void SetLoseDupVerts(bool bLoseDupVerts);
void SetMakeSkin(bool bMakeSkin);
void SetIgnoreBaseDeviations(bool bIgnore);
void SetSkew90(bool bSkew90);
void SetNoSkew90(bool bNoSkew90);
// void SetSkelPath(LPCSTR psPath);
void SetMakeSkelPath(LPCSTR psPath);
bool GetSmooth(void);
bool GetLoseDupVerts(void);
bool GetMakeSkin(void);
bool GetIgnoreBaseDeviations(void);
bool GetSkew90(void);
bool GetNoSkew90(void);
// LPCSTR GetSkelPath(void);
LPCSTR GetMakeSkelPath(void);
void SetScale(float fScale);
float GetScale(void);
bool GetPreQuat(void);
void SetPreQuat(bool bPreQuat);
void PCJList_Clear();
void PCJList_AddEntry(LPCSTR psEntry);
int PCJList_GetEntries();
LPCSTR PCJList_GetEntry(int iIndex);
protected:
void Init(CComment* comments);
CModel* m_next;
CComment* m_comments;
char* m_name;
char* m_path;
CSequence* m_sequences;
CSequence* m_curSequence;
int m_totFrames;
int m_headFrames;
int m_originx;
int m_originy;
int m_originz;
bool m_bCurrentUserSelection;
int m_iType; // eg TK_AS_CONVERT, TK_AS_CONVERTMDX, TK_AS_CONVERTMDX_NOASK,
bool m_bSmooth;
bool m_bLoseDupVerts;
bool m_bKeepMotion;
bool m_bMakeSkin;
float m_fScale;
bool m_bIgnoreBaseDeviations;
bool m_bSkew90;
bool m_bNoSkew90;
char* m_psSkelPath;
char* m_psMakeSkelPath;
vector <string> m_vPCJList;
bool m_bPreQuat;
};
/////////////////////////////////////////////////////////////////////////////
// CModelPropPage dialog
class CModelPropPage : public CPropertyPage
{
DECLARE_DYNCREATE(CModelPropPage)
// Construction
public:
CModelPropPage();
~CModelPropPage();
CModel* m_model;
bool* m_soilFlag;
// Dialog Data
//{{AFX_DATA(CModelPropPage)
enum { IDD = IDD_PP_MODEL };
BOOL m_bSkew90;
BOOL m_bSmooth;
CString m_strSkelPath;
int m_iOriginX;
int m_iOriginY;
int m_iOriginZ;
float m_fScale;
BOOL m_bMakeSkin;
BOOL m_bLoseDupVerts;
BOOL m_bMakeSkel;
CString m_strNewPCJ;
BOOL m_bKeepMotion;
BOOL m_bPreQuat;
//}}AFX_DATA
public:
void AddPCJEntry(LPCSTR psPCJName);
void DelPCJEntry(int iIndex);
int GetPCJEntries(void);
LPCSTR GetPCJEntry(int iIndex);
protected:
vector <CString> m_PCJList;
// Overrides
// ClassWizard generate virtual function overrides
//{{AFX_VIRTUAL(CModelPropPage)
public:
virtual void OnOK();
protected:
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support
//}}AFX_VIRTUAL
// Implementation
protected:
// Generated message map functions
//{{AFX_MSG(CModelPropPage)
virtual BOOL OnInitDialog();
afx_msg void OnCheckMakeskel();
afx_msg void OnButtonDelpcj();
afx_msg void OnButtonPcj();
//}}AFX_MSG
DECLARE_MESSAGE_MAP()
void HandleItemGreying(void);
void PopulatePCJList(void);
};
extern bool gbReportMissingASEs;
extern int giFixUpdatedASEFrameCounts;