Parametric design in MoI?
 1-2  …  343-362  363-382  383-402  403-422  423-442  …  903-912

Previous
Next
 From:  Max Smirnov (SMIRNOV)
7713.383 
Yes! I did it! :)
In this version I replaced "number" type with "numarray". Nodeeditor now uses only three types of data: objectlist (built-in moi type, in fact it's object array), point/frame array, number array.
Now you can send multiple values to each node input.
For example, you can create Circle node and set radius "10,15,33", and you will get three circles(use "," as array separator and "." as decimal separator).
Or create Point node and set X "0,2,4", Y "0,3,6", Z "0,5,10". In this case nodeeditor will process all arrays simultaneously. You will get three points(x,y,z): (0,0,0) (2,3,5) (4,6,9)
Also you can set arrays with a different lengths. In this case the arrays can be processed with different methods. Right now I implemented two methods "Long" and "Short"
This picture will help you to understand how it works.

Later I'll add Cross and Interpolation modes. But first I need to make "resize/interpolation" node.
Also I need to make Range slider node because some nodes uses arrays as range settings.

EDITED: 7 Mar 2022 by SMIRNOV

  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
Next
 From:  mkdm
7713.384 In reply to 7713.383 
Hi Max!

I'm very glad to read this your post! :)

Finally now I can rewrite and finish all my utility nodes.

Tomorrow i will start to test your new NodeEditor.

Thanks a lot and good night!

- Marco (mkdm)
  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
Next
 From:  Frenchy Pilou (PILOU)
7713.385 
Variable geometry! :)

French version of the Manual! ;)
http://moiscript.weebly.com/elephant-systegraveme-nodal.html

EDITED: 21 Sep 2016 by PILOU

  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
Next
 From:  Max Smirnov (SMIRNOV)
7713.386 In reply to 7713.385 
Hi Pilou

It seems you've got duplicated arrays. Is that bug?
  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
Next
 From:  Max Smirnov (SMIRNOV)
7713.387 
Short mode bug fixed

EDITED: 7 Mar 2022 by SMIRNOV

  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
Next
 From:  Frenchy Pilou (PILOU)
7713.388 In reply to 7713.386 
:)
I have just launch the script! ;)
I see that was advantageous! :D
  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
Next
 From:  Max Smirnov (SMIRNOV)
7713.389 In reply to 7713.388 
I can't reproduce this bug. It looks like you accidentally pressed Apply button.
  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
Next
 From:  Frenchy Pilou (PILOU)
7713.390 In reply to 7713.389 
Surrely because I relaunch Moi and all works fine! ;)
---
Pilou
Is beautiful that please without concept!
My Gallery
  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
Next
 From:  Frenchy Pilou (PILOU)
7713.391 
Can i start translations of new nodes or I must wait some other updates?

PS I suppose this can be made ?

EDITED: 22 Sep 2016 by PILOU

  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
Next
 From:  Karsten (KMRQUS)
7713.392 In reply to 7713.383 
Hello Max,

thanks for sharing this great work. I've started to study your changes and saw there are a lot. I think it will take a while, until I understand all the improvements. I've tested also some of my old nodes without number inputs and they all seems to work:-) Only the pushFrame has still the rad/deg conversion problem?

Thanks a lot and have a nice day
Karsten
  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
Next
 From:  Max Smirnov (SMIRNOV)
7713.393 In reply to 7713.392 
Hi Karsten,

>Only the pushFrame has still the rad/deg conversion problem?
I've forgot about this. Fixed. :)

>I think it will take a while, until I understand all the improvements.
Most noticable change is processInOut function. I'll explain how to use it.
  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
Next
 From:  mkdm
7713.394 In reply to 7713.393 
Hi Max,

> Most noticable change is processInOut function. I'll explain how to use it.

Explanations will be much appreciated. Thanks.

- Marco (mkdm)
  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
Next
 From:  Max Smirnov (SMIRNOV)
7713.395 
Just finished my supper :) Now I'm ready to explain how to write nodes for the last version of nodeeditor.

this is an example. check the comments
code:
function Star() // let's make a new node
{
	this.addInput("Center","pointarray");		// input 0, type: pointarray
	this.addInput("Radius","numarray");		// input 1, type: numarray. In fact it's just a common numeric array like [1,2,3,4,5]
	this.addInput("Ratio","numarray");		// input 2, type: numarray
	this.addInput("Sides","numarray");		// input 3, type: numarray
	this.addOutput("Out","objectlist");		// output 0, type: objectlist
	this.properties = { mode:["Long","Long","Short"], radius:[1], ratio:[0.4], sides:[5] };
	// each node has two types of properties. both of them will stored when you save a .nod file, or clone a node
	// there  are only one difference: .properties is shown in nodeinfo panel and .internal is hidden
	// string arrays like mode:["Long","Long","Short"] will be processed as a droplist. First value "Long" points to selected value. Other ones is available values: "Long", "Short".
	// numeric arrays will be processed as numarrays
}

Star.title = "Star";	// default title
Star.desc = "Star";	// legacy litegraph parameter. At the moment I don't use it.

Star.prototype.onExecute = function()	// this function will run on node execution command
{
	var data = this.processInOut(this.properties.mode[0], this.multiProcess, null, this.properties.radius, this.properties.ratio, this.properties.sides);
	// .processInOut function processes input arrays and creates output arrays
	// first parameter: (string) array processing mode. 
	// modes supported:
	// Short, Long as described above in my post
	// Short+, Long+ same as  Short, Long, but objectarray will be processed as one element
	// Long# same as Long, but pointarray will be processed as one element
	// second parameter: callback function which will be called for processing of each value set (important!)
	// other parameters is optional. it's a default values for each input, which will be used if the input is not connected
	// you may skip it or set it to null. in this case processInOut function will generate default value automatically.
	// autovalue for numarray: [0]
	// autovalue for pointarray: (0,0,0)
	// autovalue for objectlist: empty objectlist
	// if you want to use another values, you need to set them directly like in this example:
	// null - autovalue(0,0,0),  this.properties.radius - [1],  this.properties.ratio - [0.4],  this.properties.sides - [5]
	
	// this function returns structure { inputs:[ input0, input1, ... input n], outputs:[output0, output1, ... output n]}
	// input0, input1, ... input n  - if the input connected, it wil return connected node data
	// output0, output1, ... output n  - returns concated output data generated by callback function for each output
	
	this.properties.radius = data.inputs[1];  // you can update properties values if input data is changed
	this.properties.ratio = data.inputs[2];
	this.properties.sides = data.inputs[3];
	this.setOutputData(0, data.outputs[0]); // set node output data
}

Star.prototype.multiProcess = function(center, r, rt, s) // callback function which will be called for processing of each value set (center = input0, r = input1, rt = input2, s = input3)
{
	// object array data will be sent as objectarray with one object (except Long+ Short+ modes)
	// point array data will be sent as pointarray with one object (except Long# mode)
	// numarray data will be sent as number
	
	var frame = center.getFrame();  // center.getFrame() = center.getFrame(0);
	return [factory( 'polygonstar', frame, frame.evaluate( 0, r, 0 ), s, frame.evaluate( 0, r*rt, 0 ))];
	// this function should return array [ output0, output1, ... output n ]
	// return [factory( 'polygonstar', frame, frame.evaluate( 0, r, 0 ), s, frame.evaluate( 0, r*rt, 0 ))] 
	// is the same as
	// var outputs = [];
	// outputs[0] = factory( 'polygonstar', frame, frame.evaluate( 0, r, 0 ), s, frame.evaluate( 0, r*rt, 0 ));
	// return outputs;
	// if node has more than one output you nned to set outputs[1], outputs[2] .. etc
	// correct output[n] data is objectlist / pointarray / number
}

LiteGraph.registerNodeType("Curves/Star", Star);
  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
Next
 From:  Max Smirnov (SMIRNOV)
7713.396 
Frenchy Pilou
>Can i start translations of new nodes or I must wait some other updates?
No need to wait, you can start now

>PS I suppose this can be made ?
I can't implement this using current javascript api. Let's wait until Michael release MoI v.4.
  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
Next
 From:  Frenchy Pilou (PILOU)
7713.397 In reply to 7713.396 
So maybe tomorrow! :)
And wait & see 4
---
Pilou
Is beautiful that please without concept!
My Gallery
  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
Next
 From:  Karsten (KMRQUS)
7713.398 In reply to 7713.395 
Hello Max,

many thanks for the commented example. The important information for me at first is the automatic assignment of the sequence of the inputs to the parameters sequence of the callback, I supposed that, but I was not shure.
(// callback function which will be called for processing of each value set (center = input0, r = input1, rt = input2, s = input3) )
Am I right, that I can also direct access to the elements of a numarray with [] ? I can't find a explicit definition of that type!?

Have a nice evening
Karsten

p.s.: Incredible what is possible!
  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
Next
 From:  Max Smirnov (SMIRNOV)
7713.399 In reply to 7713.398 
Karsten
>Am I right, that I can also direct access to the elements of a numarray with [] ?
Yes, you can access any element. It's just an array like [1,2,3,4,5].
  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
Next
 From:  mkdm
7713.400 In reply to 7713.395 
Hi Max,

Thanks a lot for the little tutorial. Much appreciated.

When I used previous versions of Project Elephant, I needed to comb through the code many times to understand the businnes logic...

I'm going to transfer this new logic into my old nodes.

Good night!

- Marco (mkdm)
  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
Next
 From:  speedy (AL2000)
7713.401 In reply to 7713.400 
Hello
My Friends I are in confusion.............
I started using Elephant, and I uploaded some applications....
Now, I post pictures of my ui
where you see what I've uploaded ...

Considering the last release of the legendary Max
the question is;
What should I charge, to have the updated features, I can add
that load in my Node Editor without removing what is already
..... or , do I have to remove everything, and in this case what should I enter

I await yours suggestion
regards
al

sorry for my bad English, I hope
I understand my problem















  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged

Previous
Next
 From:  Karsten (KMRQUS)
7713.402 In reply to 7713.401 
Hello Al,

it seems that you use a very old version of the Elephant.(Date 2015). So you should rename your nodeeditor folder to e.g. nodeeditor-old. Than extract the archive and rename the folder nodeeditor.0.77.a to nodeeditor. Copy the folder to /ui of your Moi installation. Your node-files will not work with the new version - if you need them, you can change or dublicate your shortcut-key and can use them also.

Have a nice day
Karsten
  Reply Reply More Options
Post Options
Reply as PM Reply as PM
Print Print
Mark as unread Mark as unread
Relationship Relationship
IP Logged
 

Reply to All Reply to All

 

 
Show messages:  1-2  …  323-342  343-362  363-382  383-402  403-422  423-442  443-462  …  903-912