yeah, scary that. will send in a bug report.
cheers, frank On Mar 14, 2011, at 12:38 PM, Ivan Busquets wrote: > It's very weird indeed. I believe what's happening is that valueAt() is > already returning all the values in the matrix as a list, even if you don't > give it an index number. > > See the difference between doing: > > node['world_matrix'].value() > and > node['world_matrix'].valueAt(7) # This one returns a list with all the matrix > values, but reversed :S > > You could do something like: > > for i in range(0,16): > m[i] =node['world_matrix'].valueAt(7)[i] > > And then transpose the matrix (because of the list coming out in reverse > order): > m.transpose() > > Or just reverse the list as a previous step: > > matrix_list = node['world_matrix'].valueAt(7) > matrix_list.reverse() > > for i in range(0,16): > > m[i] = matrix_list[i] > > > Still, the fact that value() and valueAt() provide different outputs is very > confusing, and should definitely be reported, I think. > > > > > > On Sun, Mar 13, 2011 at 3:13 PM, Frank Rueter <[email protected]> wrote: > has anyone tried the valueAt() method to get a matrix at a given frame? > > It seems to return a different array than using value() and making sure the > current frame in the root is the one you're after. > > in my scenario (camera with "frame" expression in translate.x): > > for i in range(0,16): > m[i] = node['world_matrix'].value( i%4, i/4) > print '\n%s'%m > > returns this on frame 7: > {1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 7, 0, 0, 1} > > > while this: > > for i in range(0,16): > m[i] = node['world_matrix'].valueAt( 7, i%4, i/4) > print '\n%s'%m > > > returns: > {1, 0, 0, 7, 1, 0, 0, 7, 1, 0, 0, 7, 1, 0, 0, 7} > > > > I guess I will have to manually step through frames for this?! > > Cheers, > frank > > > > On Mar 9, 2011, at 2:53 PM, Frank Rueter wrote: > >> thanks for the confirmation. I'm looping through the fields manually for now >> which seems to work >> >> On Mar 9, 2011, at 2:16 PM, Ivan Busquets wrote: >> >>> Yeah, I've found this to be flaky too, or at least not consistent with >>> other knobs. >>> >>> As pixelcowboy was saying, the value() method of that matrix knob expects 2 >>> indices (1 for the row, one for the column). >>> But you're right, Frank, I think this should return a list with all values >>> when no index is given, just like what you get from valueAt(). >>> >>> Also, toScript() doesn't seem to work correctly on them either (returns all >>> 0s) >>> >>> As for setting the values, I've always resorted to iterating through them. >>> :( >>> >>> Bug report? >>> >>> >>> >>> On Tue, Mar 8, 2011 at 4:59 PM, [email protected] >>> <[email protected]> wrote: >>> cam['world_matrix'].array() >>> Works fine on the color matrix node, but doesn't seem to be doing the >>> right thing on the camera matrix knobs... >>> >>> >>> On Tue, Mar 8, 2011 at 4:54 PM, [email protected] >>> <[email protected]> wrote: >>> > I think you need to give it an index: >>> > print cam['world_matrix'].value(0,0) >>> > >>> > On Tue, Mar 8, 2011 at 4:45 PM, Frank Rueter <[email protected]> >>> > wrote: >>> >> matrix knobs seem o behave in mysterious ways: >>> >> >>> >> this will give me a single float value: >>> >> cam = nuke.toNode('Camera4') >>> >> print cam['world_matrix'].value() >>> >> >>> >> >>> >> while this will give me all 16 values: >>> >> print cam['world_matrix'].valueAt(300) >>> >> >>> >> Also, this only assigns the first four values, not the whole thing: >>> >> >>> >> cam = nuke.toNode('Camera4') >>> >> newCam = nuke.toNode('Camera1') >>> >> newCam['useMatrix'].setValue( True ) >>> >> newCam['matrix'].setValue( cam['world_matrix'].valueAt(300) ) >>> >> >>> >> >>> >> Do I really have to manually iterate over the values to assign them or >>> >> has someone found a nicer way of doing this? >>> >> >>> >> Cheers, >>> >> frank_______________________________________________ >>> >> Nuke-python mailing list >>> >> [email protected] >>> >> http://support.thefoundry.co.uk/cgi-bin/mailman/listinfo/nuke-python >>> >> >>> > >>> _______________________________________________ >>> Nuke-python mailing list >>> [email protected] >>> http://support.thefoundry.co.uk/cgi-bin/mailman/listinfo/nuke-python >>> >>> _______________________________________________ >>> Nuke-python mailing list >>> [email protected] >>> http://support.thefoundry.co.uk/cgi-bin/mailman/listinfo/nuke-python >> >> _______________________________________________ >> Nuke-python mailing list >> [email protected] >> http://support.thefoundry.co.uk/cgi-bin/mailman/listinfo/nuke-python > > > _______________________________________________ > Nuke-python mailing list > [email protected] > http://support.thefoundry.co.uk/cgi-bin/mailman/listinfo/nuke-python > > > _______________________________________________ > Nuke-python mailing list > [email protected] > http://support.thefoundry.co.uk/cgi-bin/mailman/listinfo/nuke-python
_______________________________________________ Nuke-python mailing list [email protected] http://support.thefoundry.co.uk/cgi-bin/mailman/listinfo/nuke-python
