Fair enough. I just don't see the use case where someone would delete the node and then try to convert data from the missing node. It's like if the user went into the link editor and removed some of the nodes in YafaRay4tS Scene Utilities, that would break it too. What specifically is the broad issue you are referring to that you've been talking about? and you are saying that the params.SetTerminationFlag() may fix it?trueBlue wrote: ↑08 Aug 2018, 16:44Wow, this is a bubble buster!clintonman wrote: ↑08 Aug 2018, 02:50I have now idea where you're going with this. The code is written to update a scene that has a yafaray4ts node. It's like running it on a vray scene then declaring it doesn't work? 100% lost here.
I asked you a few months back how I could help you test your project.
Your reply was to use it and try and break it.
I have reported this broad issue to your several times and it is a pretty big deal if you do not know how to recoup from it.
You recently confirmed you were able to confirm this issue with the scene that I shared with you and supplied a fix in your Integrated Offline Render icons.
Yesterday I reported that it was not entirely fixed but there was indeed a workaround.
I was pretty stoked finding and sharing, what looks like, a solid fix and perhaps a better way to write if statements.!
I am pretty sure that the author of that script is Vladimir, who was one of the longest core developers of trueSpace and the iOptDetectors plugin.
That script is pretty simple and he uses the params.SetTerminationFlag() at the beginning of his if statements.
To be honest with you, I do not know what it does or how it works. I was hoping you had a better understanding of its use.
So to answer your question, I was simply sharing that script with you and hoping that it helps.
As always I respect your expertise and look for your approval!
params.SetTerminationFlag(); is an interesting find along with all the other params dot functions. I have no idea what they do. Here's the confusion in the code you provided:
Code: Select all
try {
tryStatements}
catch(exception){
catchStatements}
finally {
finallyStatements}
tryStatements
Required. Statements where an error can occur.
exception
Required. Any variable name. The initial value of exception is the value of the thrown error.
catchStatements
Optional. Statements to handle errors occurring in the associated tryStatements.
finallyStatements
Optional. Statements that are unconditionally executed after all other error processing has occurred.
The code that can break goes into the try section, your sample has nothing in the try so the catch will never do anything unless that params.SetTerminationFlag is doing something magical.
I'll add your changes and test it. It may be a case of truespace holding something in memory again where you making a coding change and the old values are still having an effect.