the simplest explanation for a frame is local coordinate system. So the frame has a basepoint, a x-axis, a y-axis and a z-axis in Moi. Max has created a new combined datatype for points and frames called pointarray which has a high flexibility. Every element consists of 3 coordinates (x,y,z) and 3 Euler angles (Notation X,Y',Z'') and a seventh coordinate (maybe useful for homogenous proposes?). If you create a frame node, a pointarray with one element in it will be created. You can manipulate the angles to orientate this virtual frame. Typically nodes for objects, that needs a frame as an input in Moi, are labeled with center. Nevertheless you can also connect a point node to it, because the angle infos (point node has also pointarray output) and so the frame informations are present. Only limitation: The point node has no rotation inputs. The big advantage of Max design is the flexibility, reduction of wires and make uniformly arrays of points/frames possible. An good example for the flexibility is Max line node: You can connect a single frame or point as input or complete streams of points/frames -> pointarray. The node will do the rest!
I hope you get me, my english is not the best!
Karsten
my name isn't Max, but I can you give a node for that. It's a quick and untested hack of Max geniue concat node for Objects. I have changed only the input and output parameters. Please test it. Maybe Max can integrate something like that in his next release, maybe there is something like that already existing? Only Max know all the features:-)
I have created a Series and a Range Nodes from other example nodes. I like the math node under basic and I was wondering if we can use the math node to generate series and range numbers instead of having separate nodes.
Second question is how I could use these generated number from Series and Range to create points in MOI ( See Attached Image ).
Karsten
>> and a seventh coordinate (maybe useful for homogenous proposes?)
It's a scale :)
>>Maybe Max can integrate something like that in his next release, maybe there is something like that already existing?
I wrote this node already But I'll check your version, maybe I'll find something interesting in it. :)
Marco
>> How would it be possible to collect a specified set of Point objects, into a PointArray ?
added ObjtoArray node. At the moment it works with point objects only.
>>Inside the NodeEditor, it would be possible to render the generated objects, using a particular style, just in order to better highlight them ?
added Style property in the Output node
Pilou
>>An Alert Message when we press "New" ?
Maybe in the next beta release..
>>> But I'll check your version, maybe I'll find something interesting in it. :)
I don't think so! 99% is your own code - interesting could only be some bugs, that I placed in the rest;-)
Series
Range
DegToRad ( degree to Radian Conversion, You can use Math node for this )
RadToDeg ( Radian to Degree Conversion, You can use Math node for this )
pointArray.prototype.pushFrame = function(frame)
{
var rx=ry=rz=0;
if ( frame.zaxis.y === 0 && frame.zaxis.z === 0) { ry = ( frame.xaxis.z > 0 )?90:-90; }
else
{
rx = Math.atan2(frame.zaxis.y, frame.zaxis.z);
ry = -Math.asin(frame.zaxis.x);
rz = Math.atan2(frame.xaxis.z*Math.sin(rx)-frame.xaxis.y*Math.cos(rx), frame.xaxis.x*Math.cos(ry)+(frame.xaxis.y*Math.sin(rx)+frame.xaxis.z*Math.cos(rx))*Math.sin(ry));
}
this.data.push(frame.origin.x); this.data.push(frame.origin.y); this.data.push(frame.origin.z);
this.data.push(rx); this.data.push(ry); this.data.push(rz);
this.data.push(1);
this.xlength++;
}
I'm missing the conversion to deg?
What works for me at the moment is something like:
pointArray.prototype.pushFrame = function (frame)
{
this.data.push(frame.origin.x);
this.data.push(frame.origin.y);
this.data.push(frame.origin.z);
this.data.push(1);
// this.xlength++;
}
Although, for the gimbal lock is a calculation vor rx or rz is missing?? e.g. rz = Math.atan2(frame.yaxis.z,frame.yaxis.y); with rx=0;???
Hey Max,
If you try and set output style property "before" running the node it will produce an error. If you run node first, then style is applied great!
I ran old "jitter node"... But example node and others like motor error out. Hopefully you are just making those future changes now...
It's always no need to translate what is out of the lang.js file ?
(for the Info or some info node message like "(input locked)" when you Right Click on an input node point