Your browser does not seem to support JavaScript. As a result, your viewing experience will be diminished, and you have been placed in read-only mode.
Please download a browser that supports JavaScript, or enable it if it's disabled (i.e. NoScript).
On 14/06/2016 at 11:20, xxxxxxxx wrote:
User Information: Cinema 4D Version: 16 Platform: Mac OSX ; Language(s) : C++ ;
--------- I've just been getting started diving into Melange, and the first problem I've encountered is that getting parameters from a Display Tag returns incorrect data. It seems to return the default state of the tag data rather than any changes made in the file.
My file consists of a single cube with a display tag on it with Visibility toggled on, and set to 69%, and Textures toggled off. The Use option for both Visibility and Textures is also toggled on.
if (tag->GetType() == Tdisplay) { if (tag->GetParameter(DISPLAYTAG_AFFECT_VISIBILITY, data)) { if ((bool)data.GetBool()) { printf("\n \+ Visibility Active = true"); } else { printf("\n \+ Visibility Active = false"); } } if (tag->GetParameter(DISPLAYTAG_VISIBILITY, data) && data.GetFloat()) { printf("\n \+ Visibility = %f", data.GetFloat()); } if (tag->GetDParameter(DISPLAYTAG_TEXTURES, data)) { if ((bool)data.GetBool()) { printf("\n \+ Textures = true"); } else { printf("\n \+ Textures = false"); } } }
this prints out:
\+ Visibility Active = false \+ Visibility = 1.000000 \+ Textures = true
This result does not reflect the actual file, which should have visibility active set to true, with a value of 69.0, and textures set to false.
However, if I get the parameters of the phong tag, or I add a compositing tag and make adjustments, both of those return accurate data, so I'm confident my parameter requesting code is not the problem.
On 14/06/2016 at 13:06, xxxxxxxx wrote:
for what it's worth, the only display tag parameter that appears to be accurate is DISPLAYTAG_SDISPLAYMODE, all other parameters report the same default values that are in place when the tag is first created, regardless of what the actual saved values are.
On 15/06/2016 at 03:13, xxxxxxxx wrote:
Hello,
this seems like a bug in the Melange library. Thanks for reporting this, a bug report was filed.
An alternative to accessing a parameter using GetParameter() is to access the data stored in the BaseContainer. It seems that the data stored in the BaseContainer is correct:
BaseContainer bc = tag->GetData(); const Bool affectVisibilityFromBC = bc.GetBool(DISPLAYTAG_AFFECT_VISIBILITY); if(affectVisibilityFromBC) { printf("affect Visibility\n"); const Float visiblity = bc.GetFloat(DISPLAYTAG_VISIBILITY); printf("Visibility = %f \n", visiblity); }
Best wishes, Sebastian
On 16/06/2016 at 09:49, xxxxxxxx wrote:
Great, thanks so much! I'll give this code a try shortly. I also tried to file a bug report myself via the [email protected] email that is listed on the About page, but it got bounced back, saying that address doesn't exist.
On 17/06/2016 at 01:28, xxxxxxxx wrote:
Hi,
we are terribly sorry about the wrong email address. We originally planned to have a dedicated email address, then dumped that idea and completely forgot to change the About page. Thanks for pointing it out. The About page got corrected. In short: For bug reports either use the Bug Report subforum here in Plugin Café or send a mail to our usual address [email protected]. Sorry for any inconvenience caused.