hello,
It's not related to Iterator.
This simple example also complain about the default constructor.
#include <iostream>
class MYINT
{
public:
MYINT(int inInt) { _myint = inInt; };
private:
int _myint;
};
int main()
{
MYINT myint;
system("pause");
return 0;
}
It should say 'hey i don't have any constructor with no parameters".
But if you give him something to initialize with it understand.
MYINT myint = MYINT(10);
MYINT myOtherInt = 10;
MYINT myThirdInt(10);
all this will end with _myint = 10;
Cheers
Manuel
@r_gigante @Cairyn
Thanks for the thorough explanation. I underestimated the task. I initially thought it was just an easy click since the function is already available as a generator.
I was looking for the same behavior in Maya. Where the subdivision deformer or modifier is not a separate object. So I can select objects easily.
Anyhow, will settle for what is available in C4D currently.
Thank you.
Will close this for now.
Hi Manuel,
Right! Found the culprit... symbolcache file...
Couldn't understand how it was working for you and not for me.
After deleting symbolcache worked straight away and it seems that also works without having
doc.SetActiveTag(outro_cal_tag)
Thank you very much for your awesome help with this!
Andre
@m_magalhaes said in Matrix/HPB to XYZ and vice versa:
convert the matrix to XYZ
xyz = c4d.utils.MatrixToHPB(m, order=c4d.ROTATIONORDER_XYZGLOBAL)
# convert from radian to deg
for i in xrange(3):
xyz[i] = c4d.utils.RadToDeg(xyz[i])
print xyz
Works perfectly. Thanks!
@lasselauch
I guess I need to revisit the script in the link above when I need to bake user data. Anyway, your script will do at the moment. It's readable enough for my newbie eyes It works as I expected!
Thanks for the handy script.
@m_adam
Thanks for the confirmation!
hi @bentraje ,
Just to confirm @mp5gosu answer.
We can also point you to BaseDocument manual where you have some information about ExecutePasses
Cheers
Manuel
@r_gigante
Thanks for the headsup about FindOrCreateEntry.
Since Put does use that method internally, I didn't even consider about trying to use it, as I simply assumed it would have the same issue. Guess I was wrong about not trying it.
Problem solved.
Thanks, Mike for providing them, as said before be aware that if you encounter slowdown for the autocompletion and in typing in your IDE, it may come from here
Cheers,
Maxime.
Hi sorry I overlooked your answers.
If you want to have something more consistent you should store it into the scene. So the things that make more sense is to store it into the basecontainer of the current GvNode. Like so
import c4d
def main():
if not c4d.threading.GeIsMainThread():
return
bc = op.GetDataInstance()
# Get an unique ID at https://developers.maxon.net/forum/pid
store_value = bc[1000001]
if Input1 != store_value:
print "Something changed"
bc[1000001] = Input1
else:
print "Nothing changed"
Cheers,
Maxime.
Thanks @m_adam. Works as expected.
My bad, I was looking at the documentation hierarchy erroneously (i.e c4d > modules > graphview > GvNode)
Just a note: I think the if Multiply: line is supposed to be if isMultiply:.
Thanks again. Have a great day ahead!
@m_magalhaes said in Get active object after random value:
The problem here is that Message() is called before Main() (nothing you can changed)
Hello.
Thank you so much. I've understood. Yea, it works. I'd break my mind to understand it by myself. So, then I gonna optimize drawcalls (don't know how to call it another) of LaunchUpdate() func
Hi pe_matthewalexander , thanks for reaching out us.
With regard to your question I suggest the following options (which strongly depend on the context you're supposed to run)
implement a MessageData::CoreMessage() and check for EVMSG_RAYTRACER_FINISHED to be dispatched;
use the BaseDocument::RenderDocument() to fire and control the render execution
use the Remote effect as described here to have an external script being run upon rendering being completed
implement your own VideoPostData (assuming you're willing to move to C++)
Best, Riccardo
Hi temple, thanks for reaching out us.
With regard to your question, I confirm that it's not possible to switch to Python 3.x since R20 is compiled against Python 2.x.
Best, Riccardo