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
|
||||
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
|
||||
cd ..\mkutil
|
||||
|
||||
echo #define SVNRevision > revision.h
|
||||
echo #define SVNRevision > tmpfile.txt
|
||||
|
||||
if exist tmpfile.txt del /q tmpfile.txt
|
||||
for /f "delims=" %%l in (revision.h) Do (
|
||||
echo %%l %addtext% >> tmpfile.txt
|
||||
if exist revision.h del /q revision.h
|
||||
for /f "delims=" %%l in (tmpfile.txt) Do (
|
||||
echo %%l %addtext% >> revision.h
|
||||
)
|
||||
del /q revision.h
|
||||
ren tmpfile.txt revision.h
|
||||
del /q tmpfile.txt
|
||||
|
||||
|
||||
|
||||
|
|
|
@ -87,7 +87,7 @@ private:
|
|||
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[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:
|
||||
|
|
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 (!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
|
||||
RECT sCopy;
|
||||
|
|
|
@ -80,15 +80,22 @@ void MakeFileAssociations()
|
|||
|
||||
HKEY g_hRegistry;
|
||||
|
||||
aiString list;
|
||||
aiString list, tmp;
|
||||
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);
|
||||
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);
|
||||
RegCloseKey(g_hRegistry);
|
||||
|
@ -100,11 +107,7 @@ void MakeFileAssociations()
|
|||
CLogDisplay::Instance().AddEntry("[OK] File assocations have been registered",
|
||||
D3DCOLOR_ARGB(0xFF,0,0xFF,0));
|
||||
|
||||
aiString sz;
|
||||
aiGetExtensionList(&sz);
|
||||
CLogDisplay::Instance().AddEntry(sz.data,
|
||||
D3DCOLOR_ARGB(0xFF,0,0xFF,0));
|
||||
return;
|
||||
CLogDisplay::Instance().AddEntry(tmp.data,D3DCOLOR_ARGB(0xFF,0,0xFF,0));
|
||||
}
|
||||
|
||||
|
||||
|
@ -192,6 +195,16 @@ void LoadCheckerPatternColors()
|
|||
(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
|
||||
//-------------------------------------------------------------------------------
|
||||
|
@ -203,7 +216,6 @@ void ToggleNormals()
|
|||
DWORD dwValue = 0;
|
||||
if (g_sOptions.bRenderNormals)dwValue = 1;
|
||||
RegSetValueExA(g_hRegistry,"RenderNormals",0,REG_DWORD,(const BYTE*)&dwValue,4);
|
||||
UpdateWindow(g_hDlg);
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------------------
|
||||
|
@ -232,7 +244,6 @@ void ToggleFPSView()
|
|||
DWORD dwValue = 0;
|
||||
if (g_bFPSView)dwValue = 1;
|
||||
RegSetValueExA(g_hRegistry,"FPSView",0,REG_DWORD,(const BYTE*)&dwValue,4);
|
||||
UpdateWindow(g_hDlg);
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------------------
|
||||
|
@ -246,7 +257,6 @@ void ToggleMultipleLights()
|
|||
DWORD dwValue = 0;
|
||||
if (g_sOptions.b3Lights)dwValue = 1;
|
||||
RegSetValueExA(g_hRegistry,"MultipleLights",0,REG_DWORD,(const BYTE*)&dwValue,4);
|
||||
UpdateWindow(g_hDlg);
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------------------
|
||||
|
@ -260,7 +270,6 @@ void ToggleLightRotate()
|
|||
DWORD dwValue = 0;
|
||||
if (g_sOptions.bLightRotate)dwValue = 1;
|
||||
RegSetValueExA(g_hRegistry,"LightRotate",0,REG_DWORD,(const BYTE*)&dwValue,4);
|
||||
UpdateWindow(g_hDlg);
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------------------
|
||||
|
@ -274,7 +283,6 @@ void ToggleLowQuality()
|
|||
DWORD dwValue = 0;
|
||||
if (g_sOptions.bLowQuality)dwValue = 1;
|
||||
RegSetValueExA(g_hRegistry,"LowQuality",0,REG_DWORD,(const BYTE*)&dwValue,4);
|
||||
UpdateWindow(g_hDlg);
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------------------
|
||||
|
@ -291,7 +299,6 @@ void ToggleSpecular()
|
|||
|
||||
// update all specular materials
|
||||
CMaterialManager::Instance().UpdateSpecularMaterials();
|
||||
UpdateWindow(g_hDlg);
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------------------
|
||||
|
@ -308,7 +315,6 @@ void ToggleMats()
|
|||
|
||||
// update all specular materials
|
||||
CMaterialManager::Instance().UpdateSpecularMaterials();
|
||||
UpdateWindow(g_hDlg);
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------------------
|
||||
|
@ -350,7 +356,6 @@ void ToggleWireFrame()
|
|||
DWORD dwValue = 0;
|
||||
if (RenderOptions::WIREFRAME == g_sOptions.eDrawMode)dwValue = 1;
|
||||
RegSetValueExA(g_hRegistry,"Wireframe",0,REG_DWORD,(const BYTE*)&dwValue,4);
|
||||
UpdateWindow(g_hDlg);
|
||||
}
|
||||
|
||||
|
||||
|
@ -386,7 +391,6 @@ void ToggleMS()
|
|||
DWORD dwValue = 0;
|
||||
if (g_sOptions.bMultiSample)dwValue = 1;
|
||||
RegSetValueExA(g_hRegistry,"MultiSampling",0,REG_DWORD,(const BYTE*)&dwValue,4);
|
||||
UpdateWindow(g_hDlg);
|
||||
}
|
||||
|
||||
//-------------------------------------------------------------------------------
|
||||
|
@ -958,6 +962,28 @@ void OpenAsset()
|
|||
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
|
||||
//-------------------------------------------------------------------------------
|
||||
|
@ -1149,6 +1175,12 @@ void InitUI()
|
|||
g_sOptions.eDrawMode = RenderOptions::WIREFRAME;
|
||||
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();
|
||||
|
||||
SendDlgItemMessage(g_hDlg,IDC_SLIDERANIM,TBM_SETRANGEMIN,TRUE,0);
|
||||
|
@ -1649,6 +1681,7 @@ INT_PTR CALLBACK MessageProc(HWND hwndDlg,UINT uMsg,
|
|||
|
||||
case WM_COMMAND:
|
||||
|
||||
HMENU hMenu = GetMenu(g_hDlg);
|
||||
if (ID_VIEWER_QUIT == LOWORD(wParam))
|
||||
{
|
||||
PostQuitMessage(0);
|
||||
|
@ -1680,6 +1713,22 @@ INT_PTR CALLBACK MessageProc(HWND hwndDlg,UINT uMsg,
|
|||
{
|
||||
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))
|
||||
{
|
||||
CLogWindow::Instance().Clear();
|
||||
|
@ -1727,34 +1776,122 @@ INT_PTR CALLBACK MessageProc(HWND hwndDlg,UINT uMsg,
|
|||
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))
|
||||
{
|
||||
if (g_pcAsset && g_pcAsset->pcScene)
|
||||
{
|
||||
g_pcAsset->SetNormalSet(AssimpView::AssetHelper::ORIGINAL);
|
||||
|
||||
HMENU hMenu = GetMenu(g_hDlg);
|
||||
ModifyMenu(hMenu,ID_TOOLS_ORIGINALNORMALS,
|
||||
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");
|
||||
CheckMenuItem(hMenu,ID_TOOLS_ORIGINALNORMALS,MF_BYCOMMAND | MF_CHECKED);
|
||||
CheckMenuItem(hMenu,ID_TOOLS_HARDNORMALS,MF_BYCOMMAND | MF_UNCHECKED);
|
||||
CheckMenuItem(hMenu,ID_TOOLS_SMOOTHNORMALS,MF_BYCOMMAND | MF_UNCHECKED);
|
||||
}
|
||||
}
|
||||
|
||||
else if (ID_TOOLS_SMOOTHNORMALS == LOWORD(wParam))
|
||||
{
|
||||
if (g_pcAsset && g_pcAsset->pcScene)
|
||||
{
|
||||
g_pcAsset->SetNormalSet(AssimpView::AssetHelper::SMOOTH);
|
||||
|
||||
HMENU hMenu = GetMenu(g_hDlg);
|
||||
ModifyMenu(hMenu,ID_TOOLS_SMOOTHNORMALS,
|
||||
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");
|
||||
CheckMenuItem(hMenu,ID_TOOLS_ORIGINALNORMALS,MF_BYCOMMAND | MF_UNCHECKED);
|
||||
CheckMenuItem(hMenu,ID_TOOLS_HARDNORMALS,MF_BYCOMMAND | MF_UNCHECKED);
|
||||
CheckMenuItem(hMenu,ID_TOOLS_SMOOTHNORMALS,MF_BYCOMMAND | MF_CHECKED);
|
||||
}
|
||||
}
|
||||
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)
|
||||
{
|
||||
g_pcAsset->SetNormalSet(AssimpView::AssetHelper::HARD);
|
||||
|
||||
HMENU hMenu = GetMenu(g_hDlg);
|
||||
ModifyMenu(hMenu,ID_TOOLS_HARDNORMALS,
|
||||
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");
|
||||
CheckMenuItem(hMenu,ID_TOOLS_ORIGINALNORMALS,MF_BYCOMMAND | MF_UNCHECKED);
|
||||
CheckMenuItem(hMenu,ID_TOOLS_HARDNORMALS,MF_BYCOMMAND | MF_CHECKED);
|
||||
CheckMenuItem(hMenu,ID_TOOLS_SMOOTHNORMALS,MF_BYCOMMAND | MF_UNCHECKED);
|
||||
}
|
||||
}
|
||||
else if (ID_TOOLS_STEREOVIEW == LOWORD(wParam))
|
||||
|
@ -2107,7 +2239,7 @@ int APIENTRY _tWinMain(HINSTANCE hInstance,
|
|||
"ASSIMP ModelViewer",MB_OK);
|
||||
return -4;
|
||||
}
|
||||
CLogDisplay::Instance().AddEntry("[OK] assimp_view has been initialized successfully");
|
||||
CLogDisplay::Instance().AddEntry("[OK] Here we go!");
|
||||
|
||||
// create the log window
|
||||
CLogWindow::Instance().Init();
|
||||
|
|
Binary file not shown.
|
@ -76,6 +76,25 @@ IDirect3DTexture9* g_pcTexture = NULL;
|
|||
bool g_bPlay = false;
|
||||
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*/;
|
||||
|
||||
aiMatrix4x4 g_mWorld;
|
||||
|
@ -129,31 +148,21 @@ DWORD WINAPI LoadThreadProc(LPVOID lpParameter)
|
|||
double fCur = (double)timeGetTime();
|
||||
|
||||
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_PTV_KEEP_HIERARCHY,1);
|
||||
|
||||
// Call ASSIMPs C-API to load the file
|
||||
g_pcAsset->pcScene = (aiScene*)aiImportFile(g_szFileName,
|
||||
aiProcess_CalcTangentSpace | // calculate tangents and bitangents if possible
|
||||
aiProcess_JoinIdenticalVertices | // join identical vertices/ optimize indexing
|
||||
aiProcess_Triangulate | // triangulate polygons with more than 3 edges
|
||||
|
||||
ppsteps | /* configurable pp steps */
|
||||
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_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_Triangulate | // triangulate polygons with more than 3 edges
|
||||
aiProcess_ConvertToLeftHanded | // convert everything to D3D left handed space
|
||||
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);
|
||||
|
||||
// get the end time of zje operation, calculate delta t
|
||||
|
|
|
@ -276,7 +276,10 @@ enum EClickPos
|
|||
extern bool g_bPlay /*= false*/;
|
||||
|
||||
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
|
|
@ -1,7 +1,6 @@
|
|||
// Microsoft Visual C++ generated resource script.
|
||||
//
|
||||
#include "resource.h"
|
||||
#include "../../mkutil/revision.h"
|
||||
|
||||
#define APSTUDIO_READONLY_SYMBOLS
|
||||
/////////////////////////////////////////////////////////////////////////////
|
||||
|
@ -38,26 +37,24 @@ IDI_ASSIMP_VIEW ICON "../shared/assimp_tools_icon.ico
|
|||
// Dialog
|
||||
//
|
||||
|
||||
IDD_ABOUTBOX DIALOGEX 22, 17, 283, 169
|
||||
STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | DS_CENTER | WS_CAPTION | WS_SYSMENU
|
||||
IDD_ABOUTBOX DIALOGEX 22, 17, 283, 149
|
||||
STYLE DS_SETFONT | DS_MODALFRAME | DS_CENTER | WS_CAPTION | WS_SYSMENU
|
||||
CAPTION "About Open Asset Import Library"
|
||||
FONT 10, "MS Shell Dlg", 400, 0, 0x0
|
||||
FONT 9, "Courier New", 400, 0, 0x0
|
||||
BEGIN
|
||||
LTEXT "Open Asset Import Library (Assimp)",IDC_STATIC,77,13,121,12
|
||||
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 "Thomas Schulze \t\taka <Schrompf> ",IDC_STATIC,55,80,192,8
|
||||
LTEXT "Kim Kulling \t\t\taka <Kimmi> ",IDC_STATIC,55,92,186,8
|
||||
LTEXT "Rainer Schmidt \t\t\taka <Guru>",IDC_STATIC,55,104,180,8
|
||||
LTEXT "Alexander Gessler\t\taka <Aramis>",IDC_STATIC,55,68,186,8
|
||||
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
|
||||
LTEXT "Open Asset Import Library (Assimp)",IDC_STATIC,30,14,144,9
|
||||
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 "(c) 2008-2009. Assimp Development Team. See the CREDITS file for a list of all contributors.",IDC_STATIC,30,65,204,23
|
||||
CONTROL "",IDC_STATIC,"Static",SS_ETCHEDHORZ,0,27,282,1
|
||||
LTEXT "http://assimp.sourceforge.net http://www.zfx.info",IDC_STATIC,31,101,127,22
|
||||
DEFPUSHBUTTON "Love this library",IDOK,186,110,84,14
|
||||
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
|
||||
|
||||
IDD_DIALOGMAIN DIALOGEX 0, 0, 594, 380
|
||||
STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | DS_CENTER | WS_MINIMIZEBOX | WS_POPUP | WS_CAPTION | WS_SYSMENU
|
||||
IDD_DIALOGMAIN DIALOGEX 0, 0, 594, 381
|
||||
STYLE DS_SETFONT | DS_MODALFRAME | DS_FIXEDSYS | DS_CENTER | WS_POPUP | WS_CAPTION | WS_SYSMENU
|
||||
EXSTYLE WS_EX_ACCEPTFILES
|
||||
CAPTION "Open Asset Import Library - ModelViewer "
|
||||
MENU IDR_MENU1
|
||||
|
@ -74,9 +71,9 @@ BEGIN
|
|||
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
|
||||
EDITTEXT IDC_EVERT,504,11,32,12,ES_AUTOHSCROLL | ES_READONLY
|
||||
EDITTEXT IDC_EFACE,562,11,29,12,ES_AUTOHSCROLL | ES_READONLY
|
||||
EDITTEXT IDC_EMAT,562,24,29,12,ES_AUTOHSCROLL | ES_READONLY
|
||||
EDITTEXT IDC_EFPS,562,50,29,12,ES_AUTOHSCROLL | ES_READONLY
|
||||
EDITTEXT IDC_EFACE,565,11,29,12,ES_AUTOHSCROLL | ES_READONLY
|
||||
EDITTEXT IDC_EMAT,565,24,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 "Two lights",IDC_3LIGHTS,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,473,281,48,10
|
||||
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 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 "",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,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
|
||||
LTEXT "Nodes:",IDC_NUMNODES,476,26,24,8
|
||||
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
|
||||
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 "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
|
||||
|
@ -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
|
||||
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
|
||||
CAPTION "Set smooth limit "
|
||||
FONT 8, "MS Shell Dlg", 400, 0, 0x1
|
||||
BEGIN
|
||||
DEFPUSHBUTTON "OK",IDOK,195,53,50,14
|
||||
PUSHBUTTON "Cancel",IDCANCEL,143,53,50,14
|
||||
EDITTEXT IDC_EDITSM,107,7,139,14,ES_AUTOHSCROLL | ES_NUMBER
|
||||
DEFPUSHBUTTON "OK",IDOK,213,94,50,14
|
||||
PUSHBUTTON "Cancel",IDCANCEL,161,94,50,14
|
||||
EDITTEXT IDC_EDITSM,99,7,175,14,ES_AUTOHSCROLL | ES_NUMBER
|
||||
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 "NOTE: use 'Smooth normals' to update the normals to the new settings",IDC_STATIC,12,75,230,8
|
||||
CONTROL "",IDC_STATIC,"Static",SS_ETCHEDHORZ,7,73,239,1
|
||||
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
|
||||
CONTROL "",IDC_STATIC,"Static",SS_ETCHEDHORZ,0,113,278,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
|
||||
|
||||
|
||||
|
@ -205,8 +204,8 @@ END
|
|||
//
|
||||
|
||||
VS_VERSION_INFO VERSIONINFO
|
||||
FILEVERSION 1,0,SVNRevision,0
|
||||
PRODUCTVERSION 1,0,SVNRevision,1
|
||||
FILEVERSION 1,0,412,0
|
||||
PRODUCTVERSION 1,0,412,1
|
||||
FILEFLAGSMASK 0x17L
|
||||
#ifdef _DEBUG
|
||||
FILEFLAGS 0x1L
|
||||
|
@ -249,7 +248,7 @@ BEGIN
|
|||
IDD_ABOUTBOX, DIALOG
|
||||
BEGIN
|
||||
TOPMARGIN, 1
|
||||
BOTTOMMARGIN, 158
|
||||
BOTTOMMARGIN, 138
|
||||
END
|
||||
|
||||
IDD_LOADDIALOG, DIALOG
|
||||
|
@ -277,9 +276,9 @@ BEGIN
|
|||
IDD_DIALOGSMOOTH, DIALOG
|
||||
BEGIN
|
||||
LEFTMARGIN, 7
|
||||
RIGHTMARGIN, 246
|
||||
RIGHTMARGIN, 271
|
||||
TOPMARGIN, 7
|
||||
BOTTOMMARGIN, 79
|
||||
BOTTOMMARGIN, 134
|
||||
END
|
||||
END
|
||||
#endif // APSTUDIO_INVOKED
|
||||
|
@ -313,8 +312,36 @@ BEGIN
|
|||
BEGIN
|
||||
MENUITEM "Open Asset", ID_VIEWER_OPEN
|
||||
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 "Screenshot", ID_VIEWER_SAVESCREENSHOTTOFILE
|
||||
MENUITEM "Save Screenshot", ID_VIEWER_SAVESCREENSHOTTOFILE
|
||||
MENUITEM "Reset view", ID_VIEWER_RESETVIEW
|
||||
MENUITEM "Memory consumption", ID_VIEWER_MEMORYCONSUMATION
|
||||
MENUITEM SEPARATOR
|
||||
|
@ -352,12 +379,15 @@ BEGIN
|
|||
BEGIN
|
||||
POPUP "Feedback"
|
||||
BEGIN
|
||||
MENUITEM "Report bug", ID_FEEDBACK_GH
|
||||
MENUITEM "Feature request", ID_FEEDBACK_FEATUREREQUEST
|
||||
MENUITEM "Report bug", ID_REPORTBUG
|
||||
MENUITEM "Feature request/discuss", ID_FR
|
||||
END
|
||||
MENUITEM "Help", ID__HELP
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "About", ID__ABOUT
|
||||
MENUITEM SEPARATOR
|
||||
MENUITEM "Website", ID__WEBSITE
|
||||
MENUITEM "SF.net Project Page", ID__WEBSITESF
|
||||
END
|
||||
END
|
||||
|
||||
|
|
|
@ -41,6 +41,7 @@
|
|||
#define IDR_TXPOPUP 156
|
||||
#define IDR_MATPOPUP 157
|
||||
#define IDD_DIALOGSMOOTH 159
|
||||
#define SVNRevision 412
|
||||
#define IDC_CHECK1 1000
|
||||
#define IDC_TOGGLEMS 1000
|
||||
#define IDC_CHECK2 1001
|
||||
|
@ -187,6 +188,33 @@
|
|||
#define ID_SMOOTHANGLE_120 32849
|
||||
#define ID_SMOOTHANGLE_NONE 32850
|
||||
#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
|
||||
|
||||
// Next default values for new objects
|
||||
|
@ -195,7 +223,7 @@
|
|||
#ifndef APSTUDIO_READONLY_SYMBOLS
|
||||
#define _APS_NO_MFC 1
|
||||
#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_SYMED_VALUE 110
|
||||
#endif
|
||||
|
|
|
@ -1613,6 +1613,10 @@
|
|||
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}"
|
||||
>
|
||||
<File
|
||||
RelativePath="..\..\tools\shared\assimp_tools_icon.ico"
|
||||
>
|
||||
</File>
|
||||
<File
|
||||
RelativePath="..\..\tools\assimp_view\assimp_view.ico"
|
||||
>
|
||||
|
|
Loading…
Reference in New Issue