Page 8 of 12

Re: [New Tool] Ogre MeshMagick - First official release

Posted: Mon Mar 23, 2009 2:37 pm
by Beauty
Oh, sorry for missing the previous posts :oops:
Nice to see that my suggestions are still done.

I installed the current OgreCommandLineTools (version 1.6.0) which is linked by the ogre main page:
http://www.ogre3d.org/download/tools
This is the official way to get it. So this should be updated if one of the tools are improved.

If this tool is seperated available somewhere else (as binary) then it would be good to link it on common place - on the main page and in the wiki. Otherwhise it's confusing.

Re: [New Tool] Ogre MeshMagick - First official release

Posted: Mon Mar 23, 2009 3:03 pm
by haffax
The official way is to get it from SVN, as this will always be the most complete and correct version.
The binary in the ogre command line tools are provided for convenience by Sinbad and it is only updated occasionally.

Re: [New Tool] Ogre MeshMagick - First official release

Posted: Fri May 15, 2009 10:27 pm
by andris
Hi,

do you think that MeshMagick could be updated to print the actual vertex/index buffer data? Or am I missing a way how to do that?

Example, have exported a mesh from Blender and need to check uv texture coordinates, since textures display correctly in Blender and not in the engine...

Thanks

Re: [New Tool] Ogre MeshMagick - First official release

Posted: Fri May 15, 2009 11:30 pm
by haffax
andris wrote:Hi,
do you think that MeshMagick could be updated to print the actual vertex/index buffer data? Or am I missing a way how to do that?
There is no functionality for this. While this could be added, I don't see sensible user stories. In your case, you can just look at the mesh.xml file. There all buffer data is visible in textual form and you can check the texture coordinates.

If you just want to check, whether texture coordinates are present, then use the info tool. If the buffer layout has a u(f2) section, then vertex declaration contains 2d texture coords.

Re: [New Tool] Ogre MeshMagick - First official release

Posted: Sat May 16, 2009 12:52 am
by andris
haffax wrote:
andris wrote:Hi,
do you think that MeshMagick could be updated to print the actual vertex/index buffer data? Or am I missing a way how to do that?
There is no functionality for this. While this could be added, I don't see sensible user stories.
Understand
haffax wrote:In your case, you can just look at the mesh.xml file. There all buffer data is visible in textual form and you can check the texture coordinates.
Thanks, good tip, didn't come to my mind, since I don't already have the xml file (deleted while folder cleanup), but NP

Re: [New Tool] Ogre MeshMagick - First official release

Posted: Sun May 17, 2009 2:04 am
by jacmoe
<rant>

Is there any reason why MeshMagick is LGPL'ed?
What's wrong with MIT/ZLIB ?
If it's meant to be used as a commanline tool *and* a utility library, I'd rather include it directly into my projects instead of having to have even more DLLs around..
Seems like a license overkill to me.
It's funny how (nearly) all Ogre plugins are LGPL licensed.. When Bullet, CEGUI and most of Googles open source projects are MIT/ZLIB.
Are people afraid that we might run away with the code? :)
I see a move towards more open licenses now, as Open Source matures.

Okay. Rant over. :wink:

</rant>

Re: [New Tool] Ogre MeshMagick - First official release

Posted: Mon May 18, 2009 10:33 pm
by haffax
Frankly, I prefer questions being asked as questions, not as rants, already suggesting a (dead-wrong) answer. (A rant is not becoming any more polite, when you put it in tags.)
No I am not afraid that my code may run away. Actually meshmagick is one of only two of my projects being released as (L)GPL, all others being more lenient.

LGPL was and still is a natural license for Ogre, which itself is LGPL. So far there is no need for a change and you didn't name one specifically and I am not going through the hassle of changing it to the license du jour. Just in order to change it again to whatever license is in vogue next year.

So: I am not going to change the license, on a general note. Unless a very specific argument is made in favor of a change, I don't see a need for further discussion.

Re: [New Tool] Ogre MeshMagick - First official release

Posted: Mon May 18, 2009 10:46 pm
by jacmoe
<edit>
I realise - after reading my post again - that I came off as rude. That wasn't the intention.
My apologies.
</edit>

Re: [New Tool] Ogre MeshMagick - First official release

Posted: Mon May 18, 2009 11:00 pm
by haffax
Coming out too strong is what I am good at too. ;) Sorry.

Re: [New Tool] Ogre MeshMagick - First official release

Posted: Wed May 20, 2009 8:28 am
by xabila
It could be cool to use all the features of meshmagick without loading a .mesh but directly with a MeshPtr.
So we could get some mesh-info directly on a mesh loaded with the Ogre::SceneManager for instance...

Currently i'm using meshmagick to merge a complete hierarchie of SceneNode on a new mesh, and i'm force to change the API to do that.

So what do you think about that ? i can give you the diff if you want

Re: [New Tool] Ogre MeshMagick - First official release

Posted: Wed May 20, 2009 10:42 am
by haffax
Hi Xabila,

The Tool-API has to become friendlier for usage as a lib. This is true. The library option has been added ad-hoc because we needed it for the meshmerge tool and thus it is not as tidy as it could be.
So MeshPtr/SkeletonPtr usage and tool facades are planned features.

I don't know about SceneNode hierarchy merging though. (Not sure if you were proposing this even.) I want to keep it small in what parts of Ogre are used and I don't want to create a RenderSystem. So far only the math/string utils and resources are being used. I prefer to keep it that way. More so as traversing the scene node hierarchy is easy to do in a facade layer between meshmagick and your application.

I gladly accept the diff for your changes, but I don't promise to implement it exactly like you did. But I will keep in mind what you need it for.

Re: [New Tool] Ogre MeshMagick - First official release

Posted: Wed May 20, 2009 11:24 am
by xabila
Ok thanks.
I will give you the diff as soon as my sceneNode merge will work...

Right now i juste merge with the transformTool and the meshMergeTool the hierarchie, so it' not complicated stuff...

Re: [New Tool] Ogre MeshMagick - First official release

Posted: Wed May 20, 2009 8:19 pm
by xabila
Ok, it works.

I won't give you the code right now of the sceneNode Merge, but i will put it on a plugin for gose, wich is open source also...

May i give you the diff by pm ?

So actually, i add a mMeshes.clear() on the MeshMergeTool bake function and i changed some stuff on InfoTool, in order to display a getMeshInfo on MeshPtr...

Re: [New Tool] Ogre MeshMagick - First official release

Posted: Sat May 23, 2009 2:58 pm
by Demorian
Hi, would it be possible for anyone to upload the compiled 0.5 version somewhere please?
Every time I try compiling something it always fails :P

..and because I don't like taking without giving...
@andris -
Thanks, good tip, didn't come to my mind, since I don't already have the xml file (deleted while folder cleanup), but NP
You may already know and/or it's too late, but the OgreXMLConverter command line tool will convert your mesh back to XML too
Because the default behaviour is to convert binary to XML and vice versa, you
can simply drag files onto this converter and it will convert between the 2
formats, although you will not be able to use it to generate LOD levels this
way.
Thanks

Re: [New Tool] Ogre MeshMagick - First official release

Posted: Mon May 25, 2009 7:38 pm
by xabila
I'm trying to compile now my version of gose with meshmagic on windows.
The linux version is fine, but i've got some linking errors.
I'm not a big fan of developping on visual so maybe i'm missing something :

Code: Select all

Copyright (C) Microsoft Corporation.  All rights reserved.
Édition des liens en cours...
   Création de la bibliothèque ..\Runtime\Release\gose.lib et de l'objet ..\Runtime\Release\gose.exp
MapEditorTreeView.obj : error LNK2019: symbole externe non résolu "public: virtual __thiscall meshmagick::Tool::~Tool(void)" (??1Tool@meshmagick@@UAE@XZ) référencé dans la fonction "public: virtual void * __thiscall meshmagick::Tool::`scalar deleting destructor'(unsigned int)" (??_GTool@meshmagick@@UAEPAXI@Z)
MapEditorTreeView.obj : error LNK2019: symbole externe non résolu "protected: static class meshmagick::OgreEnvironment * Ogre::Singleton<class meshmagick::OgreEnvironment>::ms_Singleton" (?ms_Singleton@?$Singleton@VOgreEnvironment@meshmagick@@@Ogre@@1PAVOgreEnvironment@meshmagick@@A) référencé dans la fonction "public: __thiscall Ogre::Singleton<class meshmagick::OgreEnvironment>::Singleton<class meshmagick::OgreEnvironment>(void)" (??0?$Singleton@VOgreEnvironment@meshmagick@@@Ogre@@QAE@XZ)
MapEditorTreeView.obj : error LNK2001: symbole externe non résolu "public: virtual class meshmagick::Tool * __thiscall meshmagick::InfoToolFactory::createTool(void)" (?createTool@InfoToolFactory@meshmagick@@UAEPAVTool@2@XZ)
MapEditorTreeView.obj : error LNK2001: symbole externe non résolu "public: virtual void __thiscall meshmagick::InfoToolFactory::destroyTool(class meshmagick::Tool *)" (?destroyTool@InfoToolFactory@meshmagick@@UAEXPAVTool@2@@Z)
MapEditorTreeView.obj : error LNK2001: symbole externe non résolu "public: virtual class std::set<struct meshmagick::OptionDefinition,struct std::less<struct meshmagick::OptionDefinition>,class std::allocator<struct meshmagick::OptionDefinition> > __thiscall meshmagick::InfoToolFactory::getOptionDefinitions(void)const " (?getOptionDefinitions@InfoToolFactory@meshmagick@@UBE?AV?$set@UOptionDefinition@meshmagick@@U?$less@UOptionDefinition@meshmagick@@@std@@V?$allocator@UOptionDefinition@meshmagick@@@4@@std@@XZ)
MapEditorTreeView.obj : error LNK2001: symbole externe non résolu "public: virtual class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > __thiscall meshmagick::InfoToolFactory::getToolName(void)const " (?getToolName@InfoToolFactory@meshmagick@@UBE?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@XZ)
MapEditorTreeView.obj : error LNK2001: symbole externe non résolu "public: virtual class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > __thiscall meshmagick::InfoToolFactory::getToolDescription(void)const " (?getToolDescription@InfoToolFactory@meshmagick@@UBE?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@XZ)
MapEditorTreeView.obj : error LNK2001: symbole externe non résolu "public: virtual void __thiscall meshmagick::InfoToolFactory::printToolHelp(class std::basic_ostream<char,struct std::char_traits<char> > &)const " (?printToolHelp@InfoToolFactory@meshmagick@@UBEXAAV?$basic_ostream@DU?$char_traits@D@std@@@std@@@Z)
MapEditorTreeView.obj : error LNK2001: symbole externe non résolu "public: virtual class meshmagick::Tool * __thiscall meshmagick::TransformToolFactory::createTool(void)" (?createTool@TransformToolFactory@meshmagick@@UAEPAVTool@2@XZ)
MapEditorTreeView.obj : error LNK2001: symbole externe non résolu "public: virtual void __thiscall meshmagick::TransformToolFactory::destroyTool(class meshmagick::Tool *)" (?destroyTool@TransformToolFactory@meshmagick@@UAEXPAVTool@2@@Z)
MapEditorTreeView.obj : error LNK2001: symbole externe non résolu "public: virtual class std::set<struct meshmagick::OptionDefinition,struct std::less<struct meshmagick::OptionDefinition>,class std::allocator<struct meshmagick::OptionDefinition> > __thiscall meshmagick::TransformToolFactory::getOptionDefinitions(void)const " (?getOptionDefinitions@TransformToolFactory@meshmagick@@UBE?AV?$set@UOptionDefinition@meshmagick@@U?$less@UOptionDefinition@meshmagick@@@std@@V?$allocator@UOptionDefinition@meshmagick@@@4@@std@@XZ)
MapEditorTreeView.obj : error LNK2001: symbole externe non résolu "public: virtual class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > __thiscall meshmagick::TransformToolFactory::getToolName(void)const " (?getToolName@TransformToolFactory@meshmagick@@UBE?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@XZ)
MapEditorTreeView.obj : error LNK2001: symbole externe non résolu "public: virtual class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > __thiscall meshmagick::TransformToolFactory::getToolDescription(void)const " (?getToolDescription@TransformToolFactory@meshmagick@@UBE?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@XZ)
MapEditorTreeView.obj : error LNK2001: symbole externe non résolu "public: virtual void __thiscall meshmagick::TransformToolFactory::printToolHelp(class std::basic_ostream<char,struct std::char_traits<char> > &)const " (?printToolHelp@TransformToolFactory@meshmagick@@UBEXAAV?$basic_ostream@DU?$char_traits@D@std@@@std@@@Z)
MapEditorTreeView.obj : error LNK2001: symbole externe non résolu "public: virtual class meshmagick::Tool * __thiscall meshmagick::MeshMergeToolFactory::createTool(void)" (?createTool@MeshMergeToolFactory@meshmagick@@UAEPAVTool@2@XZ)
MapEditorTreeView.obj : error LNK2001: symbole externe non résolu "public: virtual void __thiscall meshmagick::MeshMergeToolFactory::destroyTool(class meshmagick::Tool *)" (?destroyTool@MeshMergeToolFactory@meshmagick@@UAEXPAVTool@2@@Z)
MapEditorTreeView.obj : error LNK2001: symbole externe non résolu "public: virtual class std::set<struct meshmagick::OptionDefinition,struct std::less<struct meshmagick::OptionDefinition>,class std::allocator<struct meshmagick::OptionDefinition> > __thiscall meshmagick::MeshMergeToolFactory::getOptionDefinitions(void)const " (?getOptionDefinitions@MeshMergeToolFactory@meshmagick@@UBE?AV?$set@UOptionDefinition@meshmagick@@U?$less@UOptionDefinition@meshmagick@@@std@@V?$allocator@UOptionDefinition@meshmagick@@@4@@std@@XZ)
MapEditorTreeView.obj : error LNK2001: symbole externe non résolu "public: virtual class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > __thiscall meshmagick::MeshMergeToolFactory::getToolName(void)const " (?getToolName@MeshMergeToolFactory@meshmagick@@UBE?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@XZ)
MapEditorTreeView.obj : error LNK2001: symbole externe non résolu "public: virtual class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > __thiscall meshmagick::MeshMergeToolFactory::getToolDescription(void)const " (?getToolDescription@MeshMergeToolFactory@meshmagick@@UBE?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@XZ)
MapEditorTreeView.obj : error LNK2001: symbole externe non résolu "public: virtual void __thiscall meshmagick::MeshMergeToolFactory::printToolHelp(class std::basic_ostream<char,struct std::char_traits<char> > &)const " (?printToolHelp@MeshMergeToolFactory@meshmagick@@UBEXAAV?$basic_ostream@DU?$char_traits@D@std@@@std@@@Z)
MapEditorTreeView.obj : error LNK2019: symbole externe non résolu "public: struct meshmagick::MeshInfo __thiscall meshmagick::InfoTool::getMeshInfo(class Ogre::MeshPtr)const " (?getMeshInfo@InfoTool@meshmagick@@QBE?AUMeshInfo@2@VMeshPtr@Ogre@@@Z) référencé dans la fonction "protected: void __thiscall MapEditorTreeView::addEntry(class Gtk::TreeRow,class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &,class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const &)" (?addEntry@MapEditorTreeView@@IAEXVTreeRow@Gtk@@ABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@1@Z)
..\Runtime\Release\gose.exe : fatal error LNK1120: 21 externes non résolus
i have tried to add the /OPT;noref and i had a -DMESHMAGIC_EXPORTS but it's the same :(

Re: [New Tool] Ogre MeshMagick - First official release

Posted: Mon May 25, 2009 8:54 pm
by haffax
What are you building there? A program or a lib? And how do you add meshmagick to it?

Please paste the content of the buildlog.htm as shown in a browser rather than just the output window content. The buildlog.htm shows all your build options, much easier to spot a problem.

Re: [New Tool] Ogre MeshMagick - First official release

Posted: Mon May 25, 2009 9:51 pm
by xabila
Ok, so GOSE is an application (Gtkmm Ogre Scene Editor) and here is the log (in french sorry)
Thanks a lot

PS: it' s the same problem in release ...

Code: Select all

Journal de génération
 	 	
Générer démarrée : Projet : gose, Configuration : Debug|Win32


Lignes de commande
 	 	
Création du fichier temporaire "d:\SVN\GVT_V2\dev\xavier\Gose\build\src\gose.dir\Debug\RSP00000876927392.rsp" avec pour contenu
[
/OUT:"..\Runtime\Debug\gose.exe" /VERSION:0.0 /INCREMENTAL /LIBPATH:"C:\GTKMM\lib\Debug" /LIBPATH:"C:\GTKMM\lib" /LIBPATH:"D:\Program Files\OBT\lib\Debug" /LIBPATH:"D:\Program Files\OBT\lib" /LIBPATH:"D:\SVN\GVT_V2\meshmagic\meshmagick\lib\Debug" /LIBPATH:"D:\SVN\GVT_V2\meshmagic\meshmagick\lib" /LIBPATH:"C:\OgreSDK\lib\Debug" /LIBPATH:"C:\OgreSDK\lib" /LIBPATH:"D:\Program Files\DotSceneInterface\lib\Debug" /LIBPATH:"D:\Program Files\DotSceneInterface\lib" /LIBPATH:".\Debug" /LIBPATH:"." /MANIFEST /MANIFESTFILE:"gose.dir\Debug\gose.exe.intermediate.manifest" /MANIFESTUAC:"level='asInvoker' uiAccess='false'" /DEBUG /PDB:"../Runtime/Debug\gose.pdb" /SUBSYSTEM:CONSOLE /DYNAMICBASE /NXCOMPAT  /STACK:10000000 /machine:I386 /OPT:NOREF /IMPLIB:..\Runtime\Release\gose.lib /debug kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib OgreMain_d.lib OgreGUIRenderer_d.lib OBT_vc90_d.lib MESHMAGICK_d.lib glademm-vc90-2_4.lib xml++-vc90-2_6.lib gtkmm-vc90-2_4.lib glade-2.0.lib gdkmm-vc90-2_4.lib atkmm-vc90-1_6.lib pangomm-vc90-1_4.lib giomm-vc90-2_4.lib glibmm-vc90-2_4.lib cairomm-vc90-1_0.lib sigc-vc90-2_0.lib gtk-win32-2.0.lib libxml2.lib gdk-win32-2.0.lib atk-1.0.lib gdk_pixbuf-2.0.lib pangowin32-1.0.lib pangocairo-1.0.lib pango-1.0.lib cairo.lib gio-2.0.lib gobject-2.0.lib gmodule-2.0.lib glib-2.0.lib intl.lib iconv.lib DotSceneInterface_vc90_d.lib

".\gose.dir\Debug\gose.res"

".\gose.dir\Debug\About.obj"

".\gose.dir\Debug\AboutBase.obj"

".\gose.dir\Debug\GtkOgreWidget.obj"

".\gose.dir\Debug\GtkSceneEditor.obj"

".\gose.dir\Debug\ImportExportScene.obj"

".\gose.dir\Debug\ImportMesh.obj"

".\gose.dir\Debug\IPathGladeService.obj"

".\gose.dir\Debug\IPluginService.obj"

".\gose.dir\Debug\IPopupMenuService.obj"

".\gose.dir\Debug\MapEditorTreeView.obj"

".\gose.dir\Debug\MEApplication.obj"

".\gose.dir\Debug\MEPlugins.obj"

".\gose.dir\Debug\OgreView.obj"

".\gose.dir\Debug\PopupMenuService.obj"

".\gose.dir\Debug\PopupViewport.obj"

".\gose.dir\Debug\ProcessAnim.obj"

".\gose.dir\Debug\ProcessAnimBase.obj"

".\gose.dir\Debug\ProcessCamera.obj"

".\gose.dir\Debug\ProcessCameraBase.obj"

".\gose.dir\Debug\ProcessLight.obj"

".\gose.dir\Debug\ProcessLightBase.obj"

".\gose.dir\Debug\ProcessMaterial.obj"

".\gose.dir\Debug\ProcessMaterialBase.obj"

".\gose.dir\Debug\ProcessMeshAnim.obj"

".\gose.dir\Debug\ProcessMeshAnimBase.obj"

".\gose.dir\Debug\ProcessTransform.obj"

".\gose.dir\Debug\ProcessTransformBase.obj"

".\gose.dir\Debug\ProcessViewport.obj"

".\gose.dir\Debug\ProcessViewportBase.obj"

".\gose.dir\Debug\stdafx.obj"

".\gose.dir\Debug\TabNav.obj"

".\gose.dir\Debug\TabNavBase.obj"

".\gose.dir\Debug\TabProperties.obj"

".\gose.dir\Debug\TabPropertiesBase.obj"

".\gose.dir\Debug\gose.exe.embed.manifest.res"
]
Création de la ligne de commande "link.exe @d:\SVN\GVT_V2\dev\xavier\Gose\build\src\gose.dir\Debug\RSP00000876927392.rsp /NOLOGO /ERRORREPORT:PROMPT"
Fenêtre Sortie
 	 	
Édition des liens en cours...
   Création de la bibliothèque ..\Runtime\Release\gose.lib et de l'objet ..\Runtime\Release\gose.exp
MapEditorTreeView.obj : error LNK2019: symbole externe non résolu "public: virtual __thiscall meshmagick::Tool::~Tool(void)" (??1Tool@meshmagick@@UAE@XZ) référencé dans la fonction "public: virtual __thiscall meshmagick::TransformTool::~TransformTool(void)" (??1TransformTool@meshmagick@@UAE@XZ)
MapEditorTreeView.obj : error LNK2001: symbole externe non résolu "public: virtual class meshmagick::Tool * __thiscall meshmagick::InfoToolFactory::createTool(void)" (?createTool@InfoToolFactory@meshmagick@@UAEPAVTool@2@XZ)
MapEditorTreeView.obj : error LNK2001: symbole externe non résolu "public: virtual void __thiscall meshmagick::InfoToolFactory::destroyTool(class meshmagick::Tool *)" (?destroyTool@InfoToolFactory@meshmagick@@UAEXPAVTool@2@@Z)
MapEditorTreeView.obj : error LNK2001: symbole externe non résolu "public: virtual class std::set,class std::allocator > __thiscall meshmagick::InfoToolFactory::getOptionDefinitions(void)const " (?getOptionDefinitions@InfoToolFactory@meshmagick@@UBE?AV?$set@UOptionDefinition@meshmagick@@U?$less@UOptionDefinition@meshmagick@@@std@@V?$allocator@UOptionDefinition@meshmagick@@@4@@std@@XZ)
MapEditorTreeView.obj : error LNK2001: symbole externe non résolu "public: virtual class std::basic_string,class std::allocator > __thiscall meshmagick::InfoToolFactory::getToolName(void)const " (?getToolName@InfoToolFactory@meshmagick@@UBE?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@XZ)
MapEditorTreeView.obj : error LNK2001: symbole externe non résolu "public: virtual class std::basic_string,class std::allocator > __thiscall meshmagick::InfoToolFactory::getToolDescription(void)const " (?getToolDescription@InfoToolFactory@meshmagick@@UBE?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@XZ)
MapEditorTreeView.obj : error LNK2001: symbole externe non résolu "public: virtual void __thiscall meshmagick::InfoToolFactory::printToolHelp(class std::basic_ostream > &)const " (?printToolHelp@InfoToolFactory@meshmagick@@UBEXAAV?$basic_ostream@DU?$char_traits@D@std@@@std@@@Z)
MapEditorTreeView.obj : error LNK2001: symbole externe non résolu "public: virtual class meshmagick::Tool * __thiscall meshmagick::TransformToolFactory::createTool(void)" (?createTool@TransformToolFactory@meshmagick@@UAEPAVTool@2@XZ)
MapEditorTreeView.obj : error LNK2001: symbole externe non résolu "public: virtual void __thiscall meshmagick::TransformToolFactory::destroyTool(class meshmagick::Tool *)" (?destroyTool@TransformToolFactory@meshmagick@@UAEXPAVTool@2@@Z)
MapEditorTreeView.obj : error LNK2001: symbole externe non résolu "public: virtual class std::set,class std::allocator > __thiscall meshmagick::TransformToolFactory::getOptionDefinitions(void)const " (?getOptionDefinitions@TransformToolFactory@meshmagick@@UBE?AV?$set@UOptionDefinition@meshmagick@@U?$less@UOptionDefinition@meshmagick@@@std@@V?$allocator@UOptionDefinition@meshmagick@@@4@@std@@XZ)
MapEditorTreeView.obj : error LNK2001: symbole externe non résolu "public: virtual class std::basic_string,class std::allocator > __thiscall meshmagick::TransformToolFactory::getToolName(void)const " (?getToolName@TransformToolFactory@meshmagick@@UBE?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@XZ)
MapEditorTreeView.obj : error LNK2001: symbole externe non résolu "public: virtual class std::basic_string,class std::allocator > __thiscall meshmagick::TransformToolFactory::getToolDescription(void)const " (?getToolDescription@TransformToolFactory@meshmagick@@UBE?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@XZ)
MapEditorTreeView.obj : error LNK2001: symbole externe non résolu "public: virtual void __thiscall meshmagick::TransformToolFactory::printToolHelp(class std::basic_ostream > &)const " (?printToolHelp@TransformToolFactory@meshmagick@@UBEXAAV?$basic_ostream@DU?$char_traits@D@std@@@std@@@Z)
MapEditorTreeView.obj : error LNK2001: symbole externe non résolu "public: virtual class meshmagick::Tool * __thiscall meshmagick::MeshMergeToolFactory::createTool(void)" (?createTool@MeshMergeToolFactory@meshmagick@@UAEPAVTool@2@XZ)
MapEditorTreeView.obj : error LNK2001: symbole externe non résolu "public: virtual void __thiscall meshmagick::MeshMergeToolFactory::destroyTool(class meshmagick::Tool *)" (?destroyTool@MeshMergeToolFactory@meshmagick@@UAEXPAVTool@2@@Z)
MapEditorTreeView.obj : error LNK2001: symbole externe non résolu "public: virtual class std::set,class std::allocator > __thiscall meshmagick::MeshMergeToolFactory::getOptionDefinitions(void)const " (?getOptionDefinitions@MeshMergeToolFactory@meshmagick@@UBE?AV?$set@UOptionDefinition@meshmagick@@U?$less@UOptionDefinition@meshmagick@@@std@@V?$allocator@UOptionDefinition@meshmagick@@@4@@std@@XZ)
MapEditorTreeView.obj : error LNK2001: symbole externe non résolu "public: virtual class std::basic_string,class std::allocator > __thiscall meshmagick::MeshMergeToolFactory::getToolName(void)const " (?getToolName@MeshMergeToolFactory@meshmagick@@UBE?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@XZ)
MapEditorTreeView.obj : error LNK2001: symbole externe non résolu "public: virtual class std::basic_string,class std::allocator > __thiscall meshmagick::MeshMergeToolFactory::getToolDescription(void)const " (?getToolDescription@MeshMergeToolFactory@meshmagick@@UBE?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@XZ)
MapEditorTreeView.obj : error LNK2001: symbole externe non résolu "public: virtual void __thiscall meshmagick::MeshMergeToolFactory::printToolHelp(class std::basic_ostream > &)const " (?printToolHelp@MeshMergeToolFactory@meshmagick@@UBEXAAV?$basic_ostream@DU?$char_traits@D@std@@@std@@@Z)
MapEditorTreeView.obj : error LNK2019: symbole externe non résolu "public: struct meshmagick::MeshInfo __thiscall meshmagick::InfoTool::getMeshInfo(class Ogre::MeshPtr)const " (?getMeshInfo@InfoTool@meshmagick@@QBE?AUMeshInfo@2@VMeshPtr@Ogre@@@Z) référencé dans la fonction "protected: void __thiscall MapEditorTreeView::addEntry(class Gtk::TreeRow,class std::basic_string,class std::allocator > const &,class std::basic_string,class std::allocator > const &)" (?addEntry@MapEditorTreeView@@IAEXVTreeRow@Gtk@@ABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@1@Z)
MapEditorTreeView.obj : error LNK2001: symbole externe non résolu "protected: static class meshmagick::OgreEnvironment * Ogre::Singleton::ms_Singleton" (?ms_Singleton@?$Singleton@VOgreEnvironment@meshmagick@@@Ogre@@1PAVOgreEnvironment@meshmagick@@A)
..\Runtime\Debug\gose.exe : fatal error LNK1120: 21 externes non résolus
Résultats
 	 	
Le journal de génération a été enregistré à l'emplacement "file://d:\SVN\GVT_V2\dev\xavier\Gose\build\src\gose.dir\Debug\BuildLog.htm"
gose - 22 erreur(s), 0 avertissement(s)


Re: [New Tool] Ogre MeshMagick - First official release

Posted: Mon May 25, 2009 10:29 pm
by haffax
You have two different meshmagick lib directories included in your libpath. You should clean that up, to be sure you link the actual one.

But the first part is of the log is missing, I should have said to paste the buildlog.htm from a fresh build, here the compiler part is missing, which has the two interesting settings. No additional preprocessor definitions are needed beside the normal ones. Also you need to compile it with /MDd runtime lib settings.

Re: [New Tool] Ogre MeshMagick - First official release

Posted: Tue May 26, 2009 7:36 am
by xabila
Ok Thanks a lot, here is the command line from the release version.

Code: Select all

	
Création du fichier temporaire "d:\SVN\GVT_V2\dev\xavier\Gose\build\src\gose.dir\Release\BAT0000154708736.bat" avec pour contenu
[
@echo off

"D:\Program Files\CMake 2.4\bin\cmake.exe" -HD:/SVN/GVT_V2/dev/xavier/Gose -BD:/SVN/GVT_V2/dev/xavier/Gose/build



if errorlevel 1 goto VCReportError

goto VCEnd

:VCReportError

echo Project : error PRJ0019: Un outil a retourné un code d'erreur à partir de "Building Custom Rule D:/SVN/GVT_V2/dev/xavier/Gose/src/CMakeLists.txt"

exit 1

:VCEnd
]
Création de la ligne de commande "d:\SVN\GVT_V2\dev\xavier\Gose\build\src\gose.dir\Release\BAT0000154708736.bat"
Création du fichier temporaire "d:\SVN\GVT_V2\dev\xavier\Gose\build\src\gose.dir\Release\RSP0000164708736.rsp" avec pour contenu
[
/O2 /Ob2 /I "c:\OgreSDK\include" /I "D:\SVN\GVT_V2\dev\xavier\Gose\src\ c:\OgreSDK\samples\include" /I "D:\SVN\GVT_V2\dev\xavier\Gose\build\src" /I "D:\SVN\GVT_V2\dev\xavier\Gose\src\." /I "C:\GTKMM\include\libglademm-2.4" /I "C:\GTKMM\lib\libglademm-2.4\include" /I "C:\GTKMM\lib\gtkmm-2.4\include" /I "C:\GTKMM\include\gtkmm-2.4" /I "C:\GTKMM\lib\gdkmm-2.4\include" /I "C:\GTKMM\include\gdkmm-2.4" /I "C:\GTKMM\include\pangomm-1.4" /I "C:\GTKMM\include\atkmm-1.6" /I "C:\GTKMM\lib\libxml++-2.6\include" /I "C:\GTKMM\include\libxml++-2.6" /I "C:\GTKMM\lib\giomm-2.4\include" /I "C:\GTKMM\include\giomm-2.4" /I "C:\GTKMM\lib\glibmm-2.4\include" /I "C:\GTKMM\include\glibmm-2.4" /I "C:\GTKMM\include\cairomm-1.0" /I "C:\GTKMM\lib\sigc++-2.0\include" /I "C:\GTKMM\include\sigc++-2.0" /I "C:\GTKMM\include\libglade-2.0" /I "C:\GTKMM\lib\gtk-2.0\include" /I "C:\GTKMM\include\gtk-2.0" /I "C:\GTKMM\include\pango-1.0" /I "C:\GTKMM\include\atk-1.0" /I "C:\GTKMM\lib\glib-2.0\include" /I "C:\GTKMM\include\glib-2.0" /I "C:\GTKMM\include\libxml2" /I "C:\GTKMM\include\cairo" /I "C:\GTKMM\include" /I "D:\Program Files\OBT\include" /I "D:\SVN\GVT_V2\meshmagic\meshmagick\include" /I "D:\SVN\GVT_V2\dev\xavier\Gose\src\ D:\SVN\GVT_V2\meshmagic\meshmagick\samples\include" /I "D:\SVN\GVT_V2\dev\xavier\Gose\src\ D:\SVN\GVT_V2\meshmagic\meshmagick\samples\include\include" /I "D:\SVN\GVT_V2\dev\xavier\Gose\src\vrmllib\include" /I "D:\Program Files\DotSceneInterface\include" /I "D:\Program Files\DotSceneInterface\include\dsi" /D "WIN32" /D "_WINDOWS" /D "NDEBUG" /D "TIXML_USE_STL" /D "GOSE_EXPORTS" /D "CMAKE_INTDIR=\"Release\"" /D "MESHMAGICK_EXPORTS" /D "_MBCS" /FD /EHsc /MD /Fo"gose.dir\Release\\" /Fd"D:/SVN/GVT_V2/dev/xavier/Gose/build/src/../Runtime/Release/gose.pdb" /W3 /c /TP   /Zm1000

..\..\src\TabPropertiesBase.cpp

..\..\src\TabProperties.cpp

..\..\src\TabNavBase.cpp

..\..\src\TabNav.cpp

..\..\src\stdafx.cpp

..\..\src\ProcessViewportBase.cpp

..\..\src\ProcessViewport.cpp

..\..\src\ProcessTransformBase.cpp

..\..\src\ProcessTransform.cpp

..\..\src\ProcessMeshAnimBase.cpp

..\..\src\ProcessMeshAnim.cpp

..\..\src\ProcessMaterialBase.cpp

..\..\src\ProcessMaterial.cpp

..\..\src\ProcessLightBase.cpp

..\..\src\ProcessLight.cpp

..\..\src\ProcessCameraBase.cpp

..\..\src\ProcessCamera.cpp

..\..\src\ProcessAnimBase.cpp

..\..\src\ProcessAnim.cpp

..\..\src\PopupViewport.cpp

..\..\src\PopupMenuService.cpp

..\..\src\OgreView.cpp

..\..\src\MEPlugins.cpp

..\..\src\MEApplication.cpp

..\..\src\MapEditorTreeView.cpp

..\..\src\IPopupMenuService.cpp

..\..\src\IPluginService.cpp

..\..\src\IPathGladeService.cpp

..\..\src\ImportMesh.cpp

..\..\src\ImportExportScene.cpp

..\..\src\GtkSceneEditor.cpp

..\..\src\GtkOgreWidget.cpp

..\..\src\AboutBase.cpp

..\..\src\About.cpp
]
Création de la ligne de commande "cl.exe @d:\SVN\GVT_V2\dev\xavier\Gose\build\src\gose.dir\Release\RSP0000164708736.rsp /errorReport:prompt"
Création de la ligne de commande "rc.exe /d "WIN32" /d "_WINDOWS" /d "NDEBUG" /d "TIXML_USE_STL" /d "GOSE_EXPORTS" /d "CMAKE_INTDIR=\"Release\"" /I "c:\OgreSDK\include" /I "D:\SVN\GVT_V2\dev\xavier\Gose\src\ c:\OgreSDK\samples\include" /I "D:\SVN\GVT_V2\dev\xavier\Gose\build\src" /I "D:\SVN\GVT_V2\dev\xavier\Gose\src\." /I "C:\GTKMM\include\libglademm-2.4" /I "C:\GTKMM\lib\libglademm-2.4\include" /I "C:\GTKMM\lib\gtkmm-2.4\include" /I "C:\GTKMM\include\gtkmm-2.4" /I "C:\GTKMM\lib\gdkmm-2.4\include" /I "C:\GTKMM\include\gdkmm-2.4" /I "C:\GTKMM\include\pangomm-1.4" /I "C:\GTKMM\include\atkmm-1.6" /I "C:\GTKMM\lib\libxml++-2.6\include" /I "C:\GTKMM\include\libxml++-2.6" /I "C:\GTKMM\lib\giomm-2.4\include" /I "C:\GTKMM\include\giomm-2.4" /I "C:\GTKMM\lib\glibmm-2.4\include" /I "C:\GTKMM\include\glibmm-2.4" /I "C:\GTKMM\include\cairomm-1.0" /I "C:\GTKMM\lib\sigc++-2.0\include" /I "C:\GTKMM\include\sigc++-2.0" /I "C:\GTKMM\include\libglade-2.0" /I "C:\GTKMM\lib\gtk-2.0\include" /I "C:\GTKMM\include\gtk-2.0" /I "C:\GTKMM\include\pango-1.0" /I "C:\GTKMM\include\atk-1.0" /I "C:\GTKMM\lib\glib-2.0\include" /I "C:\GTKMM\include\glib-2.0" /I "C:\GTKMM\include\libxml2" /I "C:\GTKMM\include\cairo" /I "C:\GTKMM\include" /I "D:\Program Files\OBT\include" /I "D:\SVN\GVT_V2\meshmagic\meshmagick\include" /I "D:\SVN\GVT_V2\dev\xavier\Gose\src\ D:\SVN\GVT_V2\meshmagic\meshmagick\samples\include" /I "D:\SVN\GVT_V2\dev\xavier\Gose\src\ D:\SVN\GVT_V2\meshmagic\meshmagick\samples\include\include" /I "D:\SVN\GVT_V2\dev\xavier\Gose\src\vrmllib\include" /I "D:\Program Files\DotSceneInterface\include" /I "D:\Program Files\DotSceneInterface\include\dsi" /fo"gose.dir\Release/gose.res" ..\..\src\gose.rc"
Création du fichier temporaire "d:\SVN\GVT_V2\dev\xavier\Gose\build\src\gose.dir\Release\RSP0000174708736.rsp" avec pour contenu
[
/OUT:"..\Runtime\Release\gose.exe" /VERSION:0.0 /INCREMENTAL:NO /LIBPATH:"C:\GTKMM\lib\Release" /LIBPATH:"C:\GTKMM\lib" /LIBPATH:"D:\Program Files\OBT\lib\Release" /LIBPATH:"D:\Program Files\OBT\lib" /LIBPATH:"D:\SVN\GVT_V2\meshmagic\meshmagick\lib\Release" /LIBPATH:"D:\SVN\GVT_V2\meshmagic\meshmagick\lib" /LIBPATH:"C:\OgreSDK\lib\Release" /LIBPATH:"C:\OgreSDK\lib" /LIBPATH:"D:\Program Files\DotSceneInterface\lib\Release" /LIBPATH:"D:\Program Files\DotSceneInterface\lib" /LIBPATH:".\Release" /LIBPATH:"." /MANIFEST /MANIFESTFILE:"gose.dir\Release\gose.exe.intermediate.manifest" /MANIFESTUAC:"level='asInvoker' uiAccess='false'" /PDB:"../Runtime/Release\gose.pdb" /SUBSYSTEM:CONSOLE /OPT:NOREF /DYNAMICBASE /NXCOMPAT  /STACK:10000000 /machine:I386 /OPT:NOREF /IMPLIB:..\Runtime\Release\gose.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib OgreMain.lib OgreGUIRenderer.lib OBT_vc90.lib MESHMAGICK.lib glademm-vc90-2_4.lib xml++-vc90-2_6.lib gtkmm-vc90-2_4.lib glade-2.0.lib gdkmm-vc90-2_4.lib atkmm-vc90-1_6.lib pangomm-vc90-1_4.lib giomm-vc90-2_4.lib glibmm-vc90-2_4.lib cairomm-vc90-1_0.lib sigc-vc90-2_0.lib gtk-win32-2.0.lib libxml2.lib gdk-win32-2.0.lib atk-1.0.lib gdk_pixbuf-2.0.lib pangowin32-1.0.lib pangocairo-1.0.lib pango-1.0.lib cairo.lib gio-2.0.lib gobject-2.0.lib gmodule-2.0.lib glib-2.0.lib intl.lib iconv.lib DotSceneInterface_vc90.lib

".\gose.dir\Release\gose.res"

".\gose.dir\Release\About.obj"

".\gose.dir\Release\AboutBase.obj"

".\gose.dir\Release\GtkOgreWidget.obj"

".\gose.dir\Release\GtkSceneEditor.obj"

".\gose.dir\Release\ImportExportScene.obj"

".\gose.dir\Release\ImportMesh.obj"

".\gose.dir\Release\IPathGladeService.obj"

".\gose.dir\Release\IPluginService.obj"

".\gose.dir\Release\IPopupMenuService.obj"

".\gose.dir\Release\MapEditorTreeView.obj"

".\gose.dir\Release\MEApplication.obj"

".\gose.dir\Release\MEPlugins.obj"

".\gose.dir\Release\OgreView.obj"

".\gose.dir\Release\PopupMenuService.obj"

".\gose.dir\Release\PopupViewport.obj"

".\gose.dir\Release\ProcessAnim.obj"

".\gose.dir\Release\ProcessAnimBase.obj"

".\gose.dir\Release\ProcessCamera.obj"

".\gose.dir\Release\ProcessCameraBase.obj"

".\gose.dir\Release\ProcessLight.obj"

".\gose.dir\Release\ProcessLightBase.obj"

".\gose.dir\Release\ProcessMaterial.obj"

".\gose.dir\Release\ProcessMaterialBase.obj"

".\gose.dir\Release\ProcessMeshAnim.obj"

".\gose.dir\Release\ProcessMeshAnimBase.obj"

".\gose.dir\Release\ProcessTransform.obj"

".\gose.dir\Release\ProcessTransformBase.obj"

".\gose.dir\Release\ProcessViewport.obj"

".\gose.dir\Release\ProcessViewportBase.obj"

".\gose.dir\Release\stdafx.obj"

".\gose.dir\Release\TabNav.obj"

".\gose.dir\Release\TabNavBase.obj"

".\gose.dir\Release\TabProperties.obj"

".\gose.dir\Release\TabPropertiesBase.obj"
]
Création de la ligne de commande "link.exe @d:\SVN\GVT_V2\dev\xavier\Gose\build\src\gose.dir\Release\RSP0000174708736.rsp /NOLOGO /ERRORREPORT:PROMPT"

And i don't have a $MESHMAGICK/lib/debug folder (i'm using your vcproj to compile).
And /MDd is allready set.

Thanks

And here is how i initialized meshmagick :

Code: Select all

void MapEditorTreeView::initMeshmagick()
{
  
  meshmagick::InfoToolFactory* infoFac = new meshmagick::InfoToolFactory();
  _infotool = dynamic_cast<meshmagick::InfoTool*>(infoFac->createTool());
  assert( _infotool);
  
  meshmagick::TransformToolFactory* transFac = new meshmagick::TransformToolFactory();
  _transtool = dynamic_cast<meshmagick::TransformTool*>(transFac->createTool());
  assert( _transtool);

  meshmagick::MeshMergeToolFactory* mergeFac = new meshmagick::MeshMergeToolFactory();
  _mergetool = dynamic_cast<meshmagick::MeshMergeTool*>(mergeFac->createTool());
  assert( _mergetool);

  Ogre::LogManager* logManager = new Ogre::LogManager();
  Ogre::Log* log= logManager->createLog("meshmagick.log", true, false, true);

   meshmagick::OgreEnvironment* ogreEnv = new meshmagick::OgreEnvironment();
	ogreEnv->initialize(false,log);


}

Re: [New Tool] Ogre MeshMagick - First official release

Posted: Tue May 26, 2009 3:24 pm
by xabila
So i restart from scratch and i generate the vcproj with the last version of cmake.
And i've got the same link problem with meshmagick_bin.

Could you try to regenerate with cmake to see if you got the same problem please
Thanks.

Re: [New Tool] Ogre MeshMagick - First official release

Posted: Tue May 26, 2009 5:58 pm
by haffax
I started a small testbed application in order to see what problems have to be solved in order to make meshmagick more friendly toward library use and also to test your linking problems, xabila.

Actually the reason for your problems is pretty simple: You use classes which aren't exported to the lib/dll and thus not available yet.
I am working on it, but if you need results fast, just add _MeshMagickExport to the class definitions of classes you want to use.

E.g:

Code: Select all

class _MeshMagickExport InfoTool : public Tool
{
..
};
Then recompile meshmagick. Then recompile your app.

I haven't tested cmake windows results yet, the Visual Studio project files are hand made, and not generated.

Re: [New Tool] Ogre MeshMagick - First official release

Posted: Tue May 26, 2009 7:44 pm
by xabila
Ok i had to add the _MeshMagickExport... eveywhere

Only one error left :

Code: Select all

Édition des liens en cours...
   Création de la bibliothèque ..\Runtime\Release\gose.lib et de l'objet ..\Runtime\Release\gose.exp
MapEditorTreeView.obj : error LNK2019: symbole externe non résolu "protected: static class meshmagick::OgreEnvironment * Ogre::Singleton<class meshmagick::OgreEnvironment>::ms_Singleton" (?ms_Singleton@?$Singleton@VOgreEnvironment@meshmagick@@@Ogre@@1PAVOgreEnvironment@meshmagick@@A) référencé dans la fonction "public: __thiscall Ogre::Singleton<class meshmagick::OgreEnvironment>::Singleton<class meshmagick::OgreEnvironment>(void)" (??0?$Singleton@VOgreEnvironment@meshmagick@@@Ogre@@QAE@XZ)
..\Runtime\Release\gose.exe : fatal error LNK1120: 1 externes non résolus

Re: [New Tool] Ogre MeshMagick - First official release

Posted: Tue May 26, 2009 11:55 pm
by haffax
I don't get this one and don't know why you do, we already link to meshmagick in Rastullahs Lockenpracht and also create OgreEnvironment and it works fine.

Maybe my next commit will help you. I have rebuilt the API for lib usage. There now is a facade which hides all the internal stuff, you get a tool from it and work with it and don't have to do anything else.
Right now I am making the individual tools more lib friendly. When done, I commit.

Re: [New Tool] Ogre MeshMagick - First official release

Posted: Wed May 27, 2009 6:47 am
by xabila
hum, i'm gonna check.


Did you had my diff (in the way you want of course) ?

Re: [New Tool] Ogre MeshMagick - First official release

Posted: Wed May 27, 2009 11:42 am
by xabila
I had this on the OgreEnvironment.h , it's not far ...

Code: Select all

template class _MeshMagickExport Ogre::Singleton < meshmagick::OgreEnvironment > ;
But i still get the error GRR