Index: cpp/gdk/neurocls-library.h
===================================================================
--- cpp/gdk/neurocls-library.h	(revision 5)
+++ cpp/gdk/neurocls-library.h	(revision 64)
@@ -1,6 +1,2 @@
-// This file is a part of Framsticks GDK library.
-// Copyright (C) 2002-2006  Szymon Ulatowski.  See LICENSE.txt for details.
-// Refer to http://www.frams.alife.pl/ for further information.
-
 
 // do not edit - generated automatically from "f0.def"
@@ -45,7 +41,8 @@
      static int Touch_xy[]={43,2,7,100,50,90,50,90,40,70,40,80,50,70,60,90,60,90,50,11,75,50,65,50,60,55,55,45,50,55,45,45,40,50,35,50,30,45,25,50,30,55,35,50};   
 static ParamEntry NI_Touch_tab[]={
-{"Touch",1, 0 ,"T",},
-
-
+{"Touch",1, 1 ,"T",},
+
+
+{"r",1,0,"Range","f 0.0 1.0 1.0",},
  
 {0,0,0,},};
@@ -61,5 +58,5 @@
 addClass(new NeuroClass(NI_Smell_tab,"Smell sensor. Aggregated \"smell of energy\" experienced from all energy objects (creatures and food pieces).\nClose objects have bigger influence than the distant ones: for each energy source, its partial feeling is proportional to its energy/(distance^2)",0,1,1, Smell_xy,0,32));
 
-     static int Const_xy[]={26,3,6,100,50,90,50,90,40,70,40,70,60,90,60,90,50,1,85,50,75,50,1,80,45,80,55};   
+     static int Const_xy[]={29,4,4,26,27,26,73,73,73,73,27,26,27,1,73,50,100,50,1,56,68,46,68,2,41,47,51,32,51,68};   
 static ParamEntry NI_Const_tab[]={
 {"Constant",1, 0 ,"*",},
@@ -91,10 +88,11 @@
 addClass(new NeuroClass(NI_RotMuscle_tab,"",1,0,2, RotMuscle_xy,0,2+16+128+4));
 
-     
+     static int Diff_xy[]={24,3,3,25,0,25,100,75,50,25,0,1,75,50,100,50,3,44,42,51,57,36,57,44,42};   
 static ParamEntry NI_Diff_tab[]={
 {"Differentiate",1, 0 ,"D",},
- 
-{0,0,0,},};
-addClass(new NeuroClass(NI_Diff_tab,"Calculate the difference between the current and previous input value. Multiple inputs are aggregated with respect to their weights",-1,1,0, 0,0));
+
+ 
+{0,0,0,},};
+addClass(new NeuroClass(NI_Diff_tab,"Calculate the difference between the current and previous input value. Multiple inputs are aggregated with respect to their weights",-1,1,0, Diff_xy,0,0));
 
      static int FuzzyNeuro_xy[]={44,5,2,30,65,37,37,44,65,3,37,65,44,37,51,37,58,65,2,51,65,58,37,65,65,6,100,50,70,50,70,25,25,10,25,90,70,75,70,50,1,70,65,25,65};   
@@ -108,5 +106,32 @@
  
 {0,0,0,},};
-addClass(new NeuroClass(NI_FuzzyNeuro_tab,"Refer to publications to learn about this neuron",-1,1,0, FuzzyNeuro_xy,0,0));
+addClass(new NeuroClass(NI_FuzzyNeuro_tab,"Refer to publications to learn more about this neuron.",-1,1,0, FuzzyNeuro_xy,0,0));
+
+     static int VectorEye_xy[]={122,11,7,100,50,90,50,90,40,70,40,80,50,70,60,90,60,90,50,14,70,50,65,40,60,35,45,30,30,30,15,35,10,40,5,50,10,60,15,65,30,70,45,70,60,65,65,60,70,50,8,38,67,28,62,23,52,28,42,38,37,48,42,53,52,48,62,38,67,4,33,52,38,47,43,52,38,57,33,52,5,70,50,60,40,45,35,30,35,15,40,5,50,1,53,33,58,22,1,62,36,68,26,1,45,30,47,19,1,35,30,35,19,1,27,31,24,20,1,18,34,12,24};   
+static ParamEntry NI_VectorEye_tab[]={
+{"Vector Eye [EXPERIMENTAL!]",1, 9 ,"VEye",},
+
+{"tx",0,0,"target.x","f   ",},
+{"ty",0,0,"target.y","f   ",},
+{"tz",0,0,"target.z","f   ",},
+{"ts",0,0,"target shape","s 0 -1 0",},
+{"p",0,0,"perspective","f 0.1 10.0 1.0",},
+{"s",0,0,"scale","f 0.1 100.0 1.0",},
+{"h",0,0,"show hidden lines","d 0 1 0",},
+{"o",0,0,"output lines count (each line needs four channels)","d 0 99 0",},
+{"d",0,0,"debug","d 0 1 0",},
+ 
+{0,0,0,},};
+addClass(new NeuroClass(NI_VectorEye_tab,"Refer to publications to learn more about this neuron.",1,1,1, VectorEye_xy,0,0));
+
+     
+static ParamEntry NI_VisualMotorNeuron_tab[]={
+{"Visual-Motor Cortex [EXPERIMENTAL!]",1, 3 ,"VMotor",},
+{"noIF",0,0,"number of basic features","d   ",},
+{"noDim",0,0,"number of degrees of freedom","d   ",},
+{"params",0,0,"parameters","s   ",},
+ 
+{0,0,0,},};
+addClass(new NeuroClass(NI_VisualMotorNeuron_tab,"Must be connected to the VEye and properly set up. Refer to publications to learn more about this neuron.",-1,1,0, 0,0)); 
 
      
@@ -116,5 +141,5 @@
  
 {0,0,0,},};
-addClass(new NeuroClass(NI_Sticky_tab,"",1,0,1, 0,32));
+addClass(new NeuroClass(NI_Sticky_tab,"",1,0,1, 0,16));
 
      
@@ -143,25 +168,28 @@
 addClass(new NeuroClass(NI_Energy_tab,"The current energy level divided by the initial energy level.\nUsually falls from initial 1.0 down to 0.0 and then the creature dies. It can rise above 1.0 if enough food is ingested",0,1,0, 0,32));
 
-     
+     static int Channelize_xy[]={57,10,4,25,0,25,100,75,70,75,30,25,0,1,75,50,100,50,1,70,50,55,50,1,30,80,55,50,1,30,20,55,50,1,30,35,55,50,1,30,45,55,50,1,30,55,55,50,1,61,53,65,47,1,30,65,55,50};   
 static ParamEntry NI_Channelize_tab[]={
 {"Channelize",1, 0 ,"Ch",},
- 
-{0,0,0,},};
-addClass(new NeuroClass(NI_Channelize_tab,"Combines all input signals into a single multichannel output; Note: ChSel and ChMux are the only neurons which support multiple channels. Other neurons discard everything except the first channel.",-1,1,0, 0,0));
-
-     
+
+ 
+{0,0,0,},};
+addClass(new NeuroClass(NI_Channelize_tab,"Combines all input signals into a single multichannel output; Note: ChSel and ChMux are the only neurons which support multiple channels. Other neurons discard everything except the first channel.",-1,1,0, Channelize_xy,0,0));
+
+     static int ChMux_xy[]={52,7,4,25,0,25,100,75,70,75,30,25,0,1,75,50,100,50,1,70,50,55,50,3,50,55,55,50,50,45,50,55,3,30,67,45,67,45,50,50,50,1,35,70,39,64,2,30,33,53,33,53,48};   
 static ParamEntry NI_ChMux_tab[]={
 {"Channel multiplexer",1, 0 ,"ChMux",},
- 
-{0,0,0,},};
-addClass(new NeuroClass(NI_ChMux_tab,"Outputs the selected channel from the second (multichannel) input. The first input is used as the selector value (-1=select first channel, .., 1=last channel)",2,1,0, 0,0));
-
-     
+
+ 
+{0,0,0,},};
+addClass(new NeuroClass(NI_ChMux_tab,"Outputs the selected channel from the second (multichannel) input. The first input is used as the selector value (-1=select first channel, .., 1=last channel)",2,1,0, ChMux_xy,0,0));
+
+     static int ChSel_xy[]={41,6,4,25,0,25,100,75,70,75,30,25,0,1,75,50,100,50,1,70,50,55,50,3,50,55,55,50,50,45,50,55,1,30,50,50,50,1,35,53,39,47};   
 static ParamEntry NI_ChSel_tab[]={
 {"Channel selector",1, 1 ,"ChSel",},
+
 {"ch",0,0,"channel","d   ",},
  
 {0,0,0,},};
-addClass(new NeuroClass(NI_ChSel_tab,"Outputs a single channel (selected by the \"ch\" parameter) from multichannel input",1,1,0, 0,0));
+addClass(new NeuroClass(NI_ChSel_tab,"Outputs a single channel (selected by the \"ch\" parameter) from multichannel input",1,1,0, ChSel_xy,0,0));
 
      
@@ -181,2 +209,3 @@
 {0,0,0,},};
 addClass(new NeuroClass(NI_Sinus_tab,"Output frequency = f0+input",1,1,0, Sinus_xy,0,0));
+
