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
|
/* Starshatter: The Open Source Project
Copyright (c) 2021-2022, Starshatter: The Open Source Project Contributors
Copyright (c) 2011-2012, Starshatter OpenSource Distribution Contributors
Copyright (c) 1997-2006, Destroyer Studios LLC.
*/
#include "StdAfx.h"
#include "Magic.h"
#include "MagicDoc.h"
#include "MagicView.h"
#include "Solid.h"
#include "SurfacePropertiesDialog.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// SurfacePropertiesDialog dialog
SurfacePropertiesDialog::SurfacePropertiesDialog(MagicView* pParent /*=NULL*/)
: CDialog(SurfacePropertiesDialog::IDD, pParent), doc(0)
{
//{{AFX_DATA_INIT(SurfacePropertiesDialog)
mSurfaceName = _T("");
mNumPolys = _T("");
mNumVerts = _T("");
mSurfaceHeight = _T("");
mSurfaceLength = _T("");
mSurfaceRadius = _T("");
mSurfaceWidth = _T("");
//}}AFX_DATA_INIT
if (pParent) {
doc = pParent->GetDocument();
if (doc && doc->GetSolid()) {
Model* model = doc->GetSolid()->GetModel();
Surface* surface = model->GetSurfaces().first();
Point plus;
Point minus;
surface->GetVertexSet()->CalcExtents(plus, minus);
char buffer[256];
strcpy_s(buffer, surface->Name());
mSurfaceName = buffer;
sprintf_s(buffer, "%d", surface->NumPolys());
mNumPolys = buffer;
sprintf_s(buffer, "%d", surface->NumVerts());
mNumVerts = buffer;
sprintf_s(buffer, "%.1f", surface->Radius());
mSurfaceRadius = buffer;
sprintf_s(buffer, "%.1f (%.1f - %.1f)", plus.z-minus.z, minus.z, plus.z);
mSurfaceLength = buffer;
sprintf_s(buffer, "%.1f (%.1f - %.1f)", plus.x-minus.x, minus.x, plus.x);
mSurfaceWidth = buffer;
sprintf_s(buffer, "%.1f (%.1f - %.1f)", plus.y-minus.y, minus.y, plus.y);
mSurfaceHeight = buffer;
}
}
}
void SurfacePropertiesDialog::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(SurfacePropertiesDialog)
DDX_CBString(pDX, IDC_SURFACE_NAME, mSurfaceName);
DDX_Text(pDX, IDC_SURFACE_NPOLYS, mNumPolys);
DDX_Text(pDX, IDC_SURFACE_NVERTS, mNumVerts);
DDX_Text(pDX, IDC_SURFACE_HEIGHT, mSurfaceHeight);
DDX_Text(pDX, IDC_SURFACE_LENGTH, mSurfaceLength);
DDX_Text(pDX, IDC_SURFACE_RADIUS, mSurfaceRadius);
DDX_Text(pDX, IDC_SURFACE_WIDTH, mSurfaceWidth);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(SurfacePropertiesDialog, CDialog)
//{{AFX_MSG_MAP(SurfacePropertiesDialog)
// NOTE: the ClassWizard will add message map macros here
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// SurfacePropertiesDialog message handlers
|