AssimpView now displays meshes and mroe detailled statistics in the scene browser.

Improve the user interface. takes more screen space now, but provides more information and less clumsy buttons.

git-svn-id: https://assimp.svn.sourceforge.net/svnroot/assimp/trunk@731 67173fc5-114c-0410-ac8e-9d2fd5bffc1f
pull/1/head
aramis_acg 2010-05-21 20:04:45 +00:00
parent 367a452ed9
commit c29e985f12
6 changed files with 169 additions and 86 deletions

View File

@ -155,7 +155,7 @@ int CDisplay::AddNodeToDisplayList(
ai_assert(NULL != pcNode); ai_assert(NULL != pcNode);
ai_assert(NULL != hRoot); ai_assert(NULL != hRoot);
char chTemp[512]; char chTemp[MAXLEN];
if(0 == pcNode->mName.length) { if(0 == pcNode->mName.length) {
if (iIndex >= 100) { if (iIndex >= 100) {
@ -166,9 +166,11 @@ int CDisplay::AddNodeToDisplayList(
iIndex += iDepth * 100; iIndex += iDepth * 100;
} }
else iIndex += iDepth * 10; else iIndex += iDepth * 10;
sprintf(chTemp,"Node %i",iIndex); sprintf(chTemp,"Node %i (%i meshes)",iIndex,pcNode->mNumMeshes);
}
else {
sprintf(chTemp,"%s (%i meshes)",pcNode->mName.data,pcNode->mNumMeshes);
} }
else strcpy(chTemp,pcNode->mName.data);
TVITEMEXW tvi; TVITEMEXW tvi;
TVINSERTSTRUCTW sNew; TVINSERTSTRUCTW sNew;
@ -207,6 +209,53 @@ int CDisplay::AddNodeToDisplayList(
this->AddNode(info); this->AddNode(info);
return 1; return 1;
} }
//-------------------------------------------------------------------------------
int CDisplay::AddMeshToDisplayList(unsigned int iIndex, HTREEITEM hRoot)
{
aiMesh* pcMesh = g_pcAsset->pcScene->mMeshes[iIndex];
char chTemp[MAXLEN];
if(0 == pcMesh->mName.length) {
sprintf(chTemp,"Mesh %i (%i faces)",iIndex,pcMesh->mNumFaces);
}
else {
sprintf(chTemp,"%s (%i faces)",pcMesh->mName.data,pcMesh->mNumFaces);
}
TVITEMEXW tvi;
TVINSERTSTRUCTW sNew;
wchar_t tmp[512];
int t = MultiByteToWideChar(CP_UTF8,0,chTemp,-1,tmp,512);
tvi.pszText = tmp;
tvi.cchTextMax = (int)t;
tvi.mask = TVIF_TEXT | TVIF_SELECTEDIMAGE | TVIF_IMAGE | TVIF_HANDLE | TVIF_PARAM;
tvi.iImage = this->m_aiImageList[AI_VIEW_IMGLIST_NODE];
tvi.iSelectedImage = this->m_aiImageList[AI_VIEW_IMGLIST_NODE];
tvi.lParam = (LPARAM)5;
sNew.itemex = tvi;
sNew.hInsertAfter = TVI_LAST;
sNew.hParent = hRoot;
// add the item to the list
HTREEITEM hTexture = (HTREEITEM)SendMessage(GetDlgItem(g_hDlg,IDC_TREE1),
TVM_INSERTITEMW,
0,
(LPARAM)(LPTVINSERTSTRUCT)&sNew);
// add the mesh to the list of all mesh entries in the scene browser
MeshInfo info;
info.hTreeItem = hTexture;
info.psMesh = pcMesh;
AddMesh(info);
return 1;
}
//------------------------------------------------------------------------------- //-------------------------------------------------------------------------------
// Replace the currently selected texture by another one // Replace the currently selected texture by another one
int CDisplay::ReplaceCurrentTexture(const char* szPath) int CDisplay::ReplaceCurrentTexture(const char* szPath)
@ -685,6 +734,10 @@ int CDisplay::FillDisplayList(void)
for (unsigned int i = 0; i < g_pcAsset->pcScene->mNumMaterials;++i) for (unsigned int i = 0; i < g_pcAsset->pcScene->mNumMaterials;++i)
AddMaterialToDisplayList(m_hRoot,i); AddMaterialToDisplayList(m_hRoot,i);
// add each mesh to the tree
for (unsigned int i = 0; i < g_pcAsset->pcScene->mNumMeshes;++i)
AddMeshToDisplayList(i,m_hRoot);
// now add all loaded nodes recursively // now add all loaded nodes recursively
AddNodeToDisplayList(0,0,g_pcAsset->pcScene->mRootNode,m_hRoot); AddNodeToDisplayList(0,0,g_pcAsset->pcScene->mRootNode,m_hRoot);
@ -822,6 +875,7 @@ int CDisplay::Reset(void)
m_asMaterials.clear(); m_asMaterials.clear();
m_asTextures.clear(); m_asTextures.clear();
m_asNodes.clear(); m_asNodes.clear();
m_asMeshes.clear();
m_hRoot = NULL; m_hRoot = NULL;
@ -1646,6 +1700,9 @@ int CDisplay::DrawHUD()
as[0].x -= 0.5f;as[1].x -= 0.5f;as[2].x -= 0.5f;as[3].x -= 0.5f; as[0].x -= 0.5f;as[1].x -= 0.5f;as[2].x -= 0.5f;as[3].x -= 0.5f;
as[0].y -= 0.5f;as[1].y -= 0.5f;as[2].y -= 0.5f;as[3].y -= 0.5f; as[0].y -= 0.5f;as[1].y -= 0.5f;as[2].y -= 0.5f;as[3].y -= 0.5f;
g_piDevice->SetSamplerState(0,D3DSAMP_MAGFILTER,D3DTEXF_LINEAR);
g_piDevice->SetSamplerState(0,D3DSAMP_MINFILTER,D3DTEXF_LINEAR);
// draw the screen-filling squad // draw the screen-filling squad
DWORD dw2;g_piDevice->GetFVF(&dw2); DWORD dw2;g_piDevice->GetFVF(&dw2);
g_piDevice->SetFVF(D3DFVF_XYZRHW | D3DFVF_TEX1); g_piDevice->SetFVF(D3DFVF_XYZRHW | D3DFVF_TEX1);

View File

@ -150,6 +150,17 @@ public:
HTREEITEM hTreeItem; HTREEITEM hTreeItem;
}; };
//------------------------------------------------------------------
// represents a mesh in the tree view
struct MeshInfo
{
// the mesh object
aiMesh* psMesh;
// corresponding tree view item
HTREEITEM hTreeItem;
};
//------------------------------------------------------------------ //------------------------------------------------------------------
// represents a material in the tree view // represents a material in the tree view
struct MaterialInfo struct MaterialInfo
@ -240,7 +251,7 @@ public:
//------------------------------------------------------------------ //------------------------------------------------------------------
// Add a node to the display list // Add a node to the display list
// Recusrivly add all subnodes // Recusrivly adds all subnodes as well
// iIndex - Index of the node in the parent's child list // iIndex - Index of the node in the parent's child list
// iDepth - Current depth of the node // iDepth - Current depth of the node
// pcNode - Node object // pcNode - Node object
@ -251,6 +262,14 @@ public:
aiNode* pcNode, aiNode* pcNode,
HTREEITEM hRoot); HTREEITEM hRoot);
//------------------------------------------------------------------
// Add a mesh to the display list
// iIndex - Index of the mesh in the scene's mesh list
// hRoot - Parent tree view node
int AddMeshToDisplayList(
unsigned int iIndex,
HTREEITEM hRoot);
//------------------------------------------------------------------ //------------------------------------------------------------------
// Load the image list for the tree view item // Load the image list for the tree view item
int LoadImageList(void); int LoadImageList(void);
@ -350,6 +369,13 @@ public:
this->m_asNodes.push_back(info); this->m_asNodes.push_back(info);
} }
//------------------------------------------------------------------
// add a new mesh to the list
inline void AddMesh(const MeshInfo& info)
{
this->m_asMeshes.push_back(info);
}
//------------------------------------------------------------------ //------------------------------------------------------------------
// add a new material to the list // add a new material to the list
inline void AddMaterial(const MaterialInfo& info) inline void AddMaterial(const MaterialInfo& info)
@ -469,6 +495,9 @@ private:
// List of all node in the display CB // List of all node in the display CB
std::vector<NodeInfo> m_asNodes; std::vector<NodeInfo> m_asNodes;
// List of all node in the display CB
std::vector<MeshInfo> m_asMeshes;
// current Node or NULL if no Node is active // current Node or NULL if no Node is active
NodeInfo* m_pcCurrentNode; NodeInfo* m_pcCurrentNode;

View File

@ -412,7 +412,7 @@ void ToggleUIState()
DWORD dwValue; DWORD dwValue;
if (BST_UNCHECKED == IsDlgButtonChecked(g_hDlg,IDC_BLUBB)) if (BST_UNCHECKED == IsDlgButtonChecked(g_hDlg,IDC_BLUBB))
{ {
SetWindowPos(g_hDlg,NULL,0,0,sRect.right-188,sRect.bottom, SetWindowPos(g_hDlg,NULL,0,0,sRect.right-214,sRect.bottom,
SWP_NOMOVE | SWP_NOZORDER); SWP_NOMOVE | SWP_NOZORDER);
dwValue = 0; dwValue = 0;
@ -421,7 +421,7 @@ void ToggleUIState()
} }
else else
{ {
SetWindowPos(g_hDlg,NULL,0,0,sRect.right+188,sRect.bottom, SetWindowPos(g_hDlg,NULL,0,0,sRect.right+214,sRect.bottom,
SWP_NOMOVE | SWP_NOZORDER); SWP_NOMOVE | SWP_NOZORDER);
dwValue = 1; dwValue = 1;
@ -1027,7 +1027,7 @@ void InitUI()
sRect2.left -= sRect.left; sRect2.left -= sRect.left;
sRect2.top -= sRect.top; sRect2.top -= sRect.top;
SetWindowPos(g_hDlg,NULL,0,0,sRect.right-188,sRect.bottom, SetWindowPos(g_hDlg,NULL,0,0,sRect.right-214,sRect.bottom,
SWP_NOMOVE | SWP_NOZORDER); SWP_NOMOVE | SWP_NOZORDER);
SetWindowText(GetDlgItem(g_hDlg,IDC_BLUBB),">>"); SetWindowText(GetDlgItem(g_hDlg,IDC_BLUBB),">>");
} }
@ -1361,7 +1361,7 @@ INT_PTR CALLBACK MessageProc(HWND hwndDlg,UINT uMsg,
r = (unsigned char)(CDisplay::Instance().GetFirstCheckerColor()->x * 255.0f); r = (unsigned char)(CDisplay::Instance().GetFirstCheckerColor()->x * 255.0f);
g = (unsigned char)(CDisplay::Instance().GetFirstCheckerColor()->y * 255.0f); g = (unsigned char)(CDisplay::Instance().GetFirstCheckerColor()->y * 255.0f);
b = (unsigned char)(CDisplay::Instance().GetFirstCheckerColor()->z * 255.0f); b = (unsigned char)(CDisplay::Instance().GetFirstCheckerColor()->z * 255.0f);
szText = "B0"; szText = "Background #0";
} }
else if (!g_pcAsset) else if (!g_pcAsset)
{ {
@ -1372,7 +1372,7 @@ INT_PTR CALLBACK MessageProc(HWND hwndDlg,UINT uMsg,
r = (unsigned char)((g_avLightColors[0] >> 16) & 0xFF); r = (unsigned char)((g_avLightColors[0] >> 16) & 0xFF);
g = (unsigned char)((g_avLightColors[0] >> 8) & 0xFF); g = (unsigned char)((g_avLightColors[0] >> 8) & 0xFF);
b = (unsigned char)((g_avLightColors[0]) & 0xFF); b = (unsigned char)((g_avLightColors[0]) & 0xFF);
szText = "L0"; szText = "Light #0";
} }
HBRUSH hbr = CreateSolidBrush(RGB(r,g,b)); HBRUSH hbr = CreateSolidBrush(RGB(r,g,b));
@ -1381,7 +1381,7 @@ INT_PTR CALLBACK MessageProc(HWND hwndDlg,UINT uMsg,
SetTextColor(pcStruct->hDC,RGB(0xFF-r,0xFF-g,0xFF-b)); SetTextColor(pcStruct->hDC,RGB(0xFF-r,0xFF-g,0xFF-b));
SetBkMode(pcStruct->hDC,TRANSPARENT); SetBkMode(pcStruct->hDC,TRANSPARENT);
TextOut(pcStruct->hDC,4,1,szText,2); TextOut(pcStruct->hDC,4,1,szText,strlen(szText));
bDraw = true; bDraw = true;
} }
else if(IDC_LCOLOR2 == pcStruct->CtlID) else if(IDC_LCOLOR2 == pcStruct->CtlID)
@ -1394,7 +1394,7 @@ INT_PTR CALLBACK MessageProc(HWND hwndDlg,UINT uMsg,
r = (unsigned char)(CDisplay::Instance().GetSecondCheckerColor()->x * 255.0f); r = (unsigned char)(CDisplay::Instance().GetSecondCheckerColor()->x * 255.0f);
g = (unsigned char)(CDisplay::Instance().GetSecondCheckerColor()->y * 255.0f); g = (unsigned char)(CDisplay::Instance().GetSecondCheckerColor()->y * 255.0f);
b = (unsigned char)(CDisplay::Instance().GetSecondCheckerColor()->z * 255.0f); b = (unsigned char)(CDisplay::Instance().GetSecondCheckerColor()->z * 255.0f);
szText = "B1"; szText = "Background #1";
} }
else if (!g_pcAsset) else if (!g_pcAsset)
{ {
@ -1405,14 +1405,14 @@ INT_PTR CALLBACK MessageProc(HWND hwndDlg,UINT uMsg,
r = (unsigned char)((g_avLightColors[1] >> 16) & 0xFF); r = (unsigned char)((g_avLightColors[1] >> 16) & 0xFF);
g = (unsigned char)((g_avLightColors[1] >> 8) & 0xFF); g = (unsigned char)((g_avLightColors[1] >> 8) & 0xFF);
b = (unsigned char)((g_avLightColors[1]) & 0xFF); b = (unsigned char)((g_avLightColors[1]) & 0xFF);
szText = "L1"; szText = "Light #1";
} }
HBRUSH hbr = CreateSolidBrush(RGB(r,g,b)); HBRUSH hbr = CreateSolidBrush(RGB(r,g,b));
FillRect(pcStruct->hDC,&sRect,hbr); FillRect(pcStruct->hDC,&sRect,hbr);
SetTextColor(pcStruct->hDC,RGB(0xFF-r,0xFF-g,0xFF-b)); SetTextColor(pcStruct->hDC,RGB(0xFF-r,0xFF-g,0xFF-b));
SetBkMode(pcStruct->hDC,TRANSPARENT); SetBkMode(pcStruct->hDC,TRANSPARENT);
TextOut(pcStruct->hDC,4,1,szText,2); TextOut(pcStruct->hDC,4,1,szText,strlen(szText));
bDraw = true; bDraw = true;
} }
else if(IDC_LCOLOR3 == pcStruct->CtlID) else if(IDC_LCOLOR3 == pcStruct->CtlID)
@ -1434,14 +1434,14 @@ INT_PTR CALLBACK MessageProc(HWND hwndDlg,UINT uMsg,
r = (unsigned char)((g_avLightColors[2] >> 16) & 0xFF); r = (unsigned char)((g_avLightColors[2] >> 16) & 0xFF);
g = (unsigned char)((g_avLightColors[2] >> 8) & 0xFF); g = (unsigned char)((g_avLightColors[2] >> 8) & 0xFF);
b = (unsigned char)((g_avLightColors[2]) & 0xFF); b = (unsigned char)((g_avLightColors[2]) & 0xFF);
szText = "A0"; szText = "Ambient";
} }
HBRUSH hbr = CreateSolidBrush(RGB(r,g,b)); HBRUSH hbr = CreateSolidBrush(RGB(r,g,b));
FillRect(pcStruct->hDC,&sRect,hbr); FillRect(pcStruct->hDC,&sRect,hbr);
SetTextColor(pcStruct->hDC,RGB(0xFF-r,0xFF-g,0xFF-b)); SetTextColor(pcStruct->hDC,RGB(0xFF-r,0xFF-g,0xFF-b));
SetBkMode(pcStruct->hDC,TRANSPARENT); SetBkMode(pcStruct->hDC,TRANSPARENT);
TextOut(pcStruct->hDC,4,1,szText,2); TextOut(pcStruct->hDC,4,1,szText,strlen(szText));
bDraw = true; bDraw = true;
} }
// draw the black border around the rects // draw the black border around the rects

View File

@ -198,10 +198,10 @@ int LoadAsset(void)
char szTemp[MAX_PATH+64]; char szTemp[MAX_PATH+64];
sprintf(szTemp,"Starting to load %s",g_szFileName); sprintf(szTemp,"Starting to load %s",g_szFileName);
CLogWindow::Instance().WriteLine( CLogWindow::Instance().WriteLine(
"****************************************************************************"); "----------------------------------------------------------------------------");
CLogWindow::Instance().WriteLine(szTemp); CLogWindow::Instance().WriteLine(szTemp);
CLogWindow::Instance().WriteLine( CLogWindow::Instance().WriteLine(
"****************************************************************************"); "----------------------------------------------------------------------------");
CLogWindow::Instance().SetAutoUpdate(false); CLogWindow::Instance().SetAutoUpdate(false);
// create a helper thread to load the asset // create a helper thread to load the asset

View File

@ -1,7 +1,6 @@
// Microsoft Visual C++ generated resource script. // Microsoft Visual C++ generated resource script.
// //
#include "resource.h" #include "resource.h"
#include "..\\..\\revision.h"
#define APSTUDIO_READONLY_SYMBOLS #define APSTUDIO_READONLY_SYMBOLS
///////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////
@ -54,75 +53,67 @@ BEGIN
CONTROL "",IDC_STATIC,"Static",SS_ETCHEDHORZ,0,10,281,1 CONTROL "",IDC_STATIC,"Static",SS_ETCHEDHORZ,0,10,281,1
END END
IDD_DIALOGMAIN DIALOGEX 0, 0, 594, 381 IDD_DIALOGMAIN DIALOGEX 0, 0, 615, 485
STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU STYLE DS_SETFONT | DS_MODALFRAME | DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU
EXSTYLE WS_EX_ACCEPTFILES EXSTYLE WS_EX_TOPMOST | WS_EX_ACCEPTFILES | WS_EX_WINDOWEDGE
CAPTION "Open Asset Import Library - ModelViewer " CAPTION "Open Asset Import Library - ModelViewer "
MENU IDR_MENU1 MENU IDR_MENU1
FONT 8, "MS Shell Dlg", 400, 0, 0x1 FONT 8, "Microsoft Sans Serif", 400, 0, 0x0
BEGIN BEGIN
CONTROL "",IDC_RT,"Static",SS_OWNERDRAW,3,5,462,351 CONTROL "Multisampling",IDC_TOGGLEMS,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,9,394,56,12
CONTROL "Multisampling",IDC_TOGGLEMS,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,473,241,80,10 CONTROL "Wireframe",IDC_TOGGLEWIRE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,9,404,57,12
CONTROL "Wireframe",IDC_TOGGLEWIRE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,473,251,49,10 CONTROL "No materials",IDC_TOGGLEMAT,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,9,415,64,12
CONTROL "No materials",IDC_TOGGLEMAT,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,473,261,55,10 LTEXT "Verts:",IDC_NUMVERTS,220,400,31,9
LTEXT "Verts:",IDC_NUMVERTS,475,14,27,8 LTEXT "Faces:\t",IDC_NUMFACES,295,400,26,9
LTEXT "Faces:\t",IDC_NUMFACES,539,14,22,8 LTEXT "Mats:",IDC_NUMMATS,295,413,23,9
LTEXT "Mats:",IDC_NUMMATS,540,26,20,8 LTEXT "FPS:",IDC_FPS,295,442,23,9
LTEXT "FPS:",IDC_FPS,540,51,20,8 CONTROL "Display normals",IDC_TOGGLENORMALS,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,9,425,62,12
CONTROL "Display normals",IDC_TOGGLENORMALS,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,473,271,65,10 CONTROL "Toggle AutoRotate",IDC_AUTOROTATE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,109,394,87,12
CONTROL "Toggle AutoRotate",IDC_AUTOROTATE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,473,348,74,10 EDITTEXT IDC_EVERT,253,396,37,14,ES_AUTOHSCROLL | ES_READONLY
EDITTEXT IDC_EVERT,504,11,32,12,ES_AUTOHSCROLL | ES_READONLY EDITTEXT IDC_EFACE,322,396,34,14,ES_AUTOHSCROLL | ES_READONLY
EDITTEXT IDC_EFACE,565,11,29,12,ES_AUTOHSCROLL | ES_READONLY EDITTEXT IDC_EMAT,322,411,34,14,ES_AUTOHSCROLL | ES_READONLY
EDITTEXT IDC_EMAT,565,24,29,12,ES_AUTOHSCROLL | ES_READONLY EDITTEXT IDC_EFPS,322,441,34,14,ES_AUTOHSCROLL | ES_READONLY
EDITTEXT IDC_EFPS,565,50,29,12,ES_AUTOHSCROLL | ES_READONLY CONTROL "Rotate light sources",IDC_LIGHTROTATE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,109,416,87,12
CONTROL "Rotate light sources",IDC_LIGHTROTATE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,473,368,74,10 CONTROL "Two lights",IDC_3LIGHTS,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,109,427,56,12
CONTROL "Two lights",IDC_3LIGHTS,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,473,281,48,10 LTEXT "Time:",IDC_LOADTIME,220,442,34,9
LTEXT "Time:",IDC_LOADTIME,475,51,29,8 EDITTEXT IDC_ELOAD,253,441,37,14,ES_AUTOHSCROLL | ES_READONLY
EDITTEXT IDC_ELOAD,504,50,32,12,ES_AUTOHSCROLL | ES_READONLY CONTROL "Zoom/Rotate",IDC_ZOOM,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,109,405,68,12
CONTROL "Zoom/Rotate",IDC_ZOOM,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,473,358,58,10 CONTROL "Low quality",IDC_LOWQUALITY,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,9,435,48,12
CONTROL "Low quality",IDC_LOWQUALITY,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,473,291,74,10 CONTROL "No specular ",IDC_NOSPECULAR,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,9,446,50,12
CONTROL "No specular ",IDC_NOSPECULAR,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,473,301,74,10 LTEXT "Shd:",IDC_NUMSHADERS,221,430,27,9
LTEXT "Shd:",IDC_NUMSHADERS,476,40,23,8 EDITTEXT IDC_ESHADER,253,426,37,14,ES_AUTOHSCROLL | ES_READONLY
EDITTEXT IDC_ESHADER,504,37,32,12,ES_AUTOHSCROLL | ES_READONLY LTEXT "[M]",IDC_STATIC,84,394,13,9
LTEXT "[M]",IDC_STATIC,553,241,11,8 LTEXT "[W]",IDC_STATIC,84,404,13,9
LTEXT "[W]",IDC_STATIC,553,251,11,8 LTEXT "[D]",IDC_STATIC,84,470,13,9
LTEXT "[D]",IDC_STATIC,553,261,11,8 LTEXT "[N]",IDC_STATIC,84,415,13,9
LTEXT "[N]",IDC_STATIC,553,271,11,8 LTEXT "[L]",IDC_STATIC,194,428,13,9
LTEXT "[L]",IDC_STATIC,553,281,11,8 LTEXT "[P]",IDC_STATIC,84,425,13,9
LTEXT "[P]",IDC_STATIC,553,291,11,8 LTEXT "[S]",IDC_STATIC,84,437,13,9
LTEXT "[S]",IDC_STATIC,553,301,11,8 LTEXT "[A]",IDC_STATIC,194,395,13,9
LTEXT "[A]",IDC_STATIC,552,348,11,8 LTEXT "[Z]",IDC_STATIC,194,406,13,9
LTEXT "[Z]",IDC_STATIC,552,358,11,8 LTEXT "[R]",IDC_STATIC,194,417,13,9
LTEXT "[R]",IDC_STATIC,552,368,11,8 COMBOBOX IDC_COMBO1,332,372,98,30,CBS_DROPDOWN | WS_VSCROLL | WS_TABSTOP
COMBOBOX IDC_COMBO1,353,361,84,30,CBS_DROPDOWN | WS_VSCROLL | WS_TABSTOP LTEXT "Nodes:",IDC_NUMNODES,221,413,28,9
CONTROL 149,IDC_STATIC,"Static",SS_BITMAP | SS_CENTERIMAGE,470,0,114,9 EDITTEXT IDC_ENODEWND,253,411,37,14,ES_AUTOHSCROLL | ES_READONLY
CONTROL 148,IDC_STATIC,"Static",SS_BITMAP | SS_CENTERIMAGE,470,229,114,9 CONTROL "",IDC_TREE1,"SysTreeView32",TVS_HASBUTTONS | TVS_HASLINES | TVS_SHOWSELALWAYS | WS_BORDER | WS_TABSTOP,473,0,142,484
CONTROL 147,IDC_STATIC,"Static",SS_BITMAP | SS_CENTERIMAGE,470,336,114,9 LTEXT "Mesh:",IDC_NUMMESHES,295,428,23,9
CONTROL 146,IDC_STATIC,"Static",SS_BITMAP | SS_CENTERIMAGE,470,65,114,9 EDITTEXT IDC_EMESH,322,426,34,14,ES_AUTOHSCROLL | ES_READONLY
CONTROL "",IDC_STATIC,"Static",SS_ETCHEDVERT,469,0,1,381 CONTROL "",IDC_STATIC,"Static",SS_ETCHEDVERT,100,392,1,87
CONTROL 149,IDC_STATIC,"Static",SS_BITMAP | SS_CENTERIMAGE,584,0,10,9 CONTROL "Button1",IDC_LCOLOR1,"Button",BS_OWNERDRAW | WS_TABSTOP,400,396,59,20
CONTROL 149,IDC_STATIC,"Static",SS_BITMAP | SS_CENTERIMAGE,584,65,10,9 CONTROL "Button1",IDC_LCOLOR2,"Button",BS_OWNERDRAW | WS_TABSTOP,400,418,59,20
CONTROL 149,IDC_STATIC,"Static",SS_BITMAP | SS_CENTERIMAGE,584,229,10,9 CONTROL "Button1",IDC_LCOLOR3,"Button",BS_OWNERDRAW | WS_TABSTOP,400,440,59,20
CONTROL 149,IDC_STATIC,"Static",SS_BITMAP | SS_CENTERIMAGE,584,336,10,9 PUSHBUTTON "Reset",IDC_LRESET,421,464,37,13,BS_BOTTOM
LTEXT "Nodes:",IDC_NUMNODES,476,26,24,8 EDITTEXT IDC_VIEWMATRIX,220,411,71,44,ES_MULTILINE | ES_AUTOHSCROLL | ES_READONLY | NOT WS_VISIBLE
EDITTEXT IDC_ENODEWND,504,24,32,12,ES_AUTOHSCROLL | ES_READONLY CONTROL "Show skeleton",IDC_SHOWSKELETON,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,9,457,58,12
CONTROL "",IDC_TREE1,"SysTreeView32",TVS_HASBUTTONS | TVS_HASLINES | TVS_SHOWSELALWAYS | WS_BORDER | WS_TABSTOP,471,74,123,155 LTEXT "[K]",IDC_STATIC,84,447,13,9
LTEXT "Mesh:",IDC_NUMMESHES,540,39,20,8 CONTROL "<<",IDC_BLUBB,"Button",BS_AUTOCHECKBOX | BS_PUSHLIKE | WS_TABSTOP,431,372,39,14
EDITTEXT IDC_EMESH,565,37,29,12,ES_AUTOHSCROLL | ES_READONLY LTEXT "[C]",IDC_STATIC,84,459,13,9
CONTROL "",IDC_STATIC,"Static",SS_ETCHEDVERT,567,238,1,93 CONTROL "",IDC_SLIDERANIM,"msctls_trackbar32",TBS_AUTOTICKS | TBS_BOTH | TBS_NOTICKS | WS_TABSTOP,0,372,300,16
CONTROL "Button1",IDC_LCOLOR1,"Button",BS_OWNERDRAW | WS_TABSTOP,570,242,21,17 PUSHBUTTON "Play",IDC_PLAY,301,372,29,13
CONTROL "Button1",IDC_LCOLOR2,"Button",BS_OWNERDRAW | WS_TABSTOP,570,262,21,17 CONTROL "Backface culling",IDC_BFCULL,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,9,468,65,12
CONTROL "Button1",IDC_LCOLOR3,"Button",BS_OWNERDRAW | WS_TABSTOP,570,282,21,17 CONTROL "",IDC_STATIC,"Static",SS_ETCHEDVERT,209,392,1,70
PUSHBUTTON "R",IDC_LRESET,576,300,15,11,BS_BOTTOM CONTROL "",IDC_RT,"Static",SS_OWNERDRAW,0,0,473,370
EDITTEXT IDC_VIEWMATRIX,475,24,61,38,ES_MULTILINE | ES_AUTOHSCROLL | ES_READONLY | NOT WS_VISIBLE CONTROL "",IDC_STATIC,"Static",SS_ETCHEDHORZ,1,388,469,1
CONTROL "Show skeleton",IDC_SHOWSKELETON,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,473,312,74,10
LTEXT "[K]",IDC_STATIC,553,312,11,8
CONTROL "<<",IDC_BLUBB,"Button",BS_AUTOCHECKBOX | BS_PUSHLIKE | WS_TABSTOP,439,361,27,15
LTEXT "[C]",IDC_STATIC,553,323,11,8
CONTROL "",IDC_SLIDERANIM,"msctls_trackbar32",TBS_AUTOTICKS | TBS_BOTH | TBS_NOTICKS | WS_TABSTOP,0,362,322,15
PUSHBUTTON "Play",IDC_PLAY,326,361,25,15
CONTROL "Backface culling",IDC_BFCULL,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,473,323,74,10
CONTROL "",IDC_STATIC,"Static",SS_ETCHEDHORZ,0,358,470,1
END END
IDD_LOADDIALOG DIALOGEX 0, 0, 143, 60 IDD_LOADDIALOG DIALOGEX 0, 0, 143, 60
@ -205,8 +196,8 @@ END
// //
VS_VERSION_INFO VERSIONINFO VS_VERSION_INFO VERSIONINFO
FILEVERSION 1,1,SVNRevision,0 FILEVERSION 1,1,700,0
PRODUCTVERSION 1,1,SVNRevision,1 PRODUCTVERSION 1,1,700,1
FILEFLAGSMASK 0x17L FILEFLAGSMASK 0x17L
#ifdef _DEBUG #ifdef _DEBUG
FILEFLAGS 0x1L FILEFLAGS 0x1L
@ -252,6 +243,11 @@ BEGIN
BOTTOMMARGIN, 138 BOTTOMMARGIN, 138
END END
IDD_DIALOGMAIN, DIALOG
BEGIN
BOTTOMMARGIN, 484
END
IDD_LOADDIALOG, DIALOG IDD_LOADDIALOG, DIALOG
BEGIN BEGIN
LEFTMARGIN, 7 LEFTMARGIN, 7

View File

@ -41,6 +41,7 @@
#define IDR_TXPOPUP 156 #define IDR_TXPOPUP 156
#define IDR_MATPOPUP 157 #define IDR_MATPOPUP 157
#define IDD_DIALOGSMOOTH 159 #define IDD_DIALOGSMOOTH 159
#define SVNRevision 700
#define IDC_CHECK1 1000 #define IDC_CHECK1 1000
#define IDC_TOGGLEMS 1000 #define IDC_TOGGLEMS 1000
#define IDC_CHECK2 1001 #define IDC_CHECK2 1001