RobynsVeil opened this issue on Jan 24, 2009 · 490 posts
bagginsbill posted Tue, 02 June 2009 at 9:02 AM
You can explicitly set the coordinates of a node by setting its pos attribute to a tuple containing x,y coordinates.
For example:
color = SimpleColor(RED).labelled("Choose Color")
color.pos =120, 20
However, other nodes may automatically be placed in the same area. Matmatmic chooses positions for nodes automatically based on when it first sees them starting from the surface node and moving outward. It lays them out in columns using a tricky algorithm.
Lately I've been moving the surface over to the right a couple columns. This makes matmatic lay out other nodes to the right of that, leaving the left side empty. Then I position my parameter nodes on the left side.
I do this using a little hack right in the script, where I make a list of parameter nodes and call this hackpos function. It's a bit involved, but easier than manual placement.
I've attached an example script that contains the hackpos function and its helper functions, as well as a simple example.
In the script, I only make one material. If you are making multiple materials, be sure you create a new parameter list (or two of them if you're doing the two-column layout) for each material.
As for the parmatic parameter order - I didn't provide a way to control that. I think it just adds them in the order they are encountered in the file. If it is really important to order them, you can do so by making a pz2 file that creates parameter groups and specifies the order of the parameters. I did this for the AMUCFS.
I never continued development of parmatic, because I plan for VSS to supercede that whole idea. With VSS Pro, you will see all your material parameters in a nice GUI, including the color ones, and we won't have to deal with building parameter dials on the prop or figure.
Renderosity forum reply notifications are wonky. If I read a follow-up in a thread, but I don't myself reply, then notifications no longer happen AT ALL on that thread. So if I seem to be ignoring a question, that's why. (Updated September 23, 2019)