Index: /js/viewer-f0/js/NeuronDrawer.js
===================================================================
--- /js/viewer-f0/js/NeuronDrawer.js	(revision 160)
+++ /js/viewer-f0/js/NeuronDrawer.js	(revision 161)
@@ -8,4 +8,9 @@
     this._controls = undefined;
     this._showAxis = false;
+    this._unknown_symbol=[1,4, 25,25, 75,25, 75,75, 25,75, 25,25];
+    this._neuron_symbol=[1,4, 75,50, 25,0, 25,99, 75,50, 100,50];
+    this._inputonly_symbol=[1,5, 25,40, 35,40, 45,50, 35,60, 25,60, 25,40];
+    this._outputonly_symbol=[1,7, 75,50, 75,60, 55,60, 65,50, 55,40, 75,40, 75,50, 100,50];
+
 }
 
@@ -23,5 +28,5 @@
 
 NeuronDrawer.prototype._prepareCamera = function () {
-    this._camera = new THREE.PerspectiveCamera(45, this._canvasWidth / this._canvasHeight, 1, 4000);
+    this._camera = new THREE.PerspectiveCamera(45, this._canvasWidth / this._canvasHeight, 1, 10000);
     this._camera.position.set(0, 0, 10);
     this._camera.lookAt(this._scene.position);
@@ -60,13 +65,9 @@
 }
 
-NeuronDrawer.prototype._debug = function()
-{
-    this._scene.add( new THREE.AxisHelper( 20 ) );
-}
-
-NeuronDrawer.prototype.drawNeuron = function(x, y){
-    var scheme = [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];
-    //pobieranie schematu
-    //inne określenie położeń
+NeuronDrawer.prototype._debug = function () {
+    this._scene.add(new THREE.AxisHelper(20));
+}
+
+NeuronDrawer.prototype.drawNeuron = function (x, y, scheme) {
 
 
@@ -80,10 +81,8 @@
     var noOfLines = 0;//number of line to draw
     noOfBlocks = scheme[position++];
-    for (var i = 0; i < noOfBlocks; i++)
-    {
+    for (var i = 0; i < noOfBlocks; i++) {
         noOfLines = scheme[position++];
 
-        for (var j = 0; j < noOfLines; j++)
-        {
+        for (var j = 0; j < noOfLines; j++) {
             var geometry = new THREE.Geometry();
             geometry.vertices.push(new THREE.Vector3(scheme[position++] + x, scheme[position++] + y, 0));
@@ -98,14 +97,34 @@
     var SCALE = 0.05;
 
-    obj.scale.set(SCALE, SCALE,SCALE);
+    obj.scale.set(SCALE, SCALE, SCALE);
     obj.rotateX(Math.PI);//rotate 180 degree
-    obj.translateY(-5.5);
+    //obj.translateY(-5.5);
     this._scene.add(obj)
-
-}
-
-
-
-NeuronDrawer.prototype.drawConnection = function(id, connections, einfos){
+}
+
+NeuronDrawer.prototype._getNumberOfInputs = function(number, connections){
+
+    var counter = 0;
+
+    for(var i = 0; i < connections.length; i++){
+        if(connections[i].getDestination() == number)
+            counter++;
+    }
+
+    return counter;
+}
+
+NeuronDrawer.prototype._getNumberOfOutputs = function(number, connections){
+    var counter = 0;
+
+    for(var i = 0; i < connections.length; i++){
+        if(connections[i].getSource() == number)
+            counter++;
+    }
+
+    return counter;
+}
+
+NeuronDrawer.prototype.drawConnection = function (id, connections, einfos) {
 
     var destination = connections[id].getDestination();
@@ -114,12 +133,12 @@
 
     //check how many conenctions have the same destination
-    for(var i = 0; i < connections.length; i++){
-        if(connections[i].getDestination() == destination)
+    for (var i = 0; i < connections.length; i++) {
+        if (connections[i].getDestination() == destination)
             numberOfConnToDest++;
     }
 
     //check how many connections had been drawen
-    for(var i = 0; i < id; i++){
-        if(connections[i].getDestination() == destination)
+    for (var i = 0; i < id; i++) {
+        if (connections[i].getDestination() == destination)
             numberOfDrawenCon++;
     }
@@ -142,8 +161,9 @@
     var geometry = new THREE.Geometry();
     geometry.vertices.push(new THREE.Vector3(100 + x2 * 100, 10 + 50 + y2 * 100, 0));
-    geometry.vertices.push(new THREE.Vector3(10 + 100 + x2 * 100 , 10 + 50 + y2 * 100, 0));
+    geometry.vertices.push(new THREE.Vector3(10 + 100 + x2 * 100, 10 + 50 + y2 * 100, 0));
     var line = new THREE.Line(geometry, material);
     line.scale.set(SCALE, SCALE, SCALE);
     this._scene.add(line);
+
 
     var geometry1 = new THREE.Geometry();
@@ -168,6 +188,5 @@
 
     //pierwszy pionowy
-    if (y1 >= y2)
-    {
+    if (y1 >= y2) {
         var geometry = new THREE.Geometry();
         geometry.vertices.push(new THREE.Vector3(110 + (x2 * 100), 60 + y2 * 100, 0));
@@ -179,6 +198,5 @@
     }
 
-    else
-    {
+    else {
         var geometry = new THREE.Geometry();
         geometry.vertices.push(new THREE.Vector3(110 + (x2 * 100), 60 + y2 * 100, 0));
@@ -192,6 +210,5 @@
 
     //poziomy
-    if (y1 >= y2)
-    {
+    if (y1 >= y2) {
         var geometry = new THREE.Geometry();
         geometry.vertices.push(new THREE.Vector3(110 + (x2 * 100), 105 + y2 * 100, 0));
@@ -203,7 +220,5 @@
         //g.drawLine((int) ((110 + (x2 * 100)) * zoom), (int) ((105 + y2 * 100) * zoom), (int) ((10 + polozenieX + (x1 * 100)) * zoom), (int) ((105 + y2 * 100) * zoom));
     }
-
-    else
-    {
+    else {
         var geometry = new THREE.Geometry();
         geometry.vertices.push(new THREE.Vector3(110 + (x2 * 100), 15 + y2 * 100, 0));
@@ -218,6 +233,5 @@
 
     //drugi pionowy
-    if (y1 >= y2)
-    {
+    if (y1 >= y2) {
         var geometry = new THREE.Geometry();
         geometry.vertices.push(new THREE.Vector3(10 + positionX + (x1 * 100), 10 + positionY + y1 * 100, 0));
@@ -229,6 +243,5 @@
         //g.drawLine((int) ((10 + polozenieX + (x1 * 100)) * zoom), (int) ((10 + polozenieY + y1 * 100) * zoom), (int) ((10 + polozenieX + (x1 * 100)) * zoom), (int) ((105 + y2 * 100) * zoom));
     }
-    else
-    {
+    else {
         var geometry = new THREE.Geometry();
         geometry.vertices.push(new THREE.Vector3(10 + positionX + (x1 * 100), 10 + positionY + y1 * 100, 0));
@@ -243,17 +256,43 @@
 }
 
-NeuronDrawer.prototype.drawNetwork = function(neurons, connections, layouts){
-
-    for(var i = 0; i < layouts.length; i++){
-        this.drawNeuron(layouts[i].x * 100, -layouts[i].y * 100);
-    }
-
-    for(var i = 0; i < connections.length; i++)
-        this.drawConnection(i, connections, einfos);
-}
-
-NeuronDrawer.prototype.debugTest = function()
+
+NeuronDrawer.prototype._chooseSchema = function(number, neurons, connections, classes)
 {
-
-}
-
+    var schema = this._unknown_symbol;
+    var type = neurons[number].getSchemeID();
+
+    if(type != undefined)
+    {
+        if(classes[type].getScheme().length != 0)
+        {
+            if(this._getNumberOfInputs(number, connections) == 0)
+                schema = this._outputonly_symbol;
+            else if (this._getNumberOfOutputs(number, connections) == 0)
+                schema = this._inputonly_symbol;
+            else
+                schema = this._neuron_symbol;
+        }
+    }
+
+    return schema;
+}
+
+NeuronDrawer.prototype.drawNetwork = function (neurons, connections, layouts, classes) {
+
+    for (var i = 0; i < layouts.length; i++) {
+        var scheme = undefined;
+
+        scheme = this._chooseSchema(i,neurons, connections, classes)
+
+        this.drawNeuron(layouts[i].x * 100  , -layouts[i].y * 100 , scheme);
+    }
+
+    //for (var i = 0; i < connections.length; i++)
+    //    this.drawConnection(i, connections, einfos);
+}
+
+
+NeuronDrawer.prototype.debugTest = function () {
+
+}
+
Index: /js/viewer-f0/js/Structures/Neuro.js
===================================================================
--- /js/viewer-f0/js/Structures/Neuro.js	(revision 160)
+++ /js/viewer-f0/js/Structures/Neuro.js	(revision 161)
@@ -5,2 +5,12 @@
 
 Neuro.prototype = new Model();
+
+Neuro.prototype.getSchemeID = function(){
+    var type = this._properties["d"]["VALUE"];
+    type = type.replace("\"","");
+    var index = type.indexOf(":");
+    if(index != -1)
+        type = type.substr(0, index);
+
+    return type;
+}
