AssimpView:
- postprocessing configuration is no (partially) configurable. - adding linsk to Assimp homepage/bugtracker/forums. - updating about dialog. - fixing colors of texture view (tiny array overrun ...). - minor UI theme adjustments. - 'setup file extensions' works again. - normal smooth limit is now used for primary import, too. - minor spelling fixes in the UI. git-svn-id: https://assimp.svn.sourceforge.net/svnroot/assimp/trunk@417 67173fc5-114c-0410-ac8e-9d2fd5bffc1fpull/1/head
parent
b7ecf79a03
commit
84c6b4fde6
3
CREDITS
3
CREDITS
|
@ -61,3 +61,6 @@ Contributed fixes for the documentation and the doxygen markup
|
||||||
|
|
||||||
- Zhao Lei
|
- Zhao Lei
|
||||||
Contributed several bugfixes fixing memory leaks and improving float parsing
|
Contributed several bugfixes fixing memory leaks and improving float parsing
|
||||||
|
|
||||||
|
- sueastside
|
||||||
|
Updated PyAssimp to the latest Assimp data structures and provided a script to keep the Python binding up-to-date.
|
||||||
|
|
|
@ -15,14 +15,13 @@ set /p addtext= < tmpfile.txt
|
||||||
del /q tmpfile.txt
|
del /q tmpfile.txt
|
||||||
cd ..\mkutil
|
cd ..\mkutil
|
||||||
|
|
||||||
echo #define SVNRevision > revision.h
|
echo #define SVNRevision > tmpfile.txt
|
||||||
|
|
||||||
if exist tmpfile.txt del /q tmpfile.txt
|
if exist revision.h del /q revision.h
|
||||||
for /f "delims=" %%l in (revision.h) Do (
|
for /f "delims=" %%l in (tmpfile.txt) Do (
|
||||||
echo %%l %addtext% >> tmpfile.txt
|
echo %%l %addtext% >> revision.h
|
||||||
)
|
)
|
||||||
del /q revision.h
|
del /q tmpfile.txt
|
||||||
ren tmpfile.txt revision.h
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -87,7 +87,7 @@ private:
|
||||||
this->m_aiImageList[4] = 4;
|
this->m_aiImageList[4] = 4;
|
||||||
|
|
||||||
this->m_avCheckerColors[0].x = this->m_avCheckerColors[0].y = this->m_avCheckerColors[0].z = 0.4f;
|
this->m_avCheckerColors[0].x = this->m_avCheckerColors[0].y = this->m_avCheckerColors[0].z = 0.4f;
|
||||||
this->m_avCheckerColors[0].x = this->m_avCheckerColors[1].y = this->m_avCheckerColors[2].z = 0.6f;
|
this->m_avCheckerColors[1].x = this->m_avCheckerColors[1].y = this->m_avCheckerColors[1].z = 0.6f;
|
||||||
}
|
}
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
|
Binary file not shown.
Before Width: | Height: | Size: 40 KiB After Width: | Height: | Size: 42 KiB |
|
@ -122,7 +122,7 @@ void CLogDisplay::OnRender()
|
||||||
// if no asset is loaded draw a "no asset loaded" text in the center
|
// if no asset is loaded draw a "no asset loaded" text in the center
|
||||||
if (!g_pcAsset)
|
if (!g_pcAsset)
|
||||||
{
|
{
|
||||||
const char* szText = "No asset loaded\r\nUse [Viewer | Open asset] to load one";
|
const char* szText = "Nothing to display ... \r\nTry [Viewer | Open asset] to load an asset";
|
||||||
|
|
||||||
// shadow
|
// shadow
|
||||||
RECT sCopy;
|
RECT sCopy;
|
||||||
|
|
|
@ -80,15 +80,22 @@ void MakeFileAssociations()
|
||||||
|
|
||||||
HKEY g_hRegistry;
|
HKEY g_hRegistry;
|
||||||
|
|
||||||
aiString list;
|
aiString list, tmp;
|
||||||
aiGetExtensionList(&list);
|
aiGetExtensionList(&list);
|
||||||
|
tmp = list;
|
||||||
|
|
||||||
while (1)
|
const char* sz = strtok(list.data,";");
|
||||||
|
do
|
||||||
{
|
{
|
||||||
RegCreateKeyEx(HKEY_CURRENT_USER,"Software\\Classes\\.3ds",NULL,NULL,0,KEY_ALL_ACCESS, NULL, &g_hRegistry,NULL);
|
char buf[256];
|
||||||
|
assert(sz[0] == '*');
|
||||||
|
sprintf(buf,"Software\\Classes\\%s",sz+1);
|
||||||
|
|
||||||
|
RegCreateKeyEx(HKEY_CURRENT_USER,buf,NULL,NULL,0,KEY_ALL_ACCESS, NULL, &g_hRegistry,NULL);
|
||||||
RegSetValueEx(g_hRegistry,"",0,REG_SZ,(const BYTE*)"ASSIMPVIEW_CLASS",(DWORD)strlen("ASSIMPVIEW_CLASS")+1);
|
RegSetValueEx(g_hRegistry,"",0,REG_SZ,(const BYTE*)"ASSIMPVIEW_CLASS",(DWORD)strlen("ASSIMPVIEW_CLASS")+1);
|
||||||
RegCloseKey(g_hRegistry);
|
RegCloseKey(g_hRegistry);
|
||||||
}
|
}
|
||||||
|
while (sz = strtok(NULL,";"));
|
||||||
|
|
||||||
RegCreateKeyEx(HKEY_CURRENT_USER,"Software\\Classes\\ASSIMPVIEW_CLASS",NULL,NULL,0,KEY_ALL_ACCESS, NULL, &g_hRegistry,NULL);
|
RegCreateKeyEx(HKEY_CURRENT_USER,"Software\\Classes\\ASSIMPVIEW_CLASS",NULL,NULL,0,KEY_ALL_ACCESS, NULL, &g_hRegistry,NULL);
|
||||||
RegCloseKey(g_hRegistry);
|
RegCloseKey(g_hRegistry);
|
||||||
|
@ -100,11 +107,7 @@ void MakeFileAssociations()
|
||||||
CLogDisplay::Instance().AddEntry("[OK] File assocations have been registered",
|
CLogDisplay::Instance().AddEntry("[OK] File assocations have been registered",
|
||||||
D3DCOLOR_ARGB(0xFF,0,0xFF,0));
|
D3DCOLOR_ARGB(0xFF,0,0xFF,0));
|
||||||
|
|
||||||
aiString sz;
|
CLogDisplay::Instance().AddEntry(tmp.data,D3DCOLOR_ARGB(0xFF,0,0xFF,0));
|
||||||
aiGetExtensionList(&sz);
|
|
||||||
CLogDisplay::Instance().AddEntry(sz.data,
|
|
||||||
D3DCOLOR_ARGB(0xFF,0,0xFF,0));
|
|
||||||
return;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -192,6 +195,16 @@ void LoadCheckerPatternColors()
|
||||||
(BYTE*) /* jep, this is evil */ CDisplay::Instance().GetSecondCheckerColor(),&dwTemp);
|
(BYTE*) /* jep, this is evil */ CDisplay::Instance().GetSecondCheckerColor(),&dwTemp);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//-------------------------------------------------------------------------------
|
||||||
|
// Changed pp setup
|
||||||
|
//-------------------------------------------------------------------------------
|
||||||
|
void UpdatePPSettings()
|
||||||
|
{
|
||||||
|
DWORD dwValue = ppsteps;
|
||||||
|
RegSetValueExA(g_hRegistry,"PostProcessing",0,REG_DWORD,(const BYTE*)&dwValue,4);
|
||||||
|
UpdateWindow(g_hDlg);
|
||||||
|
}
|
||||||
|
|
||||||
//-------------------------------------------------------------------------------
|
//-------------------------------------------------------------------------------
|
||||||
// Toggle the "Display Normals" state
|
// Toggle the "Display Normals" state
|
||||||
//-------------------------------------------------------------------------------
|
//-------------------------------------------------------------------------------
|
||||||
|
@ -203,7 +216,6 @@ void ToggleNormals()
|
||||||
DWORD dwValue = 0;
|
DWORD dwValue = 0;
|
||||||
if (g_sOptions.bRenderNormals)dwValue = 1;
|
if (g_sOptions.bRenderNormals)dwValue = 1;
|
||||||
RegSetValueExA(g_hRegistry,"RenderNormals",0,REG_DWORD,(const BYTE*)&dwValue,4);
|
RegSetValueExA(g_hRegistry,"RenderNormals",0,REG_DWORD,(const BYTE*)&dwValue,4);
|
||||||
UpdateWindow(g_hDlg);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//-------------------------------------------------------------------------------
|
//-------------------------------------------------------------------------------
|
||||||
|
@ -232,7 +244,6 @@ void ToggleFPSView()
|
||||||
DWORD dwValue = 0;
|
DWORD dwValue = 0;
|
||||||
if (g_bFPSView)dwValue = 1;
|
if (g_bFPSView)dwValue = 1;
|
||||||
RegSetValueExA(g_hRegistry,"FPSView",0,REG_DWORD,(const BYTE*)&dwValue,4);
|
RegSetValueExA(g_hRegistry,"FPSView",0,REG_DWORD,(const BYTE*)&dwValue,4);
|
||||||
UpdateWindow(g_hDlg);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//-------------------------------------------------------------------------------
|
//-------------------------------------------------------------------------------
|
||||||
|
@ -246,7 +257,6 @@ void ToggleMultipleLights()
|
||||||
DWORD dwValue = 0;
|
DWORD dwValue = 0;
|
||||||
if (g_sOptions.b3Lights)dwValue = 1;
|
if (g_sOptions.b3Lights)dwValue = 1;
|
||||||
RegSetValueExA(g_hRegistry,"MultipleLights",0,REG_DWORD,(const BYTE*)&dwValue,4);
|
RegSetValueExA(g_hRegistry,"MultipleLights",0,REG_DWORD,(const BYTE*)&dwValue,4);
|
||||||
UpdateWindow(g_hDlg);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//-------------------------------------------------------------------------------
|
//-------------------------------------------------------------------------------
|
||||||
|
@ -260,7 +270,6 @@ void ToggleLightRotate()
|
||||||
DWORD dwValue = 0;
|
DWORD dwValue = 0;
|
||||||
if (g_sOptions.bLightRotate)dwValue = 1;
|
if (g_sOptions.bLightRotate)dwValue = 1;
|
||||||
RegSetValueExA(g_hRegistry,"LightRotate",0,REG_DWORD,(const BYTE*)&dwValue,4);
|
RegSetValueExA(g_hRegistry,"LightRotate",0,REG_DWORD,(const BYTE*)&dwValue,4);
|
||||||
UpdateWindow(g_hDlg);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//-------------------------------------------------------------------------------
|
//-------------------------------------------------------------------------------
|
||||||
|
@ -274,7 +283,6 @@ void ToggleLowQuality()
|
||||||
DWORD dwValue = 0;
|
DWORD dwValue = 0;
|
||||||
if (g_sOptions.bLowQuality)dwValue = 1;
|
if (g_sOptions.bLowQuality)dwValue = 1;
|
||||||
RegSetValueExA(g_hRegistry,"LowQuality",0,REG_DWORD,(const BYTE*)&dwValue,4);
|
RegSetValueExA(g_hRegistry,"LowQuality",0,REG_DWORD,(const BYTE*)&dwValue,4);
|
||||||
UpdateWindow(g_hDlg);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//-------------------------------------------------------------------------------
|
//-------------------------------------------------------------------------------
|
||||||
|
@ -291,7 +299,6 @@ void ToggleSpecular()
|
||||||
|
|
||||||
// update all specular materials
|
// update all specular materials
|
||||||
CMaterialManager::Instance().UpdateSpecularMaterials();
|
CMaterialManager::Instance().UpdateSpecularMaterials();
|
||||||
UpdateWindow(g_hDlg);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//-------------------------------------------------------------------------------
|
//-------------------------------------------------------------------------------
|
||||||
|
@ -308,7 +315,6 @@ void ToggleMats()
|
||||||
|
|
||||||
// update all specular materials
|
// update all specular materials
|
||||||
CMaterialManager::Instance().UpdateSpecularMaterials();
|
CMaterialManager::Instance().UpdateSpecularMaterials();
|
||||||
UpdateWindow(g_hDlg);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//-------------------------------------------------------------------------------
|
//-------------------------------------------------------------------------------
|
||||||
|
@ -350,7 +356,6 @@ void ToggleWireFrame()
|
||||||
DWORD dwValue = 0;
|
DWORD dwValue = 0;
|
||||||
if (RenderOptions::WIREFRAME == g_sOptions.eDrawMode)dwValue = 1;
|
if (RenderOptions::WIREFRAME == g_sOptions.eDrawMode)dwValue = 1;
|
||||||
RegSetValueExA(g_hRegistry,"Wireframe",0,REG_DWORD,(const BYTE*)&dwValue,4);
|
RegSetValueExA(g_hRegistry,"Wireframe",0,REG_DWORD,(const BYTE*)&dwValue,4);
|
||||||
UpdateWindow(g_hDlg);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -386,7 +391,6 @@ void ToggleMS()
|
||||||
DWORD dwValue = 0;
|
DWORD dwValue = 0;
|
||||||
if (g_sOptions.bMultiSample)dwValue = 1;
|
if (g_sOptions.bMultiSample)dwValue = 1;
|
||||||
RegSetValueExA(g_hRegistry,"MultiSampling",0,REG_DWORD,(const BYTE*)&dwValue,4);
|
RegSetValueExA(g_hRegistry,"MultiSampling",0,REG_DWORD,(const BYTE*)&dwValue,4);
|
||||||
UpdateWindow(g_hDlg);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//-------------------------------------------------------------------------------
|
//-------------------------------------------------------------------------------
|
||||||
|
@ -958,6 +962,28 @@ void OpenAsset()
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//-------------------------------------------------------------------------------
|
||||||
|
void SetupPPUIState()
|
||||||
|
{
|
||||||
|
|
||||||
|
// fucking hell, that's ugly. anyone willing to rewrite me from scratch?
|
||||||
|
HMENU hMenu = GetMenu(g_hDlg);
|
||||||
|
CheckMenuItem(hMenu,ID_VIEWER_PP_JIV,ppsteps & aiProcess_JoinIdenticalVertices ? MF_CHECKED : MF_UNCHECKED);
|
||||||
|
CheckMenuItem(hMenu,ID_VIEWER_PP_CTS,ppsteps & aiProcess_CalcTangentSpace ? MF_CHECKED : MF_UNCHECKED);
|
||||||
|
CheckMenuItem(hMenu,ID_VIEWER_PP_FD,ppsteps & aiProcess_FindDegenerates ? MF_CHECKED : MF_UNCHECKED);
|
||||||
|
CheckMenuItem(hMenu,ID_VIEWER_PP_FID,ppsteps & aiProcess_FindInvalidData ? MF_CHECKED : MF_UNCHECKED);
|
||||||
|
CheckMenuItem(hMenu,ID_VIEWER_PP_FIM,ppsteps & aiProcess_FindInstances ? MF_CHECKED : MF_UNCHECKED);
|
||||||
|
CheckMenuItem(hMenu,ID_VIEWER_PP_FIN,ppsteps & aiProcess_FixInfacingNormals ? MF_CHECKED : MF_UNCHECKED);
|
||||||
|
CheckMenuItem(hMenu,ID_VIEWER_PP_GUV,ppsteps & aiProcess_GenUVCoords ? MF_CHECKED : MF_UNCHECKED);
|
||||||
|
CheckMenuItem(hMenu,ID_VIEWER_PP_ICL,ppsteps & aiProcess_ImproveCacheLocality ? MF_CHECKED : MF_UNCHECKED);
|
||||||
|
CheckMenuItem(hMenu,ID_VIEWER_PP_OG,ppsteps & aiProcess_OptimizeGraph ? MF_CHECKED : MF_UNCHECKED);
|
||||||
|
CheckMenuItem(hMenu,ID_VIEWER_PP_OM,ppsteps & aiProcess_OptimizeMeshes ? MF_CHECKED : MF_UNCHECKED);
|
||||||
|
CheckMenuItem(hMenu,ID_VIEWER_PP_PTV,ppsteps & aiProcess_PreTransformVertices ? MF_CHECKED : MF_UNCHECKED);
|
||||||
|
CheckMenuItem(hMenu,ID_VIEWER_PP_RRM2,ppsteps & aiProcess_RemoveRedundantMaterials ? MF_CHECKED : MF_UNCHECKED);
|
||||||
|
CheckMenuItem(hMenu,ID_VIEWER_PP_TUV,ppsteps & aiProcess_TransformUVCoords ? MF_CHECKED : MF_UNCHECKED);
|
||||||
|
CheckMenuItem(hMenu,ID_VIEWER_PP_VDS,ppsteps & aiProcess_ValidateDataStructure ? MF_CHECKED : MF_UNCHECKED);
|
||||||
|
}
|
||||||
|
|
||||||
//-------------------------------------------------------------------------------
|
//-------------------------------------------------------------------------------
|
||||||
// Initialize the user interface
|
// Initialize the user interface
|
||||||
//-------------------------------------------------------------------------------
|
//-------------------------------------------------------------------------------
|
||||||
|
@ -1149,6 +1175,12 @@ void InitUI()
|
||||||
g_sOptions.eDrawMode = RenderOptions::WIREFRAME;
|
g_sOptions.eDrawMode = RenderOptions::WIREFRAME;
|
||||||
CheckDlgButton(g_hDlg,IDC_TOGGLEWIRE,BST_CHECKED);
|
CheckDlgButton(g_hDlg,IDC_TOGGLEWIRE,BST_CHECKED);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if(ERROR_SUCCESS != RegQueryValueEx(g_hRegistry,"PostProcessing",NULL,NULL,(BYTE*)&dwValue,&dwTemp))
|
||||||
|
ppsteps = ppstepsdefault;
|
||||||
|
else ppsteps = dwValue;
|
||||||
|
|
||||||
|
SetupPPUIState();
|
||||||
LoadCheckerPatternColors();
|
LoadCheckerPatternColors();
|
||||||
|
|
||||||
SendDlgItemMessage(g_hDlg,IDC_SLIDERANIM,TBM_SETRANGEMIN,TRUE,0);
|
SendDlgItemMessage(g_hDlg,IDC_SLIDERANIM,TBM_SETRANGEMIN,TRUE,0);
|
||||||
|
@ -1649,6 +1681,7 @@ INT_PTR CALLBACK MessageProc(HWND hwndDlg,UINT uMsg,
|
||||||
|
|
||||||
case WM_COMMAND:
|
case WM_COMMAND:
|
||||||
|
|
||||||
|
HMENU hMenu = GetMenu(g_hDlg);
|
||||||
if (ID_VIEWER_QUIT == LOWORD(wParam))
|
if (ID_VIEWER_QUIT == LOWORD(wParam))
|
||||||
{
|
{
|
||||||
PostQuitMessage(0);
|
PostQuitMessage(0);
|
||||||
|
@ -1680,6 +1713,22 @@ INT_PTR CALLBACK MessageProc(HWND hwndDlg,UINT uMsg,
|
||||||
{
|
{
|
||||||
CLogWindow::Instance().Show();
|
CLogWindow::Instance().Show();
|
||||||
}
|
}
|
||||||
|
else if (ID__WEBSITE == LOWORD(wParam))
|
||||||
|
{
|
||||||
|
ShellExecute(NULL,"open","http://assimp.sourceforge.net","","",SW_SHOW);
|
||||||
|
}
|
||||||
|
else if (ID__WEBSITESF == LOWORD(wParam))
|
||||||
|
{
|
||||||
|
ShellExecute(NULL,"open","https://sourceforge.net/projects/assimp","","",SW_SHOW);
|
||||||
|
}
|
||||||
|
else if (ID_REPORTBUG == LOWORD(wParam))
|
||||||
|
{
|
||||||
|
ShellExecute(NULL,"open","https://sourceforge.net/tracker/?func=add&group_id=226462&atid=1067632","","",SW_SHOW);
|
||||||
|
}
|
||||||
|
else if (ID_FR == LOWORD(wParam))
|
||||||
|
{
|
||||||
|
ShellExecute(NULL,"open","https://sourceforge.net/forum/forum.php?forum_id=817653","","",SW_SHOW);
|
||||||
|
}
|
||||||
else if (ID_TOOLS_CLEARLOG == LOWORD(wParam))
|
else if (ID_TOOLS_CLEARLOG == LOWORD(wParam))
|
||||||
{
|
{
|
||||||
CLogWindow::Instance().Clear();
|
CLogWindow::Instance().Clear();
|
||||||
|
@ -1727,34 +1776,122 @@ INT_PTR CALLBACK MessageProc(HWND hwndDlg,UINT uMsg,
|
||||||
g_pcAsset->FlipNormals();
|
g_pcAsset->FlipNormals();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// fucking hell, this is ugly. anyone willing to rewrite it from scratch using wxwidgets or similar?
|
||||||
|
else if (ID_VIEWER_PP_JIV == LOWORD(wParam)) {
|
||||||
|
ppsteps ^= aiProcess_JoinIdenticalVertices;
|
||||||
|
CheckMenuItem(hMenu,ID_VIEWER_PP_JIV,ppsteps & aiProcess_JoinIdenticalVertices ? MF_CHECKED : MF_UNCHECKED);
|
||||||
|
UpdatePPSettings();
|
||||||
|
}
|
||||||
|
else if (ID_VIEWER_PP_CTS == LOWORD(wParam)) {
|
||||||
|
ppsteps ^= aiProcess_CalcTangentSpace;
|
||||||
|
CheckMenuItem(hMenu,ID_VIEWER_PP_CTS,ppsteps & aiProcess_CalcTangentSpace ? MF_CHECKED : MF_UNCHECKED);
|
||||||
|
UpdatePPSettings();
|
||||||
|
}
|
||||||
|
else if (ID_VIEWER_PP_FD == LOWORD(wParam)) {
|
||||||
|
ppsteps ^= aiProcess_FindDegenerates;
|
||||||
|
CheckMenuItem(hMenu,ID_VIEWER_PP_FD,ppsteps & aiProcess_FindDegenerates ? MF_CHECKED : MF_UNCHECKED);
|
||||||
|
UpdatePPSettings();
|
||||||
|
}
|
||||||
|
else if (ID_VIEWER_PP_FID == LOWORD(wParam)) {
|
||||||
|
ppsteps ^= aiProcess_FindInvalidData;
|
||||||
|
CheckMenuItem(hMenu,ID_VIEWER_PP_FID,ppsteps & aiProcess_FindInvalidData ? MF_CHECKED : MF_UNCHECKED);
|
||||||
|
UpdatePPSettings();
|
||||||
|
}
|
||||||
|
else if (ID_VIEWER_PP_FIM == LOWORD(wParam)) {
|
||||||
|
ppsteps ^= aiProcess_FindInstances;
|
||||||
|
CheckMenuItem(hMenu,ID_VIEWER_PP_FIM,ppsteps & aiProcess_FindInstances ? MF_CHECKED : MF_UNCHECKED);
|
||||||
|
UpdatePPSettings();
|
||||||
|
}
|
||||||
|
else if (ID_VIEWER_PP_FIN == LOWORD(wParam)) {
|
||||||
|
ppsteps ^= aiProcess_FixInfacingNormals;
|
||||||
|
CheckMenuItem(hMenu,ID_VIEWER_PP_FIN,ppsteps & aiProcess_FixInfacingNormals ? MF_CHECKED : MF_UNCHECKED);
|
||||||
|
UpdatePPSettings();
|
||||||
|
}
|
||||||
|
else if (ID_VIEWER_PP_GUV == LOWORD(wParam)) {
|
||||||
|
ppsteps ^= aiProcess_GenUVCoords;
|
||||||
|
CheckMenuItem(hMenu,ID_VIEWER_PP_GUV,ppsteps & aiProcess_GenUVCoords ? MF_CHECKED : MF_UNCHECKED);
|
||||||
|
UpdatePPSettings();
|
||||||
|
}
|
||||||
|
else if (ID_VIEWER_PP_ICL == LOWORD(wParam)) {
|
||||||
|
ppsteps ^= aiProcess_ImproveCacheLocality;
|
||||||
|
CheckMenuItem(hMenu,ID_VIEWER_PP_ICL,ppsteps & aiProcess_ImproveCacheLocality ? MF_CHECKED : MF_UNCHECKED);
|
||||||
|
UpdatePPSettings();
|
||||||
|
}
|
||||||
|
else if (ID_VIEWER_PP_OG == LOWORD(wParam)) {
|
||||||
|
if (ppsteps & aiProcess_PreTransformVertices) {
|
||||||
|
CLogDisplay::Instance().AddEntry("[ERROR] This setting is incompatible with \'Pretransform Vertices\'");
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
ppsteps ^= aiProcess_OptimizeGraph;
|
||||||
|
CheckMenuItem(hMenu,ID_VIEWER_PP_OG,ppsteps & aiProcess_OptimizeGraph ? MF_CHECKED : MF_UNCHECKED);
|
||||||
|
UpdatePPSettings();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if (ID_VIEWER_PP_OM == LOWORD(wParam)) {
|
||||||
|
ppsteps ^= aiProcess_OptimizeMeshes;
|
||||||
|
CheckMenuItem(hMenu,ID_VIEWER_PP_OM,ppsteps & aiProcess_OptimizeMeshes ? MF_CHECKED : MF_UNCHECKED);
|
||||||
|
UpdatePPSettings();
|
||||||
|
}
|
||||||
|
else if (ID_VIEWER_PP_PTV == LOWORD(wParam)) {
|
||||||
|
if (ppsteps & aiProcess_OptimizeGraph) {
|
||||||
|
CLogDisplay::Instance().AddEntry("[ERROR] This setting is incompatible with \'Optimize Scenegraph\'");
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
ppsteps ^= aiProcess_PreTransformVertices;
|
||||||
|
CheckMenuItem(hMenu,ID_VIEWER_PP_PTV,ppsteps & aiProcess_PreTransformVertices ? MF_CHECKED : MF_UNCHECKED);
|
||||||
|
UpdatePPSettings();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if (ID_VIEWER_PP_RRM2 == LOWORD(wParam)) {
|
||||||
|
ppsteps ^= aiProcess_RemoveRedundantMaterials;
|
||||||
|
CheckMenuItem(hMenu,ID_VIEWER_PP_RRM2,ppsteps & aiProcess_RemoveRedundantMaterials ? MF_CHECKED : MF_UNCHECKED);
|
||||||
|
UpdatePPSettings();
|
||||||
|
}
|
||||||
|
else if (ID_VIEWER_PP_TUV == LOWORD(wParam)) {
|
||||||
|
ppsteps ^= aiProcess_TransformUVCoords;
|
||||||
|
CheckMenuItem(hMenu,ID_VIEWER_PP_TUV,ppsteps & aiProcess_TransformUVCoords ? MF_CHECKED : MF_UNCHECKED);
|
||||||
|
UpdatePPSettings();
|
||||||
|
}
|
||||||
|
else if (ID_VIEWER_PP_VDS == LOWORD(wParam)) {
|
||||||
|
ppsteps ^= aiProcess_ValidateDataStructure;
|
||||||
|
CheckMenuItem(hMenu,ID_VIEWER_PP_VDS,ppsteps & aiProcess_ValidateDataStructure ? MF_CHECKED : MF_UNCHECKED);
|
||||||
|
UpdatePPSettings();
|
||||||
|
}
|
||||||
|
else if (ID_VIEWER_RELOAD == LOWORD(wParam))
|
||||||
|
{
|
||||||
|
DeleteAsset();
|
||||||
|
LoadAsset();
|
||||||
|
}
|
||||||
|
else if (ID_IMPORTSETTINGS_RESETTODEFAULT == LOWORD(wParam))
|
||||||
|
{
|
||||||
|
ppsteps = ppstepsdefault;
|
||||||
|
UpdatePPSettings();
|
||||||
|
SetupPPUIState();
|
||||||
|
}
|
||||||
|
else if (ID_IMPORTSETTINGS_OPENPOST == LOWORD(wParam))
|
||||||
|
{
|
||||||
|
ShellExecute(NULL,"open","http://assimp.sourceforge.net/lib_html/ai_post_process_8h.html","","",SW_SHOW);
|
||||||
|
}
|
||||||
else if (ID_TOOLS_ORIGINALNORMALS == LOWORD(wParam))
|
else if (ID_TOOLS_ORIGINALNORMALS == LOWORD(wParam))
|
||||||
{
|
{
|
||||||
if (g_pcAsset && g_pcAsset->pcScene)
|
if (g_pcAsset && g_pcAsset->pcScene)
|
||||||
{
|
{
|
||||||
g_pcAsset->SetNormalSet(AssimpView::AssetHelper::ORIGINAL);
|
g_pcAsset->SetNormalSet(AssimpView::AssetHelper::ORIGINAL);
|
||||||
|
CheckMenuItem(hMenu,ID_TOOLS_ORIGINALNORMALS,MF_BYCOMMAND | MF_CHECKED);
|
||||||
HMENU hMenu = GetMenu(g_hDlg);
|
CheckMenuItem(hMenu,ID_TOOLS_HARDNORMALS,MF_BYCOMMAND | MF_UNCHECKED);
|
||||||
ModifyMenu(hMenu,ID_TOOLS_ORIGINALNORMALS,
|
CheckMenuItem(hMenu,ID_TOOLS_SMOOTHNORMALS,MF_BYCOMMAND | MF_UNCHECKED);
|
||||||
MF_BYCOMMAND | MF_CHECKED | MF_STRING,ID_TOOLS_ORIGINALNORMALS,"Original normals");
|
|
||||||
ModifyMenu(hMenu,ID_TOOLS_HARDNORMALS,
|
|
||||||
MF_BYCOMMAND | MF_UNCHECKED | MF_STRING,ID_TOOLS_HARDNORMALS,"Hard normals");
|
|
||||||
ModifyMenu(hMenu,ID_TOOLS_SMOOTHNORMALS,
|
|
||||||
MF_BYCOMMAND | MF_UNCHECKED | MF_STRING,ID_TOOLS_SMOOTHNORMALS,"Smooth normals");
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
else if (ID_TOOLS_SMOOTHNORMALS == LOWORD(wParam))
|
else if (ID_TOOLS_SMOOTHNORMALS == LOWORD(wParam))
|
||||||
{
|
{
|
||||||
if (g_pcAsset && g_pcAsset->pcScene)
|
if (g_pcAsset && g_pcAsset->pcScene)
|
||||||
{
|
{
|
||||||
g_pcAsset->SetNormalSet(AssimpView::AssetHelper::SMOOTH);
|
g_pcAsset->SetNormalSet(AssimpView::AssetHelper::SMOOTH);
|
||||||
|
CheckMenuItem(hMenu,ID_TOOLS_ORIGINALNORMALS,MF_BYCOMMAND | MF_UNCHECKED);
|
||||||
HMENU hMenu = GetMenu(g_hDlg);
|
CheckMenuItem(hMenu,ID_TOOLS_HARDNORMALS,MF_BYCOMMAND | MF_UNCHECKED);
|
||||||
ModifyMenu(hMenu,ID_TOOLS_SMOOTHNORMALS,
|
CheckMenuItem(hMenu,ID_TOOLS_SMOOTHNORMALS,MF_BYCOMMAND | MF_CHECKED);
|
||||||
MF_BYCOMMAND | MF_CHECKED | MF_STRING,ID_TOOLS_SMOOTHNORMALS,"Smooth normals");
|
|
||||||
ModifyMenu(hMenu,ID_TOOLS_HARDNORMALS,
|
|
||||||
MF_BYCOMMAND | MF_UNCHECKED | MF_STRING,ID_TOOLS_HARDNORMALS,"Hard normals");
|
|
||||||
ModifyMenu(hMenu,ID_TOOLS_ORIGINALNORMALS,
|
|
||||||
MF_BYCOMMAND | MF_UNCHECKED | MF_STRING,ID_TOOLS_ORIGINALNORMALS,"Original normals");
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (ID_TOOLS_HARDNORMALS == LOWORD(wParam))
|
else if (ID_TOOLS_HARDNORMALS == LOWORD(wParam))
|
||||||
|
@ -1762,14 +1899,9 @@ INT_PTR CALLBACK MessageProc(HWND hwndDlg,UINT uMsg,
|
||||||
if (g_pcAsset && g_pcAsset->pcScene)
|
if (g_pcAsset && g_pcAsset->pcScene)
|
||||||
{
|
{
|
||||||
g_pcAsset->SetNormalSet(AssimpView::AssetHelper::HARD);
|
g_pcAsset->SetNormalSet(AssimpView::AssetHelper::HARD);
|
||||||
|
CheckMenuItem(hMenu,ID_TOOLS_ORIGINALNORMALS,MF_BYCOMMAND | MF_UNCHECKED);
|
||||||
HMENU hMenu = GetMenu(g_hDlg);
|
CheckMenuItem(hMenu,ID_TOOLS_HARDNORMALS,MF_BYCOMMAND | MF_CHECKED);
|
||||||
ModifyMenu(hMenu,ID_TOOLS_HARDNORMALS,
|
CheckMenuItem(hMenu,ID_TOOLS_SMOOTHNORMALS,MF_BYCOMMAND | MF_UNCHECKED);
|
||||||
MF_BYCOMMAND | MF_CHECKED | MF_STRING,ID_TOOLS_HARDNORMALS,"Hard normals");
|
|
||||||
ModifyMenu(hMenu,ID_TOOLS_ORIGINALNORMALS,
|
|
||||||
MF_BYCOMMAND | MF_UNCHECKED | MF_STRING,ID_TOOLS_ORIGINALNORMALS,"Original normals");
|
|
||||||
ModifyMenu(hMenu,ID_TOOLS_SMOOTHNORMALS,
|
|
||||||
MF_BYCOMMAND | MF_UNCHECKED | MF_STRING,ID_TOOLS_SMOOTHNORMALS,"Smooth normals");
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (ID_TOOLS_STEREOVIEW == LOWORD(wParam))
|
else if (ID_TOOLS_STEREOVIEW == LOWORD(wParam))
|
||||||
|
@ -2107,7 +2239,7 @@ int APIENTRY _tWinMain(HINSTANCE hInstance,
|
||||||
"ASSIMP ModelViewer",MB_OK);
|
"ASSIMP ModelViewer",MB_OK);
|
||||||
return -4;
|
return -4;
|
||||||
}
|
}
|
||||||
CLogDisplay::Instance().AddEntry("[OK] assimp_view has been initialized successfully");
|
CLogDisplay::Instance().AddEntry("[OK] Here we go!");
|
||||||
|
|
||||||
// create the log window
|
// create the log window
|
||||||
CLogWindow::Instance().Init();
|
CLogWindow::Instance().Init();
|
||||||
|
|
Binary file not shown.
|
@ -76,6 +76,25 @@ IDirect3DTexture9* g_pcTexture = NULL;
|
||||||
bool g_bPlay = false;
|
bool g_bPlay = false;
|
||||||
double g_dCurrent = 0.;
|
double g_dCurrent = 0.;
|
||||||
|
|
||||||
|
// default pp steps
|
||||||
|
unsigned int ppsteps = aiProcess_CalcTangentSpace | // calculate tangents and bitangents if possible
|
||||||
|
aiProcess_JoinIdenticalVertices | // join identical vertices/ optimize indexing
|
||||||
|
aiProcess_ValidateDataStructure | // perform a full validation of the loader's output
|
||||||
|
aiProcess_ImproveCacheLocality | // improve the cache locality of the output vertices
|
||||||
|
aiProcess_RemoveRedundantMaterials | // remove redundant materials
|
||||||
|
aiProcess_FindDegenerates | // remove degenerated polygons from the import
|
||||||
|
aiProcess_FindInvalidData | // detect invalid model data, such as invalid normal vectors
|
||||||
|
aiProcess_GenUVCoords | // convert spherical, cylindrical, box and planar mapping to proper UVs
|
||||||
|
aiProcess_TransformUVCoords | // preprocess UV transformations (scaling, translation ...)
|
||||||
|
aiProcess_FindInstances | // search for instanced meshes and remove them by references to one master
|
||||||
|
aiProcess_LimitBoneWeights | // limit bone weights to 4 per vertex
|
||||||
|
aiProcess_OptimizeMeshes | // join small meshes, if possible;
|
||||||
|
0;
|
||||||
|
|
||||||
|
unsigned int ppstepsdefault = ppsteps;
|
||||||
|
|
||||||
|
bool nopointslines = false;
|
||||||
|
|
||||||
extern bool g_bWasFlipped /*= false*/;
|
extern bool g_bWasFlipped /*= false*/;
|
||||||
|
|
||||||
aiMatrix4x4 g_mWorld;
|
aiMatrix4x4 g_mWorld;
|
||||||
|
@ -129,31 +148,21 @@ DWORD WINAPI LoadThreadProc(LPVOID lpParameter)
|
||||||
double fCur = (double)timeGetTime();
|
double fCur = (double)timeGetTime();
|
||||||
|
|
||||||
aiSetImportPropertyInteger(AI_CONFIG_IMPORT_TER_MAKE_UVS,1);
|
aiSetImportPropertyInteger(AI_CONFIG_IMPORT_TER_MAKE_UVS,1);
|
||||||
aiSetImportPropertyFloat(AI_CONFIG_PP_GSN_MAX_SMOOTHING_ANGLE,80.f);
|
aiSetImportPropertyFloat(AI_CONFIG_PP_GSN_MAX_SMOOTHING_ANGLE,g_smoothAngle);
|
||||||
|
aiSetImportPropertyInteger(AI_CONFIG_PP_SBP_REMOVE,nopointslines ? aiPrimitiveType_LINE | aiPrimitiveType_POINT : 0 );
|
||||||
|
|
||||||
//aiSetImportPropertyInteger(AI_CONFIG_PP_FD_REMOVE,1);
|
//aiSetImportPropertyInteger(AI_CONFIG_PP_FD_REMOVE,1);
|
||||||
//aiSetImportPropertyInteger(AI_CONFIG_PP_PTV_KEEP_HIERARCHY,1);
|
//aiSetImportPropertyInteger(AI_CONFIG_PP_PTV_KEEP_HIERARCHY,1);
|
||||||
|
|
||||||
// Call ASSIMPs C-API to load the file
|
// Call ASSIMPs C-API to load the file
|
||||||
g_pcAsset->pcScene = (aiScene*)aiImportFile(g_szFileName,
|
g_pcAsset->pcScene = (aiScene*)aiImportFile(g_szFileName,
|
||||||
aiProcess_CalcTangentSpace | // calculate tangents and bitangents if possible
|
|
||||||
aiProcess_JoinIdenticalVertices | // join identical vertices/ optimize indexing
|
ppsteps | /* configurable pp steps */
|
||||||
aiProcess_Triangulate | // triangulate polygons with more than 3 edges
|
|
||||||
aiProcess_GenSmoothNormals | // generate smooth normal vectors if not existing
|
aiProcess_GenSmoothNormals | // generate smooth normal vectors if not existing
|
||||||
aiProcess_ConvertToLeftHanded | // convert everything to D3D left handed space
|
|
||||||
aiProcess_SplitLargeMeshes | // split large, unrenderable meshes into submeshes
|
aiProcess_SplitLargeMeshes | // split large, unrenderable meshes into submeshes
|
||||||
aiProcess_ValidateDataStructure | // perform a full validation of the loader's output
|
aiProcess_Triangulate | // triangulate polygons with more than 3 edges
|
||||||
aiProcess_ImproveCacheLocality | // improve the cache locality of the output vertices
|
aiProcess_ConvertToLeftHanded | // convert everything to D3D left handed space
|
||||||
aiProcess_RemoveRedundantMaterials | // remove redundant materials
|
|
||||||
aiProcess_SortByPType | // make 'clean' meshes which consist of a single typ of primitives
|
aiProcess_SortByPType | // make 'clean' meshes which consist of a single typ of primitives
|
||||||
aiProcess_FindDegenerates | // remove degenerated polygons from the import
|
|
||||||
aiProcess_FindInvalidData | // detect invalid model data, such as invalid normal vectors
|
|
||||||
aiProcess_GenUVCoords | // convert spherical, cylindrical, box and planar mapping to proper UVs
|
|
||||||
aiProcess_TransformUVCoords | // preprocess UV transformations (scaling, translation ...)
|
|
||||||
aiProcess_FindInstances | // search for instanced meshes and remove them by references to one master
|
|
||||||
aiProcess_LimitBoneWeights | // limit bone weights to 4 per vertex
|
|
||||||
aiProcess_OptimizeMeshes | // join small meshes, if possible
|
|
||||||
// aiProcess_OptimizeGraph | // optimize unneeded nodes away
|
|
||||||
// aiProcess_PreTransformVertices |
|
|
||||||
0);
|
0);
|
||||||
|
|
||||||
// get the end time of zje operation, calculate delta t
|
// get the end time of zje operation, calculate delta t
|
||||||
|
|
|
@ -276,7 +276,10 @@ enum EClickPos
|
||||||
extern bool g_bPlay /*= false*/;
|
extern bool g_bPlay /*= false*/;
|
||||||
|
|
||||||
extern double g_dCurrent;
|
extern double g_dCurrent;
|
||||||
extern float g_smoothAngle /*= 90.f*/;
|
extern float g_smoothAngle /*= 80.f*/;
|
||||||
|
|
||||||
|
extern unsigned int ppsteps,ppstepsdefault;
|
||||||
|
extern bool nopointslines;
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif // !! AV_MAIN_H_INCLUDED
|
#endif // !! AV_MAIN_H_INCLUDED
|
|
@ -1,7 +1,6 @@
|
||||||
// Microsoft Visual C++ generated resource script.
|
// Microsoft Visual C++ generated resource script.
|
||||||
//
|
//
|
||||||
#include "resource.h"
|
#include "resource.h"
|
||||||
#include "../../mkutil/revision.h"
|
|
||||||
|
|
||||||
#define APSTUDIO_READONLY_SYMBOLS
|
#define APSTUDIO_READONLY_SYMBOLS
|
||||||
/////////////////////////////////////////////////////////////////////////////
|
/////////////////////////////////////////////////////////////////////////////
|
||||||
|
@ -38,26 +37,24 @@ IDI_ASSIMP_VIEW ICON "../shared/assimp_tools_icon.ico
|
||||||
// Dialog
|
// Dialog
|
||||||
//
|
//
|
||||||
|
|
||||||
IDD_ABOUTBOX DIALOGEX 22, 17, 283, 169
|
IDD_ABOUTBOX DIALOGEX 22, 17, 283, 149
|
||||||
STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | DS_CENTER | WS_CAPTION | WS_SYSMENU
|
STYLE DS_SETFONT | DS_MODALFRAME | DS_CENTER | WS_CAPTION | WS_SYSMENU
|
||||||
CAPTION "About Open Asset Import Library"
|
CAPTION "About Open Asset Import Library"
|
||||||
FONT 10, "MS Shell Dlg", 400, 0, 0x0
|
FONT 9, "Courier New", 400, 0, 0x0
|
||||||
BEGIN
|
BEGIN
|
||||||
LTEXT "Open Asset Import Library (Assimp)",IDC_STATIC,77,13,121,12
|
LTEXT "Open Asset Import Library (Assimp)",IDC_STATIC,30,14,144,9
|
||||||
LTEXT "A free C/C++ library for game && graphics developers. Developed by members of the german game development community www.zfx.info",IDC_STATIC,47,26,204,24
|
LTEXT "A free C/C++ library to read various well-known 3D model formats into a straightforward in-memory format that can be easily read and processed by applications. Licensed under a 3-clause BSD license.",IDC_STATIC,31,34,204,24
|
||||||
LTEXT "Thomas Schulze \t\taka <Schrompf> ",IDC_STATIC,55,80,192,8
|
LTEXT "(c) 2008-2009. Assimp Development Team. See the CREDITS file for a list of all contributors.",IDC_STATIC,30,65,204,23
|
||||||
LTEXT "Kim Kulling \t\t\taka <Kimmi> ",IDC_STATIC,55,92,186,8
|
CONTROL "",IDC_STATIC,"Static",SS_ETCHEDHORZ,0,27,282,1
|
||||||
LTEXT "Rainer Schmidt \t\t\taka <Guru>",IDC_STATIC,55,104,180,8
|
LTEXT "http://assimp.sourceforge.net http://www.zfx.info",IDC_STATIC,31,101,127,22
|
||||||
LTEXT "Alexander Gessler\t\taka <Aramis>",IDC_STATIC,55,68,186,8
|
DEFPUSHBUTTON "Love this library",IDOK,186,110,84,14
|
||||||
CONTROL "",IDC_STATIC,"Static",SS_ETCHEDHORZ,0,60,282,1
|
|
||||||
LTEXT "assimp.sourceforge.net",IDC_STATIC,7,137,78,8
|
|
||||||
DEFPUSHBUTTON "Love this library",IDOK,200,128,67,14
|
|
||||||
CONTROL "",IDC_STATIC,"Static",SS_ETCHEDHORZ,0,148,283,1
|
CONTROL "",IDC_STATIC,"Static",SS_ETCHEDHORZ,0,148,283,1
|
||||||
CONTROL 130,IDC_STATIC,"Static",SS_BITMAP,0,149,514,20
|
CONTROL 130,IDC_STATIC,"Static",SS_BITMAP,0,129,514,20
|
||||||
|
CONTROL "",IDC_STATIC,"Static",SS_ETCHEDHORZ,0,10,281,1
|
||||||
END
|
END
|
||||||
|
|
||||||
IDD_DIALOGMAIN DIALOGEX 0, 0, 594, 380
|
IDD_DIALOGMAIN DIALOGEX 0, 0, 594, 381
|
||||||
STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | DS_CENTER | WS_MINIMIZEBOX | WS_POPUP | WS_CAPTION | WS_SYSMENU
|
STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU
|
||||||
EXSTYLE WS_EX_ACCEPTFILES
|
EXSTYLE WS_EX_ACCEPTFILES
|
||||||
CAPTION "Open Asset Import Library - ModelViewer "
|
CAPTION "Open Asset Import Library - ModelViewer "
|
||||||
MENU IDR_MENU1
|
MENU IDR_MENU1
|
||||||
|
@ -74,9 +71,9 @@ BEGIN
|
||||||
CONTROL "Display normals",IDC_TOGGLENORMALS,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,473,271,65,10
|
CONTROL "Display normals",IDC_TOGGLENORMALS,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,473,271,65,10
|
||||||
CONTROL "Toggle AutoRotate",IDC_AUTOROTATE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,473,348,74,10
|
CONTROL "Toggle AutoRotate",IDC_AUTOROTATE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,473,348,74,10
|
||||||
EDITTEXT IDC_EVERT,504,11,32,12,ES_AUTOHSCROLL | ES_READONLY
|
EDITTEXT IDC_EVERT,504,11,32,12,ES_AUTOHSCROLL | ES_READONLY
|
||||||
EDITTEXT IDC_EFACE,562,11,29,12,ES_AUTOHSCROLL | ES_READONLY
|
EDITTEXT IDC_EFACE,565,11,29,12,ES_AUTOHSCROLL | ES_READONLY
|
||||||
EDITTEXT IDC_EMAT,562,24,29,12,ES_AUTOHSCROLL | ES_READONLY
|
EDITTEXT IDC_EMAT,565,24,29,12,ES_AUTOHSCROLL | ES_READONLY
|
||||||
EDITTEXT IDC_EFPS,562,50,29,12,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,473,368,74,10
|
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,473,281,48,10
|
CONTROL "Two lights",IDC_3LIGHTS,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,473,281,48,10
|
||||||
LTEXT "Time:",IDC_LOADTIME,475,51,29,8
|
LTEXT "Time:",IDC_LOADTIME,475,51,29,8
|
||||||
|
@ -101,16 +98,16 @@ BEGIN
|
||||||
CONTROL 148,IDC_STATIC,"Static",SS_BITMAP | SS_CENTERIMAGE,470,229,114,9
|
CONTROL 148,IDC_STATIC,"Static",SS_BITMAP | SS_CENTERIMAGE,470,229,114,9
|
||||||
CONTROL 147,IDC_STATIC,"Static",SS_BITMAP | SS_CENTERIMAGE,470,336,114,9
|
CONTROL 147,IDC_STATIC,"Static",SS_BITMAP | SS_CENTERIMAGE,470,336,114,9
|
||||||
CONTROL 146,IDC_STATIC,"Static",SS_BITMAP | SS_CENTERIMAGE,470,65,114,9
|
CONTROL 146,IDC_STATIC,"Static",SS_BITMAP | SS_CENTERIMAGE,470,65,114,9
|
||||||
CONTROL "",IDC_STATIC,"Static",SS_ETCHEDVERT,469,0,1,380
|
CONTROL "",IDC_STATIC,"Static",SS_ETCHEDVERT,469,0,1,381
|
||||||
CONTROL 149,IDC_STATIC,"Static",SS_BITMAP | SS_CENTERIMAGE,584,0,10,9
|
CONTROL 149,IDC_STATIC,"Static",SS_BITMAP | SS_CENTERIMAGE,584,0,10,9
|
||||||
CONTROL 149,IDC_STATIC,"Static",SS_BITMAP | SS_CENTERIMAGE,584,65,10,9
|
CONTROL 149,IDC_STATIC,"Static",SS_BITMAP | SS_CENTERIMAGE,584,65,10,9
|
||||||
CONTROL 149,IDC_STATIC,"Static",SS_BITMAP | SS_CENTERIMAGE,583,229,10,9
|
CONTROL 149,IDC_STATIC,"Static",SS_BITMAP | SS_CENTERIMAGE,584,229,10,9
|
||||||
CONTROL 149,IDC_STATIC,"Static",SS_BITMAP | SS_CENTERIMAGE,584,336,10,9
|
CONTROL 149,IDC_STATIC,"Static",SS_BITMAP | SS_CENTERIMAGE,584,336,10,9
|
||||||
LTEXT "Nodes:",IDC_NUMNODES,476,26,24,8
|
LTEXT "Nodes:",IDC_NUMNODES,476,26,24,8
|
||||||
EDITTEXT IDC_ENODEWND,504,24,32,12,ES_AUTOHSCROLL | ES_READONLY
|
EDITTEXT IDC_ENODEWND,504,24,32,12,ES_AUTOHSCROLL | ES_READONLY
|
||||||
CONTROL "",IDC_TREE1,"SysTreeView32",TVS_HASBUTTONS | TVS_HASLINES | TVS_SHOWSELALWAYS | WS_BORDER | WS_TABSTOP,470,74,123,155
|
CONTROL "",IDC_TREE1,"SysTreeView32",TVS_HASBUTTONS | TVS_HASLINES | TVS_SHOWSELALWAYS | WS_BORDER | WS_TABSTOP,471,74,123,155
|
||||||
LTEXT "Mesh:",IDC_NUMMESHES,540,39,20,8
|
LTEXT "Mesh:",IDC_NUMMESHES,540,39,20,8
|
||||||
EDITTEXT IDC_EMESH,562,37,29,12,ES_AUTOHSCROLL | ES_READONLY
|
EDITTEXT IDC_EMESH,565,37,29,12,ES_AUTOHSCROLL | ES_READONLY
|
||||||
CONTROL "",IDC_STATIC,"Static",SS_ETCHEDVERT,567,238,1,93
|
CONTROL "",IDC_STATIC,"Static",SS_ETCHEDVERT,567,238,1,93
|
||||||
CONTROL "Button1",IDC_LCOLOR1,"Button",BS_OWNERDRAW | WS_TABSTOP,570,242,21,17
|
CONTROL "Button1",IDC_LCOLOR1,"Button",BS_OWNERDRAW | WS_TABSTOP,570,242,21,17
|
||||||
CONTROL "Button1",IDC_LCOLOR2,"Button",BS_OWNERDRAW | WS_TABSTOP,570,262,21,17
|
CONTROL "Button1",IDC_LCOLOR2,"Button",BS_OWNERDRAW | WS_TABSTOP,570,262,21,17
|
||||||
|
@ -156,18 +153,20 @@ BEGIN
|
||||||
CONTROL "",IDC_EDIT1,"RichEdit20A",ES_MULTILINE | ES_AUTOVSCROLL | ES_READONLY | ES_NUMBER | WS_VSCROLL | WS_TABSTOP,3,4,358,174,WS_EX_STATICEDGE
|
CONTROL "",IDC_EDIT1,"RichEdit20A",ES_MULTILINE | ES_AUTOVSCROLL | ES_READONLY | ES_NUMBER | WS_VSCROLL | WS_TABSTOP,3,4,358,174,WS_EX_STATICEDGE
|
||||||
END
|
END
|
||||||
|
|
||||||
IDD_DIALOGSMOOTH DIALOGEX 0, 0, 253, 86
|
IDD_DIALOGSMOOTH DIALOGEX 0, 0, 278, 141
|
||||||
STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | WS_POPUP | WS_CAPTION | WS_SYSMENU
|
STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | WS_POPUP | WS_CAPTION | WS_SYSMENU
|
||||||
CAPTION "Set smooth limit "
|
CAPTION "Set smooth limit "
|
||||||
FONT 8, "MS Shell Dlg", 400, 0, 0x1
|
FONT 8, "MS Shell Dlg", 400, 0, 0x1
|
||||||
BEGIN
|
BEGIN
|
||||||
DEFPUSHBUTTON "OK",IDOK,195,53,50,14
|
DEFPUSHBUTTON "OK",IDOK,213,94,50,14
|
||||||
PUSHBUTTON "Cancel",IDCANCEL,143,53,50,14
|
PUSHBUTTON "Cancel",IDCANCEL,161,94,50,14
|
||||||
EDITTEXT IDC_EDITSM,107,7,139,14,ES_AUTOHSCROLL | ES_NUMBER
|
EDITTEXT IDC_EDITSM,99,7,175,14,ES_AUTOHSCROLL | ES_NUMBER
|
||||||
LTEXT "Angle limit (in degrees):",IDC_STATIC,13,10,76,8
|
LTEXT "Angle limit (in degrees):",IDC_STATIC,13,10,76,8
|
||||||
LTEXT "The angle limit defines the maximum angle that may be between two adjacent face normals that they're smoothed together.",IDC_STATIC,13,27,231,19
|
LTEXT "The angle limit defines the maximum angle that may be between two adjacent face normals that they're smoothed together.",IDC_STATIC,13,31,253,19
|
||||||
LTEXT "NOTE: use 'Smooth normals' to update the normals to the new settings",IDC_STATIC,12,75,230,8
|
CONTROL "",IDC_STATIC,"Static",SS_ETCHEDHORZ,0,113,278,1
|
||||||
CONTROL "",IDC_STATIC,"Static",SS_ETCHEDHORZ,7,73,239,1
|
LTEXT "This setting is also used during import, but it can be overriden by single model importers to match the original look of a model as closely as possible. Examples include 3DS, ASE and LWO, all of them relying on smoothing groups and their own angle limits. ",IDC_STATIC,13,51,254,33
|
||||||
|
LTEXT "NOTE: New settings don't take effect immediately, use 'Smooth Normals' or 'Reload' to update the model.",IDC_STATIC,14,118,254,22
|
||||||
|
CONTROL "",IDC_STATIC,"Static",SS_ETCHEDHORZ,0,90,277,1
|
||||||
END
|
END
|
||||||
|
|
||||||
|
|
||||||
|
@ -205,8 +204,8 @@ END
|
||||||
//
|
//
|
||||||
|
|
||||||
VS_VERSION_INFO VERSIONINFO
|
VS_VERSION_INFO VERSIONINFO
|
||||||
FILEVERSION 1,0,SVNRevision,0
|
FILEVERSION 1,0,412,0
|
||||||
PRODUCTVERSION 1,0,SVNRevision,1
|
PRODUCTVERSION 1,0,412,1
|
||||||
FILEFLAGSMASK 0x17L
|
FILEFLAGSMASK 0x17L
|
||||||
#ifdef _DEBUG
|
#ifdef _DEBUG
|
||||||
FILEFLAGS 0x1L
|
FILEFLAGS 0x1L
|
||||||
|
@ -249,7 +248,7 @@ BEGIN
|
||||||
IDD_ABOUTBOX, DIALOG
|
IDD_ABOUTBOX, DIALOG
|
||||||
BEGIN
|
BEGIN
|
||||||
TOPMARGIN, 1
|
TOPMARGIN, 1
|
||||||
BOTTOMMARGIN, 158
|
BOTTOMMARGIN, 138
|
||||||
END
|
END
|
||||||
|
|
||||||
IDD_LOADDIALOG, DIALOG
|
IDD_LOADDIALOG, DIALOG
|
||||||
|
@ -277,9 +276,9 @@ BEGIN
|
||||||
IDD_DIALOGSMOOTH, DIALOG
|
IDD_DIALOGSMOOTH, DIALOG
|
||||||
BEGIN
|
BEGIN
|
||||||
LEFTMARGIN, 7
|
LEFTMARGIN, 7
|
||||||
RIGHTMARGIN, 246
|
RIGHTMARGIN, 271
|
||||||
TOPMARGIN, 7
|
TOPMARGIN, 7
|
||||||
BOTTOMMARGIN, 79
|
BOTTOMMARGIN, 134
|
||||||
END
|
END
|
||||||
END
|
END
|
||||||
#endif // APSTUDIO_INVOKED
|
#endif // APSTUDIO_INVOKED
|
||||||
|
@ -313,8 +312,36 @@ BEGIN
|
||||||
BEGIN
|
BEGIN
|
||||||
MENUITEM "Open Asset", ID_VIEWER_OPEN
|
MENUITEM "Open Asset", ID_VIEWER_OPEN
|
||||||
MENUITEM "Close Asset", ID_VIEWER_CLOSEASSET
|
MENUITEM "Close Asset", ID_VIEWER_CLOSEASSET
|
||||||
|
MENUITEM "Reload", ID_VIEWER_RELOAD
|
||||||
|
POPUP "Import settings"
|
||||||
|
BEGIN
|
||||||
|
MENUITEM "Calculate Tangent Space", ID_VIEWER_PP_CTS
|
||||||
|
MENUITEM "Compute Indexed Meshes", ID_VIEWER_PP_JIV
|
||||||
|
MENUITEM "Optimize Materials", ID_VIEWER_PP_RRM2
|
||||||
|
MENUITEM "Optimize Meshes", ID_VIEWER_PP_OM
|
||||||
|
MENUITEM "Optimize Scenegraph", ID_VIEWER_PP_OG
|
||||||
|
MENUITEM "Find Instanced Meshes", ID_VIEWER_PP_FIM
|
||||||
|
MENUITEM "Run Full Validation", ID_VIEWER_PP_VDS
|
||||||
|
MENUITEM "Pretransform Vertices", ID_VIEWER_PP_PTV
|
||||||
|
MENUITEM "VCache Optimization", ID_VIEWER_PP_ICL
|
||||||
|
MENUITEM "Fix Infacing Normals", ID_VIEWER_PP_FIN
|
||||||
|
MENUITEM "Find Degenerates", ID_VIEWER_PP_FD
|
||||||
|
MENUITEM "Find Invalid Data", ID_VIEWER_PP_FID
|
||||||
|
MENUITEM "Generate UV Coords", ID_VIEWER_PP_GUV
|
||||||
|
MENUITEM "Transform UV Coords", ID_VIEWER_PP_TUV
|
||||||
|
MENUITEM "Remove Lines and Points", ID_VIEWER_PP_RLINE_PNT, GRAYED
|
||||||
|
MENUITEM SEPARATOR
|
||||||
|
MENUITEM "(required) Triangulate", ID_VIEWER_PP_JIV, GRAYED
|
||||||
|
MENUITEM "(required) Limit Bone Weights", ID_VIEWER_PP_JIV, GRAYED
|
||||||
|
MENUITEM "(required) Split Large Meshes", ID_VIEWER_PP_JIV, GRAYED
|
||||||
|
MENUITEM "(required) Sort by primitive type", ID_VIEWER_PP_JIV, GRAYED
|
||||||
|
MENUITEM "(required) Convert to Left-Handed", ID_VIEWER_PP_JIV, GRAYED
|
||||||
|
MENUITEM SEPARATOR
|
||||||
|
MENUITEM "Reset to default", ID_IMPORTSETTINGS_RESETTODEFAULT
|
||||||
|
MENUITEM "Open Post-Process Short Reference", ID_IMPORTSETTINGS_OPENPOST
|
||||||
|
END
|
||||||
MENUITEM SEPARATOR
|
MENUITEM SEPARATOR
|
||||||
MENUITEM "Screenshot", ID_VIEWER_SAVESCREENSHOTTOFILE
|
MENUITEM "Save Screenshot", ID_VIEWER_SAVESCREENSHOTTOFILE
|
||||||
MENUITEM "Reset view", ID_VIEWER_RESETVIEW
|
MENUITEM "Reset view", ID_VIEWER_RESETVIEW
|
||||||
MENUITEM "Memory consumption", ID_VIEWER_MEMORYCONSUMATION
|
MENUITEM "Memory consumption", ID_VIEWER_MEMORYCONSUMATION
|
||||||
MENUITEM SEPARATOR
|
MENUITEM SEPARATOR
|
||||||
|
@ -352,12 +379,15 @@ BEGIN
|
||||||
BEGIN
|
BEGIN
|
||||||
POPUP "Feedback"
|
POPUP "Feedback"
|
||||||
BEGIN
|
BEGIN
|
||||||
MENUITEM "Report bug", ID_FEEDBACK_GH
|
MENUITEM "Report bug", ID_REPORTBUG
|
||||||
MENUITEM "Feature request", ID_FEEDBACK_FEATUREREQUEST
|
MENUITEM "Feature request/discuss", ID_FR
|
||||||
END
|
END
|
||||||
MENUITEM "Help", ID__HELP
|
MENUITEM "Help", ID__HELP
|
||||||
MENUITEM SEPARATOR
|
MENUITEM SEPARATOR
|
||||||
MENUITEM "About", ID__ABOUT
|
MENUITEM "About", ID__ABOUT
|
||||||
|
MENUITEM SEPARATOR
|
||||||
|
MENUITEM "Website", ID__WEBSITE
|
||||||
|
MENUITEM "SF.net Project Page", ID__WEBSITESF
|
||||||
END
|
END
|
||||||
END
|
END
|
||||||
|
|
||||||
|
|
|
@ -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 412
|
||||||
#define IDC_CHECK1 1000
|
#define IDC_CHECK1 1000
|
||||||
#define IDC_TOGGLEMS 1000
|
#define IDC_TOGGLEMS 1000
|
||||||
#define IDC_CHECK2 1001
|
#define IDC_CHECK2 1001
|
||||||
|
@ -187,6 +188,33 @@
|
||||||
#define ID_SMOOTHANGLE_120 32849
|
#define ID_SMOOTHANGLE_120 32849
|
||||||
#define ID_SMOOTHANGLE_NONE 32850
|
#define ID_SMOOTHANGLE_NONE 32850
|
||||||
#define ID_TOOLS_SETANGLELIMIT 32851
|
#define ID_TOOLS_SETANGLELIMIT 32851
|
||||||
|
#define ID_VIEWER_PP_JIV 32852
|
||||||
|
#define ID_VIEWER_PP_RRM 32852
|
||||||
|
#define ID_VIEWER_PP_OM 32853
|
||||||
|
#define ID_VIEWER_PP_OG 32854
|
||||||
|
#define ID_VIEWER_PP_FIM 32855
|
||||||
|
#define ID_VIEWER_PP_VDS 32856
|
||||||
|
#define ID_VIEWER_PP_PTV 32857
|
||||||
|
#define ID_VIEWER_PP_ICL 32858
|
||||||
|
#define ID_VIEWER_PP_FIN 32859
|
||||||
|
#define ID_VIEWER_PP_FD 32860
|
||||||
|
#define ID_VIEWER_PP_FID 32861
|
||||||
|
#define ID_VIEWER_PP_GUV 32862
|
||||||
|
#define ID_VIEWER_PP_TUV 32863
|
||||||
|
#define ID_VIEWER_PP_RLINE_PNT 32864
|
||||||
|
#define ID_REPORTBUG 32865
|
||||||
|
#define ID_FR 32866
|
||||||
|
#define ID__WEBSITE 32867
|
||||||
|
#define ID__SF 32868
|
||||||
|
#define ID__ 32869
|
||||||
|
#define ID__WEBSITESF 32870
|
||||||
|
#define ID_IMPORTSETTINGS_CALCULATETANGENTSPACE 32871
|
||||||
|
#define ID_VIEWER_CTS 32872
|
||||||
|
#define ID_VIEWER_PP_CTS 32873
|
||||||
|
#define ID_VIEWER_RELOAD 32874
|
||||||
|
#define ID_VIEWER_PP_RRM2 32875
|
||||||
|
#define ID_IMPORTSETTINGS_RESETTODEFAULT 32876
|
||||||
|
#define ID_IMPORTSETTINGS_OPENPOST 32877
|
||||||
#define IDC_STATIC -1
|
#define IDC_STATIC -1
|
||||||
|
|
||||||
// Next default values for new objects
|
// Next default values for new objects
|
||||||
|
@ -195,7 +223,7 @@
|
||||||
#ifndef APSTUDIO_READONLY_SYMBOLS
|
#ifndef APSTUDIO_READONLY_SYMBOLS
|
||||||
#define _APS_NO_MFC 1
|
#define _APS_NO_MFC 1
|
||||||
#define _APS_NEXT_RESOURCE_VALUE 160
|
#define _APS_NEXT_RESOURCE_VALUE 160
|
||||||
#define _APS_NEXT_COMMAND_VALUE 32852
|
#define _APS_NEXT_COMMAND_VALUE 32878
|
||||||
#define _APS_NEXT_CONTROL_VALUE 1057
|
#define _APS_NEXT_CONTROL_VALUE 1057
|
||||||
#define _APS_NEXT_SYMED_VALUE 110
|
#define _APS_NEXT_SYMED_VALUE 110
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -1613,6 +1613,10 @@
|
||||||
Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav"
|
Filter="rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav"
|
||||||
UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
|
UniqueIdentifier="{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}"
|
||||||
>
|
>
|
||||||
|
<File
|
||||||
|
RelativePath="..\..\tools\shared\assimp_tools_icon.ico"
|
||||||
|
>
|
||||||
|
</File>
|
||||||
<File
|
<File
|
||||||
RelativePath="..\..\tools\assimp_view\assimp_view.ico"
|
RelativePath="..\..\tools\assimp_view\assimp_view.ico"
|
||||||
>
|
>
|
||||||
|
|
Loading…
Reference in New Issue