Wavefront Import Scale -still not working
-
THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED
On 23/04/2005 at 18:28, xxxxxxxx wrote:
User Information:
Cinema 4D Version: 8.012
Platform: Windows ; Mac ; Mac OSX ;
Language(s) : C++ ;---------
Alright, I've tried what 'the developers' suggest through Mikael and I see someone else with a success on his own import/export plugin. But the scaling value is always zero.// Get Wavefront Import Scale BasePlugin* plug; if (plug = FindPlugin(FORMAT_OBJIMPORT, C4DPL_SCENELOADER)) { GePrint("PluginName: "+plug->GetName()); scaling = plug->GetDataInstance()->GetReal(OBJIMPORTFILTER_SCALE); } else MessageDialog("Wavefront Import Plug Not Found!"); GePrint("Scaling: "+RealToString(scaling));
I never get the MessageDialog. So, what is wrong here?
Thanks,
-
THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED
On 25/04/2005 at 15:30, xxxxxxxx wrote:
Anybody?
-
THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED
On 26/04/2005 at 01:12, xxxxxxxx wrote:
I can confirm that the code above *doesn't* work. I'm currently looking for an alternative method...
-
THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED
On 26/04/2005 at 02:16, xxxxxxxx wrote:
@kuroyume
Hard to see what you are trying to do.And you never get the MessageDialog because FORMAT_OBJIMPORT is a builtIn Plugin from MAXON and therefor _always_ found. But i am not sure if this is what you really wanted to know?
developer
[Edit] havent seen mikaels posting before sending my answer, so maybe its only of little use, dont mind.
-
THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED
On 26/04/2005 at 08:34, xxxxxxxx wrote:
Well, according to a previous post (some time ago), the developers said that this should work:
BasePlugin *plug = FindPlugin(saver_id); if (plug) { BaseContainer *bc = plug->GetDataInstance(); ... }
And another post, "Info from Dialog", whose title is misleading, concerns doing a similar thing using a written import/export plugin whose settings are stored in the Preferences.
So, yes, this is a built-in plugin and it is expected to be found. :) But there appears to be no data access to any part of it. I've tried GetDataInstance(), GetParameter(), and GetDescription() as well as using Mikaels 'Print' utilities for GeData/BaseContainer/Description to find anything. There doesn't seem to be any data to access. BaseContainer prints [-1,........] or something like that.
I would really hate, for a commercial product, to maintain two identical values - one in the Wavefront Import Preferences and another in my plugin - since I cannot do it programmatically. It'd be better if the user could just set Wavefront Import Preferences and my plugin extract that value for its use.
Fingers crossed... :)
-
THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED
On 26/04/2005 at 10:17, xxxxxxxx wrote:
Well, duh! ;)
On a hunch, I tried something completely different (and no larch!).
Try this:
#include "Fobjimport.h" ... // Get Wavefront Import Scale BaseContainer* bc; if (bc = GetWorldPluginData(FORMAT_OBJIMPORT)) { scaling = bc->GetReal(OBJIMPORTFILTER_SCALE); } else { MessageDialog("Wavefront Import Data Not Retrieved!"); return FALSE; } GePrint("Scaling: "+RealToString(scaling));
This works! Solved finally! :)
Back to real work...
-
THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED
On 26/04/2005 at 12:27, xxxxxxxx wrote:
"On a hunch, I tried something completely different ..."
Welcome to the mystical world of confusion and grace,
leading to wisdom and faith by [ - please insert something useful here - at least i dont know how to get it out of the box]
-
THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED
On 26/04/2005 at 12:42, xxxxxxxx wrote:
I should probably start a new thread, but this is related.
What is up with SetWorldPluginData() in 8.012 SDK? When I try to use it and compile, I receive this linker error:
iPLoader.obj : error LNK2001: unresolved external symbol "int __cdecl SetWorldPluginData(long,class BaseContainer &,int)" (?SetWorldPluginData@@YAHJAAVBaseContainer@@H@Z) ./Commercial/interPoser Ltd.cdl : fatal error LNK1120: 1 unresolved externals Error executing link.exe.
This is in the same place as GetWorldPluginData() is called and no problems with it. The best that I can reckon is that there is a discrepancy between "c4d_general.h" and "OperatingSystem.h" in definition (one uses const BaseContainer&, the other BaseContainer* ). Is this something that may require an api_lib recompilation?
-
THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED
On 26/04/2005 at 13:22, xxxxxxxx wrote:
That was it. Needed to change "c4d_general.h" by adding the missing 'const'.
Nonetheless, SetWorldPluginData() doesn't seem to work in this regard, at least not in 8.012 SDK. This is only a test to see if I can have the user set the value with my plugin and temporarily set the Wavefront Import scale when loading files of this type. No such luck.