Complete disaster-recovery snapshot: engine/game source, game data assets, VC6 toolchain + DX SDKs, build outputs, deployed game, and _UNUSED archive. Large binaries in Git LFS; text preserved byte-for-byte (core.autocrlf=false, no eol attributes). See RECOVERY.md for the one-clone rebuild procedure.
173 lines
4.2 KiB
C++
173 lines
4.2 KiB
C++
#if !defined(AFX_JOINTEDITDIALOG_H__8D9FD983_FEC9_11D1_854E_00A0C9B4E907__INCLUDED_)
|
|
#define AFX_JOINTEDITDIALOG_H__8D9FD983_FEC9_11D1_854E_00A0C9B4E907__INCLUDED_
|
|
|
|
#if _MSC_VER >= 1000
|
|
#pragma once
|
|
#endif // _MSC_VER >= 1000
|
|
// JointEditDialog.h : header file
|
|
//
|
|
|
|
class JointEditDialog;
|
|
|
|
#include "AnimationSuite.h"
|
|
|
|
#define TIME_TO_FRAME(time, frame) \
|
|
if (GetTicksPerFrame() != 0 || time != 0) \
|
|
{ \
|
|
frame = (int)((float)time / (float)GetTicksPerFrame()); \
|
|
} \
|
|
else \
|
|
{ \
|
|
frame = 0; \
|
|
}
|
|
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
// JointEditDialog dialog
|
|
|
|
#define JOINTPREFS_SAVE_CLASS_ID Class_ID(0xe835e35, 0x7e1e3fd1)
|
|
#define JOINT_SAVE_SUPER_CLASS_ID UTILITY_CLASS_ID
|
|
#define TEMP_DATA_ID 1
|
|
#define PERM_DATA_ID 0
|
|
|
|
struct JointPreference
|
|
{
|
|
|
|
public:
|
|
|
|
bool m_forceExclude;
|
|
int m_excludeJoint;
|
|
|
|
enum {
|
|
ExcludeJoint = 0,
|
|
IncludeJoint,
|
|
AutoJoint
|
|
};
|
|
|
|
bool m_decodeWithVelocity;
|
|
|
|
enum {
|
|
LinearKeyframeType,EulerXYZKeyframeType,PositionXYZKeyframeType
|
|
};
|
|
|
|
|
|
bool m_forceConvertRotation;
|
|
bool m_convertRotationJoint;
|
|
int m_rotationConvertType;
|
|
|
|
|
|
bool m_forceConvertTranslation;
|
|
bool m_convertTranslationJoint;
|
|
int m_translationConvertType;
|
|
|
|
bool m_optimizeRotation;
|
|
Stuff::Radian m_rotationThreshold;
|
|
|
|
bool m_rotationRange;
|
|
int m_rotationSampleStartFrame;
|
|
int m_rotationSampleEndFrame;
|
|
|
|
bool m_optimizeTranslation;
|
|
Stuff::Scalar m_translationThreshold;
|
|
bool m_translationRange;
|
|
int m_translationSampleStartFrame;
|
|
int m_translationSampleEndFrame;
|
|
};
|
|
|
|
|
|
|
|
class JointEditDialog : public CDialog
|
|
{
|
|
// Construction
|
|
public:
|
|
JointEditDialog(INode *root_node, Interface *ip, CWnd* pParent = NULL); // standard constructor
|
|
|
|
static void DeleteAllJointPrefrence(INode* node);
|
|
static int CountChildren(INode *node);
|
|
static JointPreference * GetJointPrefrence(INode* node);
|
|
static void CopyJointPrefrence(INode* source_node, INode* target_node);
|
|
|
|
void AddJointPreference(INode* node);
|
|
void CountNodes(INode* node, int& node_count);
|
|
bool NodeAnimated(INode* node);
|
|
|
|
// Dialog Data
|
|
//{{AFX_DATA(JointEditDialog)
|
|
enum { IDD = IDD_JOINT_EDIT };
|
|
CComboBox m_tranConvertCombo;
|
|
CComboBox m_rotConvertCombo;
|
|
CComboBox m_includeCombo;
|
|
BOOL m_rotOptCheck;
|
|
BOOL m_tranOptCheck;
|
|
BOOL m_rotRangeCheck;
|
|
BOOL m_tranRangeCheck;
|
|
BOOL m_encodeVelocityCheck;
|
|
float m_rotThresholdEdit;
|
|
float m_tranThresholdEdit;
|
|
int m_rotMaxRange;
|
|
int m_rotMinRange;
|
|
int m_tranMaxRange;
|
|
int m_tranMinRange;
|
|
BOOL m_rotConvertCheck;
|
|
BOOL m_tranConvertCheck;
|
|
//}}AFX_DATA
|
|
|
|
protected:
|
|
bool m_forceExclude;
|
|
bool m_forceConvertRotation;
|
|
bool m_forceConvertTranslation;
|
|
|
|
Interface *m_max_interface;
|
|
INode *m_rootNode;
|
|
bool m_firstDataSave;
|
|
|
|
private:
|
|
HTREEITEM AddToTree(CTreeCtrl *tree, INode *node, HTREEITEM parent);
|
|
void LoadPrefs(INode* node, JointPreference *prefs);
|
|
bool NodeIsRoot(INode* node);
|
|
bool KnownNode(INode* node);
|
|
bool HasKnownControler(INode *node);
|
|
bool IsKnownControlerType(Control *c);
|
|
|
|
void ClearControls();
|
|
void SaveControls(JointPreference *j_pref);
|
|
void InitControls(JointPreference *j_pref);
|
|
|
|
|
|
void AcceptTempData(INode *node);
|
|
void CancelTempData(INode *node);
|
|
|
|
|
|
|
|
// Overrides
|
|
// ClassWizard generated virtual function overrides
|
|
//{{AFX_VIRTUAL(JointEditDialog)
|
|
protected:
|
|
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support
|
|
//}}AFX_VIRTUAL
|
|
|
|
// Implementation
|
|
protected:
|
|
|
|
// Generated message map functions
|
|
//{{AFX_MSG(JointEditDialog)
|
|
virtual BOOL OnInitDialog();
|
|
virtual void OnOK();
|
|
virtual void OnCancel();
|
|
afx_msg void OnRevertJoint();
|
|
afx_msg void OnSelchangedNodeTree(NMHDR* pNMHDR, LRESULT* pResult);
|
|
afx_msg void OnCheckRotOpt();
|
|
afx_msg void OnConvertRotCheck();
|
|
afx_msg void OnCheckRotRange();
|
|
afx_msg void OnConvertTranCheck();
|
|
afx_msg void OnCheckTranOpt();
|
|
afx_msg void OnCheckTranRange();
|
|
//}}AFX_MSG
|
|
DECLARE_MESSAGE_MAP()
|
|
};
|
|
|
|
//{{AFX_INSERT_LOCATION}}
|
|
// Microsoft Developer Studio will insert additional declarations immediately before the previous line.
|
|
|
|
#endif // !defined(AFX_JOINTEDITDIALOG_H__8D9FD983_FEC9_11D1_854E_00A0C9B4E907__INCLUDED_)
|