Browse Source

Publish to NPM

tentone 5 years ago
parent
commit
7eee04fde3
71 changed files with 2159 additions and 608 deletions
  1. 16 3
      README.md
  2. 13 1
      build/escher.js
  3. 0 0
      build/escher.min.js
  4. 13 1
      build/escher.module.js
  5. 108 29
      docs/BezierCurve.html
  6. 108 29
      docs/Box.html
  7. 1 1
      docs/Box2.html
  8. 108 29
      docs/BoxMask.html
  9. 108 29
      docs/Circle.html
  10. 106 27
      docs/DOM.html
  11. 1 1
      docs/EventManager.html
  12. 1 1
      docs/EventManager.js.html
  13. 1 1
      docs/FileUtils.html
  14. 108 29
      docs/Graph.html
  15. 1 1
      docs/Helpers.html
  16. 108 29
      docs/Image.html
  17. 1 1
      docs/Key.html
  18. 108 29
      docs/Line.html
  19. 108 29
      docs/Mask.html
  20. 1 1
      docs/Matrix.html
  21. 108 29
      docs/MultiLineText.html
  22. 108 29
      docs/Node.html
  23. 108 29
      docs/NodeConnector.html
  24. 108 29
      docs/NodeGraph.html
  25. 108 29
      docs/NodeSocket.html
  26. 106 32
      docs/Object2D.html
  27. 14 2
      docs/Object2D.js.html
  28. 108 29
      docs/Pattern.html
  29. 1 1
      docs/Pointer.html
  30. 108 29
      docs/QuadraticCurve.html
  31. 1 1
      docs/Renderer.html
  32. 1 1
      docs/Renderer.js.html
  33. 108 29
      docs/RoundedBox.html
  34. 108 29
      docs/Text.html
  35. 1 1
      docs/UUID.html
  36. 1 1
      docs/Vector2.html
  37. 1 1
      docs/Viewport.html
  38. 1 1
      docs/Viewport.js.html
  39. 1 1
      docs/ViewportControls.html
  40. 1 1
      docs/controls_ViewportControls.js.html
  41. 1 1
      docs/global.html
  42. 1 1
      docs/index.html
  43. 1 1
      docs/input_Key.js.html
  44. 1 1
      docs/input_Pointer.js.html
  45. 1 1
      docs/math_Box2.js.html
  46. 1 1
      docs/math_Matrix.js.html
  47. 1 1
      docs/math_UUID.js.html
  48. 1 1
      docs/math_Vector2.js.html
  49. 1 1
      docs/objects_BezierCurve.js.html
  50. 1 1
      docs/objects_Box.js.html
  51. 1 1
      docs/objects_Circle.js.html
  52. 1 1
      docs/objects_DOM.js.html
  53. 1 1
      docs/objects_Graph.js.html
  54. 1 1
      docs/objects_Image.js.html
  55. 1 1
      docs/objects_Line.js.html
  56. 1 1
      docs/objects_MultiLineText.js.html
  57. 1 1
      docs/objects_Pattern.js.html
  58. 1 1
      docs/objects_QuadraticCurve.js.html
  59. 1 1
      docs/objects_RoundedBox.js.html
  60. 1 1
      docs/objects_Text.js.html
  61. 1 1
      docs/objects_mask_BoxMask.js.html
  62. 1 1
      docs/objects_mask_Mask.js.html
  63. 1 1
      docs/objects_node_Node.js.html
  64. 1 1
      docs/objects_node_NodeConnector.js.html
  65. 1 1
      docs/objects_node_NodeGraph.js.html
  66. 1 1
      docs/objects_node_NodeSocket.js.html
  67. 1 1
      docs/utils_FileUtils.js.html
  68. 1 1
      docs/utils_Helpers.js.html
  69. 4 0
      examples/node.html
  70. 1 1
      package.json
  71. 6 4
      source/Object2D.js

+ 16 - 3
README.md

@@ -138,6 +138,18 @@ class CustomObject extends Escher.Node
 Escher.Object2D.register(CustomObject, "CustomObject");
 ```
 
+- When creating custom objects that are composed of multiple base objects built on the constructor you will need to disable serialization for those objects (otherwise there will be duplicated instances on parse). This can be done by settings the `serializable` attribute to false.
+
+```javascript
+constructor()
+{
+	super();
+	this.text = new Escher.Text();
+	this.text.serializable = false;
+	this.add(this.text);
+}
+```
+
 
 
 ### Pointer events
@@ -197,9 +209,10 @@ dom.element.appendChild(text);
 
 ### Integrating external libraries
 
-- Its possible to integrate external canvas based libraries with this framework, just be sure that the library provides methods to directly draw to the canvas context without resetting its state.
-- Other easier but slower way to integrate libraries that works for libraries that do not support canvas as argument in their draw functions is to copy the content from their own self managed canvas into the object draw method.
-- Here is an example using the [tiff.js](https://github.com/seikichi/tiff.js) library to draw tiff images, it creates an internal canvas ands does not provide a draw into this context method.
+- Its possible to integrate external canvas based libraries with this framework.  The external library need to provide direct access to its drawing  canvas context without resetting its state.
+- Another solution to (easier but slower) to integrate libraries is to copy the content from their own self managed canvas into the object draw method.
+- Here is an example using the [tiff.js](https://github.com/seikichi/tiff.js) library to draw tiff images using the second method. It creates an internal canvas ands does not provide a draw into this context method.
+  - Here we are using the `context.drawImage()` method to copy the content from the internal canvas to the drawing object.
 
 ```javascript
 // Read the tiff data as arraybuffer from file

+ 13 - 1
build/escher.js

@@ -947,6 +947,15 @@
 		 * @type {boolean}
 		 */
 		this.beingDragged = false;
+
+		/**
+		 * Indicates if the object should be serialized or not as a child of another object.
+		 *
+		 * Used to prevent duplicate serialization data on custom objects. Should be set false for objects added on constructor.
+		 *
+		 * @type {boolean}
+		 */
+		this.serializable = true;
 	}
 
 	Object2D.prototype.constructor = Object2D;
@@ -1377,7 +1386,10 @@
 		{
 			for(var i = 0; i < this.children.length; i++)
 			{
-				data.children.push(this.children[i].serialize());
+				if(this.children[i].serializable)
+				{
+					data.children.push(this.children[i].serialize());
+				}
 			}
 		}
 

File diff suppressed because it is too large
+ 0 - 0
build/escher.min.js


+ 13 - 1
build/escher.module.js

@@ -941,6 +941,15 @@ function Object2D()
 	 * @type {boolean}
 	 */
 	this.beingDragged = false;
+
+	/**
+	 * Indicates if the object should be serialized or not as a child of another object.
+	 *
+	 * Used to prevent duplicate serialization data on custom objects. Should be set false for objects added on constructor.
+	 *
+	 * @type {boolean}
+	 */
+	this.serializable = true;
 }
 
 Object2D.prototype.constructor = Object2D;
@@ -1371,7 +1380,10 @@ Object2D.prototype.serialize = function(recursive)
 	{
 		for(var i = 0; i < this.children.length; i++)
 		{
-			data.children.push(this.children[i].serialize());
+			if(this.children[i].serializable)
+			{
+				data.children.push(this.children[i].serialize());
+			}
 		}
 	}
 

+ 108 - 29
docs/BezierCurve.html

@@ -519,7 +519,7 @@ Should be implemented by underlying classes.
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line474">line 474</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line483">line 483</a>
     </li></ul></dd>
     
 
@@ -1521,7 +1521,7 @@ The matrix is updated before rendering the object, after the matrix is updated t
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line516">line 516</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line525">line 525</a>
     </li></ul></dd>
     
 
@@ -1588,7 +1588,7 @@ The matrix is updated before rendering the object, after the matrix is updated t
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line582">line 582</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line591">line 591</a>
     </li></ul></dd>
     
 
@@ -1655,7 +1655,7 @@ The matrix is updated before rendering the object, after the matrix is updated t
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line566">line 566</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line575">line 575</a>
     </li></ul></dd>
     
 
@@ -1722,7 +1722,7 @@ The matrix is updated before rendering the object, after the matrix is updated t
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line590">line 590</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line599">line 599</a>
     </li></ul></dd>
     
 
@@ -1789,7 +1789,7 @@ The matrix is updated before rendering the object, after the matrix is updated t
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line574">line 574</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line583">line 583</a>
     </li></ul></dd>
     
 
@@ -1856,7 +1856,7 @@ The matrix is updated before rendering the object, after the matrix is updated t
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line509">line 509</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line518">line 518</a>
     </li></ul></dd>
     
 
@@ -1923,7 +1923,7 @@ The matrix is updated before rendering the object, after the matrix is updated t
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line501">line 501</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line510">line 510</a>
     </li></ul></dd>
     
 
@@ -1992,7 +1992,7 @@ It is not called while the pointer is inside of the object, just on the first ti
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line542">line 542</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line551">line 551</a>
     </li></ul></dd>
     
 
@@ -2059,7 +2059,7 @@ It is not called while the pointer is inside of the object, just on the first ti
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line550">line 550</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line559">line 559</a>
     </li></ul></dd>
     
 
@@ -2126,7 +2126,7 @@ It is not called while the pointer is inside of the object, just on the first ti
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line558">line 558</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line567">line 567</a>
     </li></ul></dd>
     
 
@@ -2193,7 +2193,7 @@ It is not called while the pointer is inside of the object, just on the first ti
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line523">line 523</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line532">line 532</a>
     </li></ul></dd>
     
 
@@ -2264,7 +2264,7 @@ This method is called for every object before rendering.
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line532">line 532</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line541">line 541</a>
     </li></ul></dd>
     
 
@@ -2985,6 +2985,85 @@ The world scale of the object is affected by the parent transform.
 
         
             
+<h4 class="name" id="serializable"><span class="type-signature"></span>serializable<span class="type-signature"> :boolean</span></h4>
+
+
+
+
+<div class="description">
+    Indicates if the object should be serialized or not as a child of another object.
+
+Used to prevent duplicate serialization data on custom objects. Should be set false for objects added on constructor.
+</div>
+
+
+
+    <h5>Type:</h5>
+    <ul>
+        <li>
+            
+<span class="param-type">boolean</span>
+
+
+        </li>
+    </ul>
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+    <dt class="inherited-from">Inherited From:</dt>
+    <dd class="inherited-from"><ul class="dummy"><li>
+        <a href="Object2D.html#serializable">Object2D#serializable</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line210">line 210</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+            
 <h4 class="name" id="strokeStyle"><span class="type-signature"></span>strokeStyle<span class="type-signature"> :string</span></h4>
 
 
@@ -3115,7 +3194,7 @@ Should be implemented by underlying classes.
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line463">line 463</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line472">line 472</a>
     </li></ul></dd>
     
 
@@ -3347,7 +3426,7 @@ If this type is from an external library you can add the library name to the obj
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line215">line 215</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line224">line 224</a>
     </li></ul></dd>
     
 
@@ -3776,7 +3855,7 @@ The object is set as children of this object and the transformations applied to
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line358">line 358</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line367">line 367</a>
     </li></ul></dd>
     
 
@@ -3869,7 +3948,7 @@ The object is set as children of this object and the transformations applied to
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line307">line 307</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line316">line 316</a>
     </li></ul></dd>
     
 
@@ -4011,7 +4090,7 @@ The object is set as children of this object and the transformations applied to
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line336">line 336</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line345">line 345</a>
     </li></ul></dd>
     
 
@@ -4198,7 +4277,7 @@ The object is set as children of this object and the transformations applied to
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line249">line 249</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line258">line 258</a>
     </li></ul></dd>
     
 
@@ -4366,7 +4445,7 @@ To check if a point in world coordinates intersects the object the inverseGlobal
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line411">line 411</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line420">line 420</a>
     </li></ul></dd>
     
 
@@ -4553,7 +4632,7 @@ To check if a point in world coordinates intersects the object the inverseGlobal
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line279">line 279</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line288">line 288</a>
     </li></ul></dd>
     
 
@@ -4792,7 +4871,7 @@ To detect when the object drag stops the onPointerDragEnd() method can be used.
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line490">line 490</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line499">line 499</a>
     </li></ul></dd>
     
 
@@ -4961,7 +5040,7 @@ Dont forget to register object types using the Object2D.register() method.
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line654">line 654</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line666">line 666</a>
     </li></ul></dd>
     
 
@@ -5103,7 +5182,7 @@ Dont forget to register object types using the Object2D.register() method.
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line379">line 379</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line388">line 388</a>
     </li></ul></dd>
     
 
@@ -5249,7 +5328,7 @@ Data has to be parsed back into a usable object.
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line602">line 602</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line611">line 611</a>
     </li></ul></dd>
     
 
@@ -5461,7 +5540,7 @@ This is called before style() and draw(). It can also be used for some pre-rende
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line447">line 447</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line456">line 456</a>
     </li></ul></dd>
     
 
@@ -5603,7 +5682,7 @@ This is called before style() and draw(). It can also be used for some pre-rende
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line320">line 320</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line329">line 329</a>
     </li></ul></dd>
     
 
@@ -5745,7 +5824,7 @@ This is called before style() and draw(). It can also be used for some pre-rende
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line421">line 421</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line430">line 430</a>
     </li></ul></dd>
     
 
@@ -5797,7 +5876,7 @@ This is called before style() and draw(). It can also be used for some pre-rende
 <br class="clear">
 
 <footer>
-    Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.4</a> on Mon May 18 2020 18:45:41 GMT+0100 (Western European Summer Time)
+    Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.4</a> on Tue May 19 2020 10:16:34 GMT+0100 (Western European Summer Time)
 </footer>
 
 <script> prettyPrint(); </script>

+ 108 - 29
docs/Box.html

@@ -502,7 +502,7 @@ Should be implemented by underlying classes.
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line474">line 474</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line483">line 483</a>
     </li></ul></dd>
     
 
@@ -1402,7 +1402,7 @@ The matrix is updated before rendering the object, after the matrix is updated t
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line516">line 516</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line525">line 525</a>
     </li></ul></dd>
     
 
@@ -1469,7 +1469,7 @@ The matrix is updated before rendering the object, after the matrix is updated t
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line582">line 582</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line591">line 591</a>
     </li></ul></dd>
     
 
@@ -1536,7 +1536,7 @@ The matrix is updated before rendering the object, after the matrix is updated t
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line566">line 566</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line575">line 575</a>
     </li></ul></dd>
     
 
@@ -1603,7 +1603,7 @@ The matrix is updated before rendering the object, after the matrix is updated t
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line590">line 590</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line599">line 599</a>
     </li></ul></dd>
     
 
@@ -1670,7 +1670,7 @@ The matrix is updated before rendering the object, after the matrix is updated t
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line574">line 574</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line583">line 583</a>
     </li></ul></dd>
     
 
@@ -1737,7 +1737,7 @@ The matrix is updated before rendering the object, after the matrix is updated t
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line509">line 509</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line518">line 518</a>
     </li></ul></dd>
     
 
@@ -1804,7 +1804,7 @@ The matrix is updated before rendering the object, after the matrix is updated t
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line501">line 501</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line510">line 510</a>
     </li></ul></dd>
     
 
@@ -1873,7 +1873,7 @@ It is not called while the pointer is inside of the object, just on the first ti
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line542">line 542</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line551">line 551</a>
     </li></ul></dd>
     
 
@@ -1940,7 +1940,7 @@ It is not called while the pointer is inside of the object, just on the first ti
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line550">line 550</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line559">line 559</a>
     </li></ul></dd>
     
 
@@ -2007,7 +2007,7 @@ It is not called while the pointer is inside of the object, just on the first ti
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line558">line 558</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line567">line 567</a>
     </li></ul></dd>
     
 
@@ -2074,7 +2074,7 @@ It is not called while the pointer is inside of the object, just on the first ti
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line523">line 523</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line532">line 532</a>
     </li></ul></dd>
     
 
@@ -2145,7 +2145,7 @@ This method is called for every object before rendering.
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line532">line 532</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line541">line 541</a>
     </li></ul></dd>
     
 
@@ -2866,6 +2866,85 @@ The world scale of the object is affected by the parent transform.
 
         
             
+<h4 class="name" id="serializable"><span class="type-signature"></span>serializable<span class="type-signature"> :boolean</span></h4>
+
+
+
+
+<div class="description">
+    Indicates if the object should be serialized or not as a child of another object.
+
+Used to prevent duplicate serialization data on custom objects. Should be set false for objects added on constructor.
+</div>
+
+
+
+    <h5>Type:</h5>
+    <ul>
+        <li>
+            
+<span class="param-type">boolean</span>
+
+
+        </li>
+    </ul>
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+    <dt class="inherited-from">Inherited From:</dt>
+    <dd class="inherited-from"><ul class="dummy"><li>
+        <a href="Object2D.html#serializable">Object2D#serializable</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line210">line 210</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+            
 <h4 class="name" id="strokeStyle"><span class="type-signature"></span>strokeStyle<span class="type-signature"></span></h4>
 
 
@@ -2983,7 +3062,7 @@ Should be implemented by underlying classes.
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line463">line 463</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line472">line 472</a>
     </li></ul></dd>
     
 
@@ -3064,7 +3143,7 @@ If this type is from an external library you can add the library name to the obj
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line215">line 215</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line224">line 224</a>
     </li></ul></dd>
     
 
@@ -3354,7 +3433,7 @@ The object is set as children of this object and the transformations applied to
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line358">line 358</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line367">line 367</a>
     </li></ul></dd>
     
 
@@ -3447,7 +3526,7 @@ The object is set as children of this object and the transformations applied to
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line307">line 307</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line316">line 316</a>
     </li></ul></dd>
     
 
@@ -3589,7 +3668,7 @@ The object is set as children of this object and the transformations applied to
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line336">line 336</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line345">line 345</a>
     </li></ul></dd>
     
 
@@ -3776,7 +3855,7 @@ The object is set as children of this object and the transformations applied to
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line249">line 249</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line258">line 258</a>
     </li></ul></dd>
     
 
@@ -3944,7 +4023,7 @@ To check if a point in world coordinates intersects the object the inverseGlobal
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line411">line 411</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line420">line 420</a>
     </li></ul></dd>
     
 
@@ -4131,7 +4210,7 @@ To check if a point in world coordinates intersects the object the inverseGlobal
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line279">line 279</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line288">line 288</a>
     </li></ul></dd>
     
 
@@ -4370,7 +4449,7 @@ To detect when the object drag stops the onPointerDragEnd() method can be used.
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line490">line 490</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line499">line 499</a>
     </li></ul></dd>
     
 
@@ -4539,7 +4618,7 @@ Dont forget to register object types using the Object2D.register() method.
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line654">line 654</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line666">line 666</a>
     </li></ul></dd>
     
 
@@ -4681,7 +4760,7 @@ Dont forget to register object types using the Object2D.register() method.
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line379">line 379</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line388">line 388</a>
     </li></ul></dd>
     
 
@@ -4827,7 +4906,7 @@ Data has to be parsed back into a usable object.
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line602">line 602</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line611">line 611</a>
     </li></ul></dd>
     
 
@@ -5039,7 +5118,7 @@ This is called before style() and draw(). It can also be used for some pre-rende
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line447">line 447</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line456">line 456</a>
     </li></ul></dd>
     
 
@@ -5181,7 +5260,7 @@ This is called before style() and draw(). It can also be used for some pre-rende
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line320">line 320</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line329">line 329</a>
     </li></ul></dd>
     
 
@@ -5323,7 +5402,7 @@ This is called before style() and draw(). It can also be used for some pre-rende
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line421">line 421</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line430">line 430</a>
     </li></ul></dd>
     
 
@@ -5375,7 +5454,7 @@ This is called before style() and draw(). It can also be used for some pre-rende
 <br class="clear">
 
 <footer>
-    Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.4</a> on Mon May 18 2020 18:45:41 GMT+0100 (Western European Summer Time)
+    Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.4</a> on Tue May 19 2020 10:16:34 GMT+0100 (Western European Summer Time)
 </footer>
 
 <script> prettyPrint(); </script>

+ 1 - 1
docs/Box2.html

@@ -3271,7 +3271,7 @@ Store the result in this object.
 <br class="clear">
 
 <footer>
-    Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.4</a> on Mon May 18 2020 18:45:41 GMT+0100 (Western European Summer Time)
+    Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.4</a> on Tue May 19 2020 10:16:34 GMT+0100 (Western European Summer Time)
 </footer>
 
 <script> prettyPrint(); </script>

+ 108 - 29
docs/BoxMask.html

@@ -512,7 +512,7 @@ Should be implemented by underlying classes.
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line474">line 474</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line483">line 483</a>
     </li></ul></dd>
     
 
@@ -1358,7 +1358,7 @@ The matrix is updated before rendering the object, after the matrix is updated t
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line516">line 516</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line525">line 525</a>
     </li></ul></dd>
     
 
@@ -1425,7 +1425,7 @@ The matrix is updated before rendering the object, after the matrix is updated t
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line582">line 582</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line591">line 591</a>
     </li></ul></dd>
     
 
@@ -1492,7 +1492,7 @@ The matrix is updated before rendering the object, after the matrix is updated t
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line566">line 566</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line575">line 575</a>
     </li></ul></dd>
     
 
@@ -1559,7 +1559,7 @@ The matrix is updated before rendering the object, after the matrix is updated t
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line590">line 590</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line599">line 599</a>
     </li></ul></dd>
     
 
@@ -1626,7 +1626,7 @@ The matrix is updated before rendering the object, after the matrix is updated t
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line574">line 574</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line583">line 583</a>
     </li></ul></dd>
     
 
@@ -1693,7 +1693,7 @@ The matrix is updated before rendering the object, after the matrix is updated t
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line509">line 509</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line518">line 518</a>
     </li></ul></dd>
     
 
@@ -1760,7 +1760,7 @@ The matrix is updated before rendering the object, after the matrix is updated t
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line501">line 501</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line510">line 510</a>
     </li></ul></dd>
     
 
@@ -1829,7 +1829,7 @@ It is not called while the pointer is inside of the object, just on the first ti
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line542">line 542</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line551">line 551</a>
     </li></ul></dd>
     
 
@@ -1896,7 +1896,7 @@ It is not called while the pointer is inside of the object, just on the first ti
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line550">line 550</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line559">line 559</a>
     </li></ul></dd>
     
 
@@ -1963,7 +1963,7 @@ It is not called while the pointer is inside of the object, just on the first ti
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line558">line 558</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line567">line 567</a>
     </li></ul></dd>
     
 
@@ -2030,7 +2030,7 @@ It is not called while the pointer is inside of the object, just on the first ti
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line523">line 523</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line532">line 532</a>
     </li></ul></dd>
     
 
@@ -2101,7 +2101,7 @@ This method is called for every object before rendering.
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line532">line 532</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line541">line 541</a>
     </li></ul></dd>
     
 
@@ -2822,6 +2822,85 @@ The world scale of the object is affected by the parent transform.
 
         
             
+<h4 class="name" id="serializable"><span class="type-signature"></span>serializable<span class="type-signature"> :boolean</span></h4>
+
+
+
+
+<div class="description">
+    Indicates if the object should be serialized or not as a child of another object.
+
+Used to prevent duplicate serialization data on custom objects. Should be set false for objects added on constructor.
+</div>
+
+
+
+    <h5>Type:</h5>
+    <ul>
+        <li>
+            
+<span class="param-type">boolean</span>
+
+
+        </li>
+    </ul>
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+    <dt class="inherited-from">Inherited From:</dt>
+    <dd class="inherited-from"><ul class="dummy"><li>
+        <a href="Object2D.html#serializable">Object2D#serializable</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line210">line 210</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+            
 <h4 class="name" id="style"><span class="type-signature"></span>style<span class="type-signature"></span></h4>
 
 
@@ -2875,7 +2954,7 @@ Should be implemented by underlying classes.
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line463">line 463</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line472">line 472</a>
     </li></ul></dd>
     
 
@@ -2956,7 +3035,7 @@ If this type is from an external library you can add the library name to the obj
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line215">line 215</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line224">line 224</a>
     </li></ul></dd>
     
 
@@ -3246,7 +3325,7 @@ The object is set as children of this object and the transformations applied to
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line358">line 358</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line367">line 367</a>
     </li></ul></dd>
     
 
@@ -3531,7 +3610,7 @@ More information about canvas clipping https://developer.mozilla.org/en-US/docs/
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line307">line 307</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line316">line 316</a>
     </li></ul></dd>
     
 
@@ -3673,7 +3752,7 @@ More information about canvas clipping https://developer.mozilla.org/en-US/docs/
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line336">line 336</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line345">line 345</a>
     </li></ul></dd>
     
 
@@ -3860,7 +3939,7 @@ More information about canvas clipping https://developer.mozilla.org/en-US/docs/
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line249">line 249</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line258">line 258</a>
     </li></ul></dd>
     
 
@@ -4028,7 +4107,7 @@ To check if a point in world coordinates intersects the object the inverseGlobal
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line411">line 411</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line420">line 420</a>
     </li></ul></dd>
     
 
@@ -4215,7 +4294,7 @@ To check if a point in world coordinates intersects the object the inverseGlobal
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line279">line 279</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line288">line 288</a>
     </li></ul></dd>
     
 
@@ -4454,7 +4533,7 @@ To detect when the object drag stops the onPointerDragEnd() method can be used.
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line490">line 490</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line499">line 499</a>
     </li></ul></dd>
     
 
@@ -4623,7 +4702,7 @@ Dont forget to register object types using the Object2D.register() method.
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line654">line 654</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line666">line 666</a>
     </li></ul></dd>
     
 
@@ -4765,7 +4844,7 @@ Dont forget to register object types using the Object2D.register() method.
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line379">line 379</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line388">line 388</a>
     </li></ul></dd>
     
 
@@ -4911,7 +4990,7 @@ Data has to be parsed back into a usable object.
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line602">line 602</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line611">line 611</a>
     </li></ul></dd>
     
 
@@ -5123,7 +5202,7 @@ This is called before style() and draw(). It can also be used for some pre-rende
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line447">line 447</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line456">line 456</a>
     </li></ul></dd>
     
 
@@ -5265,7 +5344,7 @@ This is called before style() and draw(). It can also be used for some pre-rende
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line320">line 320</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line329">line 329</a>
     </li></ul></dd>
     
 
@@ -5407,7 +5486,7 @@ This is called before style() and draw(). It can also be used for some pre-rende
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line421">line 421</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line430">line 430</a>
     </li></ul></dd>
     
 
@@ -5459,7 +5538,7 @@ This is called before style() and draw(). It can also be used for some pre-rende
 <br class="clear">
 
 <footer>
-    Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.4</a> on Mon May 18 2020 18:45:41 GMT+0100 (Western European Summer Time)
+    Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.4</a> on Tue May 19 2020 10:16:34 GMT+0100 (Western European Summer Time)
 </footer>
 
 <script> prettyPrint(); </script>

+ 108 - 29
docs/Circle.html

@@ -440,7 +440,7 @@ Should be implemented by underlying classes.
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line474">line 474</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line483">line 483</a>
     </li></ul></dd>
     
 
@@ -1340,7 +1340,7 @@ The matrix is updated before rendering the object, after the matrix is updated t
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line516">line 516</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line525">line 525</a>
     </li></ul></dd>
     
 
@@ -1407,7 +1407,7 @@ The matrix is updated before rendering the object, after the matrix is updated t
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line582">line 582</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line591">line 591</a>
     </li></ul></dd>
     
 
@@ -1474,7 +1474,7 @@ The matrix is updated before rendering the object, after the matrix is updated t
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line566">line 566</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line575">line 575</a>
     </li></ul></dd>
     
 
@@ -1541,7 +1541,7 @@ The matrix is updated before rendering the object, after the matrix is updated t
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line590">line 590</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line599">line 599</a>
     </li></ul></dd>
     
 
@@ -1608,7 +1608,7 @@ The matrix is updated before rendering the object, after the matrix is updated t
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line574">line 574</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line583">line 583</a>
     </li></ul></dd>
     
 
@@ -1675,7 +1675,7 @@ The matrix is updated before rendering the object, after the matrix is updated t
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line509">line 509</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line518">line 518</a>
     </li></ul></dd>
     
 
@@ -1742,7 +1742,7 @@ The matrix is updated before rendering the object, after the matrix is updated t
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line501">line 501</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line510">line 510</a>
     </li></ul></dd>
     
 
@@ -1811,7 +1811,7 @@ It is not called while the pointer is inside of the object, just on the first ti
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line542">line 542</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line551">line 551</a>
     </li></ul></dd>
     
 
@@ -1878,7 +1878,7 @@ It is not called while the pointer is inside of the object, just on the first ti
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line550">line 550</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line559">line 559</a>
     </li></ul></dd>
     
 
@@ -1945,7 +1945,7 @@ It is not called while the pointer is inside of the object, just on the first ti
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line558">line 558</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line567">line 567</a>
     </li></ul></dd>
     
 
@@ -2012,7 +2012,7 @@ It is not called while the pointer is inside of the object, just on the first ti
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line523">line 523</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line532">line 532</a>
     </li></ul></dd>
     
 
@@ -2083,7 +2083,7 @@ This method is called for every object before rendering.
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line532">line 532</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line541">line 541</a>
     </li></ul></dd>
     
 
@@ -2866,6 +2866,85 @@ The world scale of the object is affected by the parent transform.
 
         
             
+<h4 class="name" id="serializable"><span class="type-signature"></span>serializable<span class="type-signature"> :boolean</span></h4>
+
+
+
+
+<div class="description">
+    Indicates if the object should be serialized or not as a child of another object.
+
+Used to prevent duplicate serialization data on custom objects. Should be set false for objects added on constructor.
+</div>
+
+
+
+    <h5>Type:</h5>
+    <ul>
+        <li>
+            
+<span class="param-type">boolean</span>
+
+
+        </li>
+    </ul>
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+    <dt class="inherited-from">Inherited From:</dt>
+    <dd class="inherited-from"><ul class="dummy"><li>
+        <a href="Object2D.html#serializable">Object2D#serializable</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line210">line 210</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+            
 <h4 class="name" id="strokeStyle"><span class="type-signature"></span>strokeStyle<span class="type-signature"></span></h4>
 
 
@@ -2983,7 +3062,7 @@ Should be implemented by underlying classes.
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line463">line 463</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line472">line 472</a>
     </li></ul></dd>
     
 
@@ -3064,7 +3143,7 @@ If this type is from an external library you can add the library name to the obj
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line215">line 215</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line224">line 224</a>
     </li></ul></dd>
     
 
@@ -3354,7 +3433,7 @@ The object is set as children of this object and the transformations applied to
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line358">line 358</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line367">line 367</a>
     </li></ul></dd>
     
 
@@ -3447,7 +3526,7 @@ The object is set as children of this object and the transformations applied to
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line307">line 307</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line316">line 316</a>
     </li></ul></dd>
     
 
@@ -3589,7 +3668,7 @@ The object is set as children of this object and the transformations applied to
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line336">line 336</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line345">line 345</a>
     </li></ul></dd>
     
 
@@ -3776,7 +3855,7 @@ The object is set as children of this object and the transformations applied to
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line249">line 249</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line258">line 258</a>
     </li></ul></dd>
     
 
@@ -3944,7 +4023,7 @@ To check if a point in world coordinates intersects the object the inverseGlobal
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line411">line 411</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line420">line 420</a>
     </li></ul></dd>
     
 
@@ -4131,7 +4210,7 @@ To check if a point in world coordinates intersects the object the inverseGlobal
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line279">line 279</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line288">line 288</a>
     </li></ul></dd>
     
 
@@ -4370,7 +4449,7 @@ To detect when the object drag stops the onPointerDragEnd() method can be used.
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line490">line 490</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line499">line 499</a>
     </li></ul></dd>
     
 
@@ -4539,7 +4618,7 @@ Dont forget to register object types using the Object2D.register() method.
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line654">line 654</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line666">line 666</a>
     </li></ul></dd>
     
 
@@ -4681,7 +4760,7 @@ Dont forget to register object types using the Object2D.register() method.
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line379">line 379</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line388">line 388</a>
     </li></ul></dd>
     
 
@@ -4827,7 +4906,7 @@ Data has to be parsed back into a usable object.
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line602">line 602</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line611">line 611</a>
     </li></ul></dd>
     
 
@@ -5039,7 +5118,7 @@ This is called before style() and draw(). It can also be used for some pre-rende
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line447">line 447</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line456">line 456</a>
     </li></ul></dd>
     
 
@@ -5181,7 +5260,7 @@ This is called before style() and draw(). It can also be used for some pre-rende
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line320">line 320</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line329">line 329</a>
     </li></ul></dd>
     
 
@@ -5323,7 +5402,7 @@ This is called before style() and draw(). It can also be used for some pre-rende
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line421">line 421</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line430">line 430</a>
     </li></ul></dd>
     
 
@@ -5375,7 +5454,7 @@ This is called before style() and draw(). It can also be used for some pre-rende
 <br class="clear">
 
 <footer>
-    Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.4</a> on Mon May 18 2020 18:45:41 GMT+0100 (Western European Summer Time)
+    Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.4</a> on Tue May 19 2020 10:16:34 GMT+0100 (Western European Summer Time)
 </footer>
 
 <script> prettyPrint(); </script>

+ 106 - 27
docs/DOM.html

@@ -491,7 +491,7 @@ Should be implemented by underlying classes.
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line474">line 474</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line483">line 483</a>
     </li></ul></dd>
     
 
@@ -1339,7 +1339,7 @@ The matrix is updated before rendering the object, after the matrix is updated t
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line582">line 582</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line591">line 591</a>
     </li></ul></dd>
     
 
@@ -1406,7 +1406,7 @@ The matrix is updated before rendering the object, after the matrix is updated t
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line566">line 566</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line575">line 575</a>
     </li></ul></dd>
     
 
@@ -1473,7 +1473,7 @@ The matrix is updated before rendering the object, after the matrix is updated t
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line590">line 590</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line599">line 599</a>
     </li></ul></dd>
     
 
@@ -1540,7 +1540,7 @@ The matrix is updated before rendering the object, after the matrix is updated t
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line574">line 574</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line583">line 583</a>
     </li></ul></dd>
     
 
@@ -1607,7 +1607,7 @@ The matrix is updated before rendering the object, after the matrix is updated t
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line509">line 509</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line518">line 518</a>
     </li></ul></dd>
     
 
@@ -1674,7 +1674,7 @@ The matrix is updated before rendering the object, after the matrix is updated t
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line501">line 501</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line510">line 510</a>
     </li></ul></dd>
     
 
@@ -1743,7 +1743,7 @@ It is not called while the pointer is inside of the object, just on the first ti
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line542">line 542</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line551">line 551</a>
     </li></ul></dd>
     
 
@@ -1810,7 +1810,7 @@ It is not called while the pointer is inside of the object, just on the first ti
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line550">line 550</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line559">line 559</a>
     </li></ul></dd>
     
 
@@ -1877,7 +1877,7 @@ It is not called while the pointer is inside of the object, just on the first ti
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line558">line 558</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line567">line 567</a>
     </li></ul></dd>
     
 
@@ -1948,7 +1948,7 @@ This method is called for every object before rendering.
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line532">line 532</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line541">line 541</a>
     </li></ul></dd>
     
 
@@ -2743,6 +2743,85 @@ The world scale of the object is affected by the parent transform.
 
         
             
+<h4 class="name" id="serializable"><span class="type-signature"></span>serializable<span class="type-signature"> :boolean</span></h4>
+
+
+
+
+<div class="description">
+    Indicates if the object should be serialized or not as a child of another object.
+
+Used to prevent duplicate serialization data on custom objects. Should be set false for objects added on constructor.
+</div>
+
+
+
+    <h5>Type:</h5>
+    <ul>
+        <li>
+            
+<span class="param-type">boolean</span>
+
+
+        </li>
+    </ul>
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+    <dt class="inherited-from">Inherited From:</dt>
+    <dd class="inherited-from"><ul class="dummy"><li>
+        <a href="Object2D.html#serializable">Object2D#serializable</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line210">line 210</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+            
 <h4 class="name" id="size"><span class="type-signature"></span>size<span class="type-signature"></span></h4>
 
 
@@ -2858,7 +2937,7 @@ Should be implemented by underlying classes.
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line463">line 463</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line472">line 472</a>
     </li></ul></dd>
     
 
@@ -2939,7 +3018,7 @@ If this type is from an external library you can add the library name to the obj
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line215">line 215</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line224">line 224</a>
     </li></ul></dd>
     
 
@@ -3229,7 +3308,7 @@ The object is set as children of this object and the transformations applied to
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line358">line 358</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line367">line 367</a>
     </li></ul></dd>
     
 
@@ -3322,7 +3401,7 @@ The object is set as children of this object and the transformations applied to
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line307">line 307</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line316">line 316</a>
     </li></ul></dd>
     
 
@@ -3464,7 +3543,7 @@ The object is set as children of this object and the transformations applied to
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line336">line 336</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line345">line 345</a>
     </li></ul></dd>
     
 
@@ -3651,7 +3730,7 @@ The object is set as children of this object and the transformations applied to
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line249">line 249</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line258">line 258</a>
     </li></ul></dd>
     
 
@@ -3819,7 +3898,7 @@ To check if a point in world coordinates intersects the object the inverseGlobal
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line411">line 411</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line420">line 420</a>
     </li></ul></dd>
     
 
@@ -4006,7 +4085,7 @@ To check if a point in world coordinates intersects the object the inverseGlobal
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line279">line 279</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line288">line 288</a>
     </li></ul></dd>
     
 
@@ -4338,7 +4417,7 @@ To detect when the object drag stops the onPointerDragEnd() method can be used.
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line490">line 490</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line499">line 499</a>
     </li></ul></dd>
     
 
@@ -4600,7 +4679,7 @@ Dont forget to register object types using the Object2D.register() method.
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line654">line 654</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line666">line 666</a>
     </li></ul></dd>
     
 
@@ -4742,7 +4821,7 @@ Dont forget to register object types using the Object2D.register() method.
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line379">line 379</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line388">line 388</a>
     </li></ul></dd>
     
 
@@ -4888,7 +4967,7 @@ Data has to be parsed back into a usable object.
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line602">line 602</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line611">line 611</a>
     </li></ul></dd>
     
 
@@ -5100,7 +5179,7 @@ This is called before style() and draw(). It can also be used for some pre-rende
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line447">line 447</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line456">line 456</a>
     </li></ul></dd>
     
 
@@ -5242,7 +5321,7 @@ This is called before style() and draw(). It can also be used for some pre-rende
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line320">line 320</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line329">line 329</a>
     </li></ul></dd>
     
 
@@ -5384,7 +5463,7 @@ This is called before style() and draw(). It can also be used for some pre-rende
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line421">line 421</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line430">line 430</a>
     </li></ul></dd>
     
 
@@ -5436,7 +5515,7 @@ This is called before style() and draw(). It can also be used for some pre-rende
 <br class="clear">
 
 <footer>
-    Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.4</a> on Mon May 18 2020 18:45:41 GMT+0100 (Western European Summer Time)
+    Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.4</a> on Tue May 19 2020 10:16:34 GMT+0100 (Western European Summer Time)
 </footer>
 
 <script> prettyPrint(); </script>

+ 1 - 1
docs/EventManager.html

@@ -692,7 +692,7 @@ Format [target, event, callback, active]
 <br class="clear">
 
 <footer>
-    Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.4</a> on Mon May 18 2020 18:45:41 GMT+0100 (Western European Summer Time)
+    Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.4</a> on Tue May 19 2020 10:16:34 GMT+0100 (Western European Summer Time)
 </footer>
 
 <script> prettyPrint(); </script>

+ 1 - 1
docs/EventManager.js.html

@@ -109,7 +109,7 @@ export {EventManager};
 <br class="clear">
 
 <footer>
-    Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.4</a> on Mon May 18 2020 18:45:41 GMT+0100 (Western European Summer Time)
+    Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.4</a> on Tue May 19 2020 10:16:34 GMT+0100 (Western European Summer Time)
 </footer>
 
 <script> prettyPrint(); </script>

+ 1 - 1
docs/FileUtils.html

@@ -508,7 +508,7 @@
 <br class="clear">
 
 <footer>
-    Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.4</a> on Mon May 18 2020 18:45:41 GMT+0100 (Western European Summer Time)
+    Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.4</a> on Tue May 19 2020 10:16:34 GMT+0100 (Western European Summer Time)
 </footer>
 
 <script> prettyPrint(); </script>

+ 108 - 29
docs/Graph.html

@@ -566,7 +566,7 @@ Should be implemented by underlying classes.
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line474">line 474</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line483">line 483</a>
     </li></ul></dd>
     
 
@@ -1588,7 +1588,7 @@ The matrix is updated before rendering the object, after the matrix is updated t
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line516">line 516</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line525">line 525</a>
     </li></ul></dd>
     
 
@@ -1655,7 +1655,7 @@ The matrix is updated before rendering the object, after the matrix is updated t
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line582">line 582</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line591">line 591</a>
     </li></ul></dd>
     
 
@@ -1722,7 +1722,7 @@ The matrix is updated before rendering the object, after the matrix is updated t
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line566">line 566</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line575">line 575</a>
     </li></ul></dd>
     
 
@@ -1789,7 +1789,7 @@ The matrix is updated before rendering the object, after the matrix is updated t
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line590">line 590</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line599">line 599</a>
     </li></ul></dd>
     
 
@@ -1856,7 +1856,7 @@ The matrix is updated before rendering the object, after the matrix is updated t
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line574">line 574</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line583">line 583</a>
     </li></ul></dd>
     
 
@@ -1923,7 +1923,7 @@ The matrix is updated before rendering the object, after the matrix is updated t
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line509">line 509</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line518">line 518</a>
     </li></ul></dd>
     
 
@@ -1990,7 +1990,7 @@ The matrix is updated before rendering the object, after the matrix is updated t
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line501">line 501</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line510">line 510</a>
     </li></ul></dd>
     
 
@@ -2059,7 +2059,7 @@ It is not called while the pointer is inside of the object, just on the first ti
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line542">line 542</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line551">line 551</a>
     </li></ul></dd>
     
 
@@ -2126,7 +2126,7 @@ It is not called while the pointer is inside of the object, just on the first ti
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line550">line 550</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line559">line 559</a>
     </li></ul></dd>
     
 
@@ -2193,7 +2193,7 @@ It is not called while the pointer is inside of the object, just on the first ti
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line558">line 558</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line567">line 567</a>
     </li></ul></dd>
     
 
@@ -2260,7 +2260,7 @@ It is not called while the pointer is inside of the object, just on the first ti
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line523">line 523</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line532">line 532</a>
     </li></ul></dd>
     
 
@@ -2331,7 +2331,7 @@ This method is called for every object before rendering.
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line532">line 532</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line541">line 541</a>
     </li></ul></dd>
     
 
@@ -3052,6 +3052,85 @@ The world scale of the object is affected by the parent transform.
 
         
             
+<h4 class="name" id="serializable"><span class="type-signature"></span>serializable<span class="type-signature"> :boolean</span></h4>
+
+
+
+
+<div class="description">
+    Indicates if the object should be serialized or not as a child of another object.
+
+Used to prevent duplicate serialization data on custom objects. Should be set false for objects added on constructor.
+</div>
+
+
+
+    <h5>Type:</h5>
+    <ul>
+        <li>
+            
+<span class="param-type">boolean</span>
+
+
+        </li>
+    </ul>
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+    <dt class="inherited-from">Inherited From:</dt>
+    <dd class="inherited-from"><ul class="dummy"><li>
+        <a href="Object2D.html#serializable">Object2D#serializable</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line210">line 210</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+            
 <h4 class="name" id="strokeStyle"><span class="type-signature"></span>strokeStyle<span class="type-signature"></span></h4>
 
 
@@ -3167,7 +3246,7 @@ Should be implemented by underlying classes.
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line463">line 463</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line472">line 472</a>
     </li></ul></dd>
     
 
@@ -3248,7 +3327,7 @@ If this type is from an external library you can add the library name to the obj
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line215">line 215</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line224">line 224</a>
     </li></ul></dd>
     
 
@@ -3538,7 +3617,7 @@ The object is set as children of this object and the transformations applied to
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line358">line 358</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line367">line 367</a>
     </li></ul></dd>
     
 
@@ -3631,7 +3710,7 @@ The object is set as children of this object and the transformations applied to
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line307">line 307</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line316">line 316</a>
     </li></ul></dd>
     
 
@@ -3773,7 +3852,7 @@ The object is set as children of this object and the transformations applied to
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line336">line 336</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line345">line 345</a>
     </li></ul></dd>
     
 
@@ -3960,7 +4039,7 @@ The object is set as children of this object and the transformations applied to
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line249">line 249</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line258">line 258</a>
     </li></ul></dd>
     
 
@@ -4128,7 +4207,7 @@ To check if a point in world coordinates intersects the object the inverseGlobal
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line411">line 411</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line420">line 420</a>
     </li></ul></dd>
     
 
@@ -4315,7 +4394,7 @@ To check if a point in world coordinates intersects the object the inverseGlobal
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line279">line 279</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line288">line 288</a>
     </li></ul></dd>
     
 
@@ -4554,7 +4633,7 @@ To detect when the object drag stops the onPointerDragEnd() method can be used.
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line490">line 490</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line499">line 499</a>
     </li></ul></dd>
     
 
@@ -4723,7 +4802,7 @@ Dont forget to register object types using the Object2D.register() method.
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line654">line 654</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line666">line 666</a>
     </li></ul></dd>
     
 
@@ -4865,7 +4944,7 @@ Dont forget to register object types using the Object2D.register() method.
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line379">line 379</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line388">line 388</a>
     </li></ul></dd>
     
 
@@ -5011,7 +5090,7 @@ Data has to be parsed back into a usable object.
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line602">line 602</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line611">line 611</a>
     </li></ul></dd>
     
 
@@ -5223,7 +5302,7 @@ This is called before style() and draw(). It can also be used for some pre-rende
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line447">line 447</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line456">line 456</a>
     </li></ul></dd>
     
 
@@ -5365,7 +5444,7 @@ This is called before style() and draw(). It can also be used for some pre-rende
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line320">line 320</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line329">line 329</a>
     </li></ul></dd>
     
 
@@ -5507,7 +5586,7 @@ This is called before style() and draw(). It can also be used for some pre-rende
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line421">line 421</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line430">line 430</a>
     </li></ul></dd>
     
 
@@ -5559,7 +5638,7 @@ This is called before style() and draw(). It can also be used for some pre-rende
 <br class="clear">
 
 <footer>
-    Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.4</a> on Mon May 18 2020 18:45:41 GMT+0100 (Western European Summer Time)
+    Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.4</a> on Tue May 19 2020 10:16:34 GMT+0100 (Western European Summer Time)
 </footer>
 
 <script> prettyPrint(); </script>

+ 1 - 1
docs/Helpers.html

@@ -347,7 +347,7 @@ When the object is dragged is changes the parent object rotation.
 <br class="clear">
 
 <footer>
-    Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.4</a> on Mon May 18 2020 18:45:41 GMT+0100 (Western European Summer Time)
+    Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.4</a> on Tue May 19 2020 10:16:34 GMT+0100 (Western European Summer Time)
 </footer>
 
 <script> prettyPrint(); </script>

+ 108 - 29
docs/Image.html

@@ -549,7 +549,7 @@ Should be implemented by underlying classes.
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line474">line 474</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line483">line 483</a>
     </li></ul></dd>
     
 
@@ -1385,7 +1385,7 @@ The matrix is updated before rendering the object, after the matrix is updated t
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line516">line 516</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line525">line 525</a>
     </li></ul></dd>
     
 
@@ -1452,7 +1452,7 @@ The matrix is updated before rendering the object, after the matrix is updated t
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line582">line 582</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line591">line 591</a>
     </li></ul></dd>
     
 
@@ -1519,7 +1519,7 @@ The matrix is updated before rendering the object, after the matrix is updated t
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line566">line 566</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line575">line 575</a>
     </li></ul></dd>
     
 
@@ -1586,7 +1586,7 @@ The matrix is updated before rendering the object, after the matrix is updated t
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line590">line 590</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line599">line 599</a>
     </li></ul></dd>
     
 
@@ -1653,7 +1653,7 @@ The matrix is updated before rendering the object, after the matrix is updated t
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line574">line 574</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line583">line 583</a>
     </li></ul></dd>
     
 
@@ -1720,7 +1720,7 @@ The matrix is updated before rendering the object, after the matrix is updated t
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line509">line 509</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line518">line 518</a>
     </li></ul></dd>
     
 
@@ -1787,7 +1787,7 @@ The matrix is updated before rendering the object, after the matrix is updated t
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line501">line 501</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line510">line 510</a>
     </li></ul></dd>
     
 
@@ -1856,7 +1856,7 @@ It is not called while the pointer is inside of the object, just on the first ti
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line542">line 542</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line551">line 551</a>
     </li></ul></dd>
     
 
@@ -1923,7 +1923,7 @@ It is not called while the pointer is inside of the object, just on the first ti
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line550">line 550</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line559">line 559</a>
     </li></ul></dd>
     
 
@@ -1990,7 +1990,7 @@ It is not called while the pointer is inside of the object, just on the first ti
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line558">line 558</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line567">line 567</a>
     </li></ul></dd>
     
 
@@ -2057,7 +2057,7 @@ It is not called while the pointer is inside of the object, just on the first ti
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line523">line 523</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line532">line 532</a>
     </li></ul></dd>
     
 
@@ -2128,7 +2128,7 @@ This method is called for every object before rendering.
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line532">line 532</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line541">line 541</a>
     </li></ul></dd>
     
 
@@ -2849,6 +2849,85 @@ The world scale of the object is affected by the parent transform.
 
         
             
+<h4 class="name" id="serializable"><span class="type-signature"></span>serializable<span class="type-signature"> :boolean</span></h4>
+
+
+
+
+<div class="description">
+    Indicates if the object should be serialized or not as a child of another object.
+
+Used to prevent duplicate serialization data on custom objects. Should be set false for objects added on constructor.
+</div>
+
+
+
+    <h5>Type:</h5>
+    <ul>
+        <li>
+            
+<span class="param-type">boolean</span>
+
+
+        </li>
+    </ul>
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+    <dt class="inherited-from">Inherited From:</dt>
+    <dd class="inherited-from"><ul class="dummy"><li>
+        <a href="Object2D.html#serializable">Object2D#serializable</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line210">line 210</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+            
 <h4 class="name" id="style"><span class="type-signature"></span>style<span class="type-signature"></span></h4>
 
 
@@ -2902,7 +2981,7 @@ Should be implemented by underlying classes.
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line463">line 463</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line472">line 472</a>
     </li></ul></dd>
     
 
@@ -2983,7 +3062,7 @@ If this type is from an external library you can add the library name to the obj
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line215">line 215</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line224">line 224</a>
     </li></ul></dd>
     
 
@@ -3273,7 +3352,7 @@ The object is set as children of this object and the transformations applied to
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line358">line 358</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line367">line 367</a>
     </li></ul></dd>
     
 
@@ -3366,7 +3445,7 @@ The object is set as children of this object and the transformations applied to
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line307">line 307</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line316">line 316</a>
     </li></ul></dd>
     
 
@@ -3508,7 +3587,7 @@ The object is set as children of this object and the transformations applied to
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line336">line 336</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line345">line 345</a>
     </li></ul></dd>
     
 
@@ -3695,7 +3774,7 @@ The object is set as children of this object and the transformations applied to
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line249">line 249</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line258">line 258</a>
     </li></ul></dd>
     
 
@@ -3863,7 +3942,7 @@ To check if a point in world coordinates intersects the object the inverseGlobal
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line411">line 411</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line420">line 420</a>
     </li></ul></dd>
     
 
@@ -4050,7 +4129,7 @@ To check if a point in world coordinates intersects the object the inverseGlobal
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line279">line 279</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line288">line 288</a>
     </li></ul></dd>
     
 
@@ -4289,7 +4368,7 @@ To detect when the object drag stops the onPointerDragEnd() method can be used.
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line490">line 490</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line499">line 499</a>
     </li></ul></dd>
     
 
@@ -4458,7 +4537,7 @@ Dont forget to register object types using the Object2D.register() method.
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line654">line 654</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line666">line 666</a>
     </li></ul></dd>
     
 
@@ -4600,7 +4679,7 @@ Dont forget to register object types using the Object2D.register() method.
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line379">line 379</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line388">line 388</a>
     </li></ul></dd>
     
 
@@ -4746,7 +4825,7 @@ Data has to be parsed back into a usable object.
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line602">line 602</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line611">line 611</a>
     </li></ul></dd>
     
 
@@ -5097,7 +5176,7 @@ This is called before style() and draw(). It can also be used for some pre-rende
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line447">line 447</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line456">line 456</a>
     </li></ul></dd>
     
 
@@ -5239,7 +5318,7 @@ This is called before style() and draw(). It can also be used for some pre-rende
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line320">line 320</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line329">line 329</a>
     </li></ul></dd>
     
 
@@ -5381,7 +5460,7 @@ This is called before style() and draw(). It can also be used for some pre-rende
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line421">line 421</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line430">line 430</a>
     </li></ul></dd>
     
 
@@ -5433,7 +5512,7 @@ This is called before style() and draw(). It can also be used for some pre-rende
 <br class="clear">
 
 <footer>
-    Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.4</a> on Mon May 18 2020 18:45:41 GMT+0100 (Western European Summer Time)
+    Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.4</a> on Tue May 19 2020 10:16:34 GMT+0100 (Western European Summer Time)
 </footer>
 
 <script> prettyPrint(); </script>

+ 1 - 1
docs/Key.html

@@ -619,7 +619,7 @@
 <br class="clear">
 
 <footer>
-    Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.4</a> on Mon May 18 2020 18:45:41 GMT+0100 (Western European Summer Time)
+    Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.4</a> on Tue May 19 2020 10:16:34 GMT+0100 (Western European Summer Time)
 </footer>
 
 <script> prettyPrint(); </script>

+ 108 - 29
docs/Line.html

@@ -516,7 +516,7 @@ Should be implemented by underlying classes.
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line474">line 474</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line483">line 483</a>
     </li></ul></dd>
     
 
@@ -1436,7 +1436,7 @@ The matrix is updated before rendering the object, after the matrix is updated t
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line516">line 516</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line525">line 525</a>
     </li></ul></dd>
     
 
@@ -1503,7 +1503,7 @@ The matrix is updated before rendering the object, after the matrix is updated t
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line582">line 582</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line591">line 591</a>
     </li></ul></dd>
     
 
@@ -1570,7 +1570,7 @@ The matrix is updated before rendering the object, after the matrix is updated t
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line566">line 566</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line575">line 575</a>
     </li></ul></dd>
     
 
@@ -1637,7 +1637,7 @@ The matrix is updated before rendering the object, after the matrix is updated t
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line590">line 590</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line599">line 599</a>
     </li></ul></dd>
     
 
@@ -1704,7 +1704,7 @@ The matrix is updated before rendering the object, after the matrix is updated t
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line574">line 574</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line583">line 583</a>
     </li></ul></dd>
     
 
@@ -1771,7 +1771,7 @@ The matrix is updated before rendering the object, after the matrix is updated t
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line509">line 509</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line518">line 518</a>
     </li></ul></dd>
     
 
@@ -1838,7 +1838,7 @@ The matrix is updated before rendering the object, after the matrix is updated t
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line501">line 501</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line510">line 510</a>
     </li></ul></dd>
     
 
@@ -1907,7 +1907,7 @@ It is not called while the pointer is inside of the object, just on the first ti
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line542">line 542</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line551">line 551</a>
     </li></ul></dd>
     
 
@@ -1974,7 +1974,7 @@ It is not called while the pointer is inside of the object, just on the first ti
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line550">line 550</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line559">line 559</a>
     </li></ul></dd>
     
 
@@ -2041,7 +2041,7 @@ It is not called while the pointer is inside of the object, just on the first ti
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line558">line 558</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line567">line 567</a>
     </li></ul></dd>
     
 
@@ -2108,7 +2108,7 @@ It is not called while the pointer is inside of the object, just on the first ti
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line523">line 523</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line532">line 532</a>
     </li></ul></dd>
     
 
@@ -2179,7 +2179,7 @@ This method is called for every object before rendering.
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line532">line 532</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line541">line 541</a>
     </li></ul></dd>
     
 
@@ -2900,6 +2900,85 @@ The world scale of the object is affected by the parent transform.
 
         
             
+<h4 class="name" id="serializable"><span class="type-signature"></span>serializable<span class="type-signature"> :boolean</span></h4>
+
+
+
+
+<div class="description">
+    Indicates if the object should be serialized or not as a child of another object.
+
+Used to prevent duplicate serialization data on custom objects. Should be set false for objects added on constructor.
+</div>
+
+
+
+    <h5>Type:</h5>
+    <ul>
+        <li>
+            
+<span class="param-type">boolean</span>
+
+
+        </li>
+    </ul>
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+    <dt class="inherited-from">Inherited From:</dt>
+    <dd class="inherited-from"><ul class="dummy"><li>
+        <a href="Object2D.html#serializable">Object2D#serializable</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line210">line 210</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+            
 <h4 class="name" id="strokeStyle"><span class="type-signature"></span>strokeStyle<span class="type-signature"> :string</span></h4>
 
 
@@ -3025,7 +3104,7 @@ Should be implemented by underlying classes.
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line463">line 463</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line472">line 472</a>
     </li></ul></dd>
     
 
@@ -3180,7 +3259,7 @@ If this type is from an external library you can add the library name to the obj
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line215">line 215</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line224">line 224</a>
     </li></ul></dd>
     
 
@@ -3470,7 +3549,7 @@ The object is set as children of this object and the transformations applied to
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line358">line 358</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line367">line 367</a>
     </li></ul></dd>
     
 
@@ -3563,7 +3642,7 @@ The object is set as children of this object and the transformations applied to
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line307">line 307</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line316">line 316</a>
     </li></ul></dd>
     
 
@@ -3705,7 +3784,7 @@ The object is set as children of this object and the transformations applied to
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line336">line 336</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line345">line 345</a>
     </li></ul></dd>
     
 
@@ -3892,7 +3971,7 @@ The object is set as children of this object and the transformations applied to
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line249">line 249</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line258">line 258</a>
     </li></ul></dd>
     
 
@@ -4060,7 +4139,7 @@ To check if a point in world coordinates intersects the object the inverseGlobal
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line411">line 411</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line420">line 420</a>
     </li></ul></dd>
     
 
@@ -4247,7 +4326,7 @@ To check if a point in world coordinates intersects the object the inverseGlobal
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line279">line 279</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line288">line 288</a>
     </li></ul></dd>
     
 
@@ -4486,7 +4565,7 @@ To detect when the object drag stops the onPointerDragEnd() method can be used.
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line490">line 490</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line499">line 499</a>
     </li></ul></dd>
     
 
@@ -4655,7 +4734,7 @@ Dont forget to register object types using the Object2D.register() method.
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line654">line 654</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line666">line 666</a>
     </li></ul></dd>
     
 
@@ -4797,7 +4876,7 @@ Dont forget to register object types using the Object2D.register() method.
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line379">line 379</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line388">line 388</a>
     </li></ul></dd>
     
 
@@ -4943,7 +5022,7 @@ Data has to be parsed back into a usable object.
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line602">line 602</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line611">line 611</a>
     </li></ul></dd>
     
 
@@ -5155,7 +5234,7 @@ This is called before style() and draw(). It can also be used for some pre-rende
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line447">line 447</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line456">line 456</a>
     </li></ul></dd>
     
 
@@ -5297,7 +5376,7 @@ This is called before style() and draw(). It can also be used for some pre-rende
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line320">line 320</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line329">line 329</a>
     </li></ul></dd>
     
 
@@ -5439,7 +5518,7 @@ This is called before style() and draw(). It can also be used for some pre-rende
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line421">line 421</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line430">line 430</a>
     </li></ul></dd>
     
 
@@ -5491,7 +5570,7 @@ This is called before style() and draw(). It can also be used for some pre-rende
 <br class="clear">
 
 <footer>
-    Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.4</a> on Mon May 18 2020 18:45:41 GMT+0100 (Western European Summer Time)
+    Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.4</a> on Tue May 19 2020 10:16:34 GMT+0100 (Western European Summer Time)
 </footer>
 
 <script> prettyPrint(); </script>

+ 108 - 29
docs/Mask.html

@@ -444,7 +444,7 @@ Should be implemented by underlying classes.
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line474">line 474</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line483">line 483</a>
     </li></ul></dd>
     
 
@@ -1218,7 +1218,7 @@ The matrix is updated before rendering the object, after the matrix is updated t
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line516">line 516</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line525">line 525</a>
     </li></ul></dd>
     
 
@@ -1285,7 +1285,7 @@ The matrix is updated before rendering the object, after the matrix is updated t
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line582">line 582</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line591">line 591</a>
     </li></ul></dd>
     
 
@@ -1352,7 +1352,7 @@ The matrix is updated before rendering the object, after the matrix is updated t
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line566">line 566</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line575">line 575</a>
     </li></ul></dd>
     
 
@@ -1419,7 +1419,7 @@ The matrix is updated before rendering the object, after the matrix is updated t
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line590">line 590</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line599">line 599</a>
     </li></ul></dd>
     
 
@@ -1486,7 +1486,7 @@ The matrix is updated before rendering the object, after the matrix is updated t
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line574">line 574</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line583">line 583</a>
     </li></ul></dd>
     
 
@@ -1553,7 +1553,7 @@ The matrix is updated before rendering the object, after the matrix is updated t
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line509">line 509</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line518">line 518</a>
     </li></ul></dd>
     
 
@@ -1620,7 +1620,7 @@ The matrix is updated before rendering the object, after the matrix is updated t
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line501">line 501</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line510">line 510</a>
     </li></ul></dd>
     
 
@@ -1689,7 +1689,7 @@ It is not called while the pointer is inside of the object, just on the first ti
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line542">line 542</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line551">line 551</a>
     </li></ul></dd>
     
 
@@ -1756,7 +1756,7 @@ It is not called while the pointer is inside of the object, just on the first ti
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line550">line 550</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line559">line 559</a>
     </li></ul></dd>
     
 
@@ -1823,7 +1823,7 @@ It is not called while the pointer is inside of the object, just on the first ti
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line558">line 558</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line567">line 567</a>
     </li></ul></dd>
     
 
@@ -1890,7 +1890,7 @@ It is not called while the pointer is inside of the object, just on the first ti
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line523">line 523</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line532">line 532</a>
     </li></ul></dd>
     
 
@@ -1961,7 +1961,7 @@ This method is called for every object before rendering.
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line532">line 532</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line541">line 541</a>
     </li></ul></dd>
     
 
@@ -2682,6 +2682,85 @@ The world scale of the object is affected by the parent transform.
 
         
             
+<h4 class="name" id="serializable"><span class="type-signature"></span>serializable<span class="type-signature"> :boolean</span></h4>
+
+
+
+
+<div class="description">
+    Indicates if the object should be serialized or not as a child of another object.
+
+Used to prevent duplicate serialization data on custom objects. Should be set false for objects added on constructor.
+</div>
+
+
+
+    <h5>Type:</h5>
+    <ul>
+        <li>
+            
+<span class="param-type">boolean</span>
+
+
+        </li>
+    </ul>
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+    <dt class="inherited-from">Inherited From:</dt>
+    <dd class="inherited-from"><ul class="dummy"><li>
+        <a href="Object2D.html#serializable">Object2D#serializable</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line210">line 210</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+            
 <h4 class="name" id="style"><span class="type-signature"></span>style<span class="type-signature"></span></h4>
 
 
@@ -2735,7 +2814,7 @@ Should be implemented by underlying classes.
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line463">line 463</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line472">line 472</a>
     </li></ul></dd>
     
 
@@ -2816,7 +2895,7 @@ If this type is from an external library you can add the library name to the obj
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line215">line 215</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line224">line 224</a>
     </li></ul></dd>
     
 
@@ -3106,7 +3185,7 @@ The object is set as children of this object and the transformations applied to
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line358">line 358</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line367">line 367</a>
     </li></ul></dd>
     
 
@@ -3386,7 +3465,7 @@ More information about canvas clipping https://developer.mozilla.org/en-US/docs/
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line307">line 307</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line316">line 316</a>
     </li></ul></dd>
     
 
@@ -3528,7 +3607,7 @@ More information about canvas clipping https://developer.mozilla.org/en-US/docs/
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line336">line 336</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line345">line 345</a>
     </li></ul></dd>
     
 
@@ -3715,7 +3794,7 @@ More information about canvas clipping https://developer.mozilla.org/en-US/docs/
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line249">line 249</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line258">line 258</a>
     </li></ul></dd>
     
 
@@ -3883,7 +3962,7 @@ To check if a point in world coordinates intersects the object the inverseGlobal
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line411">line 411</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line420">line 420</a>
     </li></ul></dd>
     
 
@@ -4070,7 +4149,7 @@ To check if a point in world coordinates intersects the object the inverseGlobal
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line279">line 279</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line288">line 288</a>
     </li></ul></dd>
     
 
@@ -4309,7 +4388,7 @@ To detect when the object drag stops the onPointerDragEnd() method can be used.
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line490">line 490</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line499">line 499</a>
     </li></ul></dd>
     
 
@@ -4478,7 +4557,7 @@ Dont forget to register object types using the Object2D.register() method.
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line654">line 654</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line666">line 666</a>
     </li></ul></dd>
     
 
@@ -4620,7 +4699,7 @@ Dont forget to register object types using the Object2D.register() method.
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line379">line 379</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line388">line 388</a>
     </li></ul></dd>
     
 
@@ -4766,7 +4845,7 @@ Data has to be parsed back into a usable object.
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line602">line 602</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line611">line 611</a>
     </li></ul></dd>
     
 
@@ -4978,7 +5057,7 @@ This is called before style() and draw(). It can also be used for some pre-rende
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line447">line 447</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line456">line 456</a>
     </li></ul></dd>
     
 
@@ -5120,7 +5199,7 @@ This is called before style() and draw(). It can also be used for some pre-rende
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line320">line 320</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line329">line 329</a>
     </li></ul></dd>
     
 
@@ -5262,7 +5341,7 @@ This is called before style() and draw(). It can also be used for some pre-rende
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line421">line 421</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line430">line 430</a>
     </li></ul></dd>
     
 
@@ -5314,7 +5393,7 @@ This is called before style() and draw(). It can also be used for some pre-rende
 <br class="clear">
 
 <footer>
-    Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.4</a> on Mon May 18 2020 18:45:41 GMT+0100 (Western European Summer Time)
+    Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.4</a> on Tue May 19 2020 10:16:34 GMT+0100 (Western European Summer Time)
 </footer>
 
 <script> prettyPrint(); </script>

+ 1 - 1
docs/Matrix.html

@@ -2868,7 +2868,7 @@ Adds position over the transformation already stored in the matrix.
 <br class="clear">
 
 <footer>
-    Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.4</a> on Mon May 18 2020 18:45:41 GMT+0100 (Western European Summer Time)
+    Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.4</a> on Tue May 19 2020 10:16:34 GMT+0100 (Western European Summer Time)
 </footer>
 
 <script> prettyPrint(); </script>

+ 108 - 29
docs/MultiLineText.html

@@ -440,7 +440,7 @@ Should be implemented by underlying classes.
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line474">line 474</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line483">line 483</a>
     </li></ul></dd>
     
 
@@ -1593,7 +1593,7 @@ Can be set to null to be ignored.
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line516">line 516</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line525">line 525</a>
     </li></ul></dd>
     
 
@@ -1660,7 +1660,7 @@ Can be set to null to be ignored.
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line582">line 582</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line591">line 591</a>
     </li></ul></dd>
     
 
@@ -1727,7 +1727,7 @@ Can be set to null to be ignored.
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line566">line 566</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line575">line 575</a>
     </li></ul></dd>
     
 
@@ -1794,7 +1794,7 @@ Can be set to null to be ignored.
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line590">line 590</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line599">line 599</a>
     </li></ul></dd>
     
 
@@ -1861,7 +1861,7 @@ Can be set to null to be ignored.
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line574">line 574</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line583">line 583</a>
     </li></ul></dd>
     
 
@@ -1928,7 +1928,7 @@ Can be set to null to be ignored.
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line509">line 509</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line518">line 518</a>
     </li></ul></dd>
     
 
@@ -1995,7 +1995,7 @@ Can be set to null to be ignored.
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line501">line 501</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line510">line 510</a>
     </li></ul></dd>
     
 
@@ -2064,7 +2064,7 @@ It is not called while the pointer is inside of the object, just on the first ti
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line542">line 542</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line551">line 551</a>
     </li></ul></dd>
     
 
@@ -2131,7 +2131,7 @@ It is not called while the pointer is inside of the object, just on the first ti
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line550">line 550</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line559">line 559</a>
     </li></ul></dd>
     
 
@@ -2198,7 +2198,7 @@ It is not called while the pointer is inside of the object, just on the first ti
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line558">line 558</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line567">line 567</a>
     </li></ul></dd>
     
 
@@ -2265,7 +2265,7 @@ It is not called while the pointer is inside of the object, just on the first ti
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line523">line 523</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line532">line 532</a>
     </li></ul></dd>
     
 
@@ -2336,7 +2336,7 @@ This method is called for every object before rendering.
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line532">line 532</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line541">line 541</a>
     </li></ul></dd>
     
 
@@ -3057,6 +3057,85 @@ The world scale of the object is affected by the parent transform.
 
         
             
+<h4 class="name" id="serializable"><span class="type-signature"></span>serializable<span class="type-signature"> :boolean</span></h4>
+
+
+
+
+<div class="description">
+    Indicates if the object should be serialized or not as a child of another object.
+
+Used to prevent duplicate serialization data on custom objects. Should be set false for objects added on constructor.
+</div>
+
+
+
+    <h5>Type:</h5>
+    <ul>
+        <li>
+            
+<span class="param-type">boolean</span>
+
+
+        </li>
+    </ul>
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+    <dt class="inherited-from">Inherited From:</dt>
+    <dd class="inherited-from"><ul class="dummy"><li>
+        <a href="Object2D.html#serializable">Object2D#serializable</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line210">line 210</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+            
 <h4 class="name" id="strokeStyle"><span class="type-signature"></span>strokeStyle<span class="type-signature"> :string</span></h4>
 
 
@@ -3187,7 +3266,7 @@ Should be implemented by underlying classes.
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line463">line 463</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line472">line 472</a>
     </li></ul></dd>
     
 
@@ -3503,7 +3582,7 @@ If this type is from an external library you can add the library name to the obj
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line215">line 215</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line224">line 224</a>
     </li></ul></dd>
     
 
@@ -3793,7 +3872,7 @@ The object is set as children of this object and the transformations applied to
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line358">line 358</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line367">line 367</a>
     </li></ul></dd>
     
 
@@ -3886,7 +3965,7 @@ The object is set as children of this object and the transformations applied to
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line307">line 307</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line316">line 316</a>
     </li></ul></dd>
     
 
@@ -4028,7 +4107,7 @@ The object is set as children of this object and the transformations applied to
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line336">line 336</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line345">line 345</a>
     </li></ul></dd>
     
 
@@ -4215,7 +4294,7 @@ The object is set as children of this object and the transformations applied to
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line249">line 249</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line258">line 258</a>
     </li></ul></dd>
     
 
@@ -4383,7 +4462,7 @@ To check if a point in world coordinates intersects the object the inverseGlobal
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line411">line 411</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line420">line 420</a>
     </li></ul></dd>
     
 
@@ -4570,7 +4649,7 @@ To check if a point in world coordinates intersects the object the inverseGlobal
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line279">line 279</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line288">line 288</a>
     </li></ul></dd>
     
 
@@ -4809,7 +4888,7 @@ To detect when the object drag stops the onPointerDragEnd() method can be used.
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line490">line 490</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line499">line 499</a>
     </li></ul></dd>
     
 
@@ -4978,7 +5057,7 @@ Dont forget to register object types using the Object2D.register() method.
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line654">line 654</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line666">line 666</a>
     </li></ul></dd>
     
 
@@ -5120,7 +5199,7 @@ Dont forget to register object types using the Object2D.register() method.
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line379">line 379</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line388">line 388</a>
     </li></ul></dd>
     
 
@@ -5266,7 +5345,7 @@ Data has to be parsed back into a usable object.
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line602">line 602</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line611">line 611</a>
     </li></ul></dd>
     
 
@@ -5478,7 +5557,7 @@ This is called before style() and draw(). It can also be used for some pre-rende
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line447">line 447</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line456">line 456</a>
     </li></ul></dd>
     
 
@@ -5620,7 +5699,7 @@ This is called before style() and draw(). It can also be used for some pre-rende
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line320">line 320</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line329">line 329</a>
     </li></ul></dd>
     
 
@@ -5762,7 +5841,7 @@ This is called before style() and draw(). It can also be used for some pre-rende
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line421">line 421</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line430">line 430</a>
     </li></ul></dd>
     
 
@@ -5814,7 +5893,7 @@ This is called before style() and draw(). It can also be used for some pre-rende
 <br class="clear">
 
 <footer>
-    Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.4</a> on Mon May 18 2020 18:45:41 GMT+0100 (Western European Summer Time)
+    Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.4</a> on Tue May 19 2020 10:16:34 GMT+0100 (Western European Summer Time)
 </footer>
 
 <script> prettyPrint(); </script>

+ 108 - 29
docs/Node.html

@@ -505,7 +505,7 @@ Should be implemented by underlying classes.
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line474">line 474</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line483">line 483</a>
     </li></ul></dd>
     
 
@@ -1487,7 +1487,7 @@ The matrix is updated before rendering the object, after the matrix is updated t
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line516">line 516</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line525">line 525</a>
     </li></ul></dd>
     
 
@@ -1554,7 +1554,7 @@ The matrix is updated before rendering the object, after the matrix is updated t
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line582">line 582</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line591">line 591</a>
     </li></ul></dd>
     
 
@@ -1621,7 +1621,7 @@ The matrix is updated before rendering the object, after the matrix is updated t
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line566">line 566</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line575">line 575</a>
     </li></ul></dd>
     
 
@@ -1688,7 +1688,7 @@ The matrix is updated before rendering the object, after the matrix is updated t
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line590">line 590</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line599">line 599</a>
     </li></ul></dd>
     
 
@@ -1755,7 +1755,7 @@ The matrix is updated before rendering the object, after the matrix is updated t
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line574">line 574</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line583">line 583</a>
     </li></ul></dd>
     
 
@@ -1822,7 +1822,7 @@ The matrix is updated before rendering the object, after the matrix is updated t
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line509">line 509</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line518">line 518</a>
     </li></ul></dd>
     
 
@@ -1889,7 +1889,7 @@ The matrix is updated before rendering the object, after the matrix is updated t
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line501">line 501</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line510">line 510</a>
     </li></ul></dd>
     
 
@@ -1958,7 +1958,7 @@ It is not called while the pointer is inside of the object, just on the first ti
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line542">line 542</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line551">line 551</a>
     </li></ul></dd>
     
 
@@ -2025,7 +2025,7 @@ It is not called while the pointer is inside of the object, just on the first ti
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line550">line 550</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line559">line 559</a>
     </li></ul></dd>
     
 
@@ -2092,7 +2092,7 @@ It is not called while the pointer is inside of the object, just on the first ti
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line558">line 558</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line567">line 567</a>
     </li></ul></dd>
     
 
@@ -2159,7 +2159,7 @@ It is not called while the pointer is inside of the object, just on the first ti
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line523">line 523</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line532">line 532</a>
     </li></ul></dd>
     
 
@@ -2230,7 +2230,7 @@ This method is called for every object before rendering.
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line532">line 532</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line541">line 541</a>
     </li></ul></dd>
     
 
@@ -3162,6 +3162,85 @@ The world scale of the object is affected by the parent transform.
 
         
             
+<h4 class="name" id="serializable"><span class="type-signature"></span>serializable<span class="type-signature"> :boolean</span></h4>
+
+
+
+
+<div class="description">
+    Indicates if the object should be serialized or not as a child of another object.
+
+Used to prevent duplicate serialization data on custom objects. Should be set false for objects added on constructor.
+</div>
+
+
+
+    <h5>Type:</h5>
+    <ul>
+        <li>
+            
+<span class="param-type">boolean</span>
+
+
+        </li>
+    </ul>
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+    <dt class="inherited-from">Inherited From:</dt>
+    <dd class="inherited-from"><ul class="dummy"><li>
+        <a href="Object2D.html#serializable">Object2D#serializable</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line210">line 210</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+            
 <h4 class="name" id="strokeStyle"><span class="type-signature"></span>strokeStyle<span class="type-signature"></span></h4>
 
 
@@ -3284,7 +3363,7 @@ Should be implemented by underlying classes.
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line463">line 463</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line472">line 472</a>
     </li></ul></dd>
     
 
@@ -3365,7 +3444,7 @@ If this type is from an external library you can add the library name to the obj
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line215">line 215</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line224">line 224</a>
     </li></ul></dd>
     
 
@@ -3655,7 +3734,7 @@ The object is set as children of this object and the transformations applied to
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line358">line 358</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line367">line 367</a>
     </li></ul></dd>
     
 
@@ -4112,7 +4191,7 @@ The object is set as children of this object and the transformations applied to
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line307">line 307</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line316">line 316</a>
     </li></ul></dd>
     
 
@@ -4254,7 +4333,7 @@ The object is set as children of this object and the transformations applied to
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line336">line 336</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line345">line 345</a>
     </li></ul></dd>
     
 
@@ -4759,7 +4838,7 @@ The object is set as children of this object and the transformations applied to
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line249">line 249</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line258">line 258</a>
     </li></ul></dd>
     
 
@@ -4927,7 +5006,7 @@ To check if a point in world coordinates intersects the object the inverseGlobal
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line411">line 411</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line420">line 420</a>
     </li></ul></dd>
     
 
@@ -5114,7 +5193,7 @@ To check if a point in world coordinates intersects the object the inverseGlobal
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line279">line 279</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line288">line 288</a>
     </li></ul></dd>
     
 
@@ -5353,7 +5432,7 @@ To detect when the object drag stops the onPointerDragEnd() method can be used.
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line490">line 490</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line499">line 499</a>
     </li></ul></dd>
     
 
@@ -5522,7 +5601,7 @@ Dont forget to register object types using the Object2D.register() method.
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line654">line 654</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line666">line 666</a>
     </li></ul></dd>
     
 
@@ -5664,7 +5743,7 @@ Dont forget to register object types using the Object2D.register() method.
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line379">line 379</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line388">line 388</a>
     </li></ul></dd>
     
 
@@ -5810,7 +5889,7 @@ Data has to be parsed back into a usable object.
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line602">line 602</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line611">line 611</a>
     </li></ul></dd>
     
 
@@ -6022,7 +6101,7 @@ This is called before style() and draw(). It can also be used for some pre-rende
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line447">line 447</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line456">line 456</a>
     </li></ul></dd>
     
 
@@ -6164,7 +6243,7 @@ This is called before style() and draw(). It can also be used for some pre-rende
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line320">line 320</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line329">line 329</a>
     </li></ul></dd>
     
 
@@ -6306,7 +6385,7 @@ This is called before style() and draw(). It can also be used for some pre-rende
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line421">line 421</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line430">line 430</a>
     </li></ul></dd>
     
 
@@ -6358,7 +6437,7 @@ This is called before style() and draw(). It can also be used for some pre-rende
 <br class="clear">
 
 <footer>
-    Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.4</a> on Mon May 18 2020 18:45:41 GMT+0100 (Western European Summer Time)
+    Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.4</a> on Tue May 19 2020 10:16:34 GMT+0100 (Western European Summer Time)
 </footer>
 
 <script> prettyPrint(); </script>

+ 108 - 29
docs/NodeConnector.html

@@ -519,7 +519,7 @@ Should be implemented by underlying classes.
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line474">line 474</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line483">line 483</a>
     </li></ul></dd>
     
 
@@ -1598,7 +1598,7 @@ The matrix is updated before rendering the object, after the matrix is updated t
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line516">line 516</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line525">line 525</a>
     </li></ul></dd>
     
 
@@ -1665,7 +1665,7 @@ The matrix is updated before rendering the object, after the matrix is updated t
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line582">line 582</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line591">line 591</a>
     </li></ul></dd>
     
 
@@ -1732,7 +1732,7 @@ The matrix is updated before rendering the object, after the matrix is updated t
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line566">line 566</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line575">line 575</a>
     </li></ul></dd>
     
 
@@ -1799,7 +1799,7 @@ The matrix is updated before rendering the object, after the matrix is updated t
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line590">line 590</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line599">line 599</a>
     </li></ul></dd>
     
 
@@ -1866,7 +1866,7 @@ The matrix is updated before rendering the object, after the matrix is updated t
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line574">line 574</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line583">line 583</a>
     </li></ul></dd>
     
 
@@ -1933,7 +1933,7 @@ The matrix is updated before rendering the object, after the matrix is updated t
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line509">line 509</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line518">line 518</a>
     </li></ul></dd>
     
 
@@ -2000,7 +2000,7 @@ The matrix is updated before rendering the object, after the matrix is updated t
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line501">line 501</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line510">line 510</a>
     </li></ul></dd>
     
 
@@ -2069,7 +2069,7 @@ It is not called while the pointer is inside of the object, just on the first ti
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line542">line 542</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line551">line 551</a>
     </li></ul></dd>
     
 
@@ -2136,7 +2136,7 @@ It is not called while the pointer is inside of the object, just on the first ti
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line550">line 550</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line559">line 559</a>
     </li></ul></dd>
     
 
@@ -2203,7 +2203,7 @@ It is not called while the pointer is inside of the object, just on the first ti
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line558">line 558</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line567">line 567</a>
     </li></ul></dd>
     
 
@@ -2270,7 +2270,7 @@ It is not called while the pointer is inside of the object, just on the first ti
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line523">line 523</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line532">line 532</a>
     </li></ul></dd>
     
 
@@ -2341,7 +2341,7 @@ This method is called for every object before rendering.
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line532">line 532</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line541">line 541</a>
     </li></ul></dd>
     
 
@@ -3134,6 +3134,85 @@ The world scale of the object is affected by the parent transform.
 
         
             
+<h4 class="name" id="serializable"><span class="type-signature"></span>serializable<span class="type-signature"> :boolean</span></h4>
+
+
+
+
+<div class="description">
+    Indicates if the object should be serialized or not as a child of another object.
+
+Used to prevent duplicate serialization data on custom objects. Should be set false for objects added on constructor.
+</div>
+
+
+
+    <h5>Type:</h5>
+    <ul>
+        <li>
+            
+<span class="param-type">boolean</span>
+
+
+        </li>
+    </ul>
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+    <dt class="inherited-from">Inherited From:</dt>
+    <dd class="inherited-from"><ul class="dummy"><li>
+        <a href="Object2D.html#serializable">Object2D#serializable</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line210">line 210</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+            
 <h4 class="name" id="strokeStyle"><span class="type-signature"></span>strokeStyle<span class="type-signature"> :string</span></h4>
 
 
@@ -3264,7 +3343,7 @@ Should be implemented by underlying classes.
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line463">line 463</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line472">line 472</a>
     </li></ul></dd>
     
 
@@ -3501,7 +3580,7 @@ If this type is from an external library you can add the library name to the obj
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line215">line 215</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line224">line 224</a>
     </li></ul></dd>
     
 
@@ -3791,7 +3870,7 @@ The object is set as children of this object and the transformations applied to
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line358">line 358</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line367">line 367</a>
     </li></ul></dd>
     
 
@@ -3884,7 +3963,7 @@ The object is set as children of this object and the transformations applied to
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line307">line 307</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line316">line 316</a>
     </li></ul></dd>
     
 
@@ -4026,7 +4105,7 @@ The object is set as children of this object and the transformations applied to
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line336">line 336</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line345">line 345</a>
     </li></ul></dd>
     
 
@@ -4213,7 +4292,7 @@ The object is set as children of this object and the transformations applied to
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line249">line 249</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line258">line 258</a>
     </li></ul></dd>
     
 
@@ -4381,7 +4460,7 @@ To check if a point in world coordinates intersects the object the inverseGlobal
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line411">line 411</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line420">line 420</a>
     </li></ul></dd>
     
 
@@ -4568,7 +4647,7 @@ To check if a point in world coordinates intersects the object the inverseGlobal
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line279">line 279</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line288">line 288</a>
     </li></ul></dd>
     
 
@@ -4807,7 +4886,7 @@ To detect when the object drag stops the onPointerDragEnd() method can be used.
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line490">line 490</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line499">line 499</a>
     </li></ul></dd>
     
 
@@ -4976,7 +5055,7 @@ Dont forget to register object types using the Object2D.register() method.
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line654">line 654</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line666">line 666</a>
     </li></ul></dd>
     
 
@@ -5118,7 +5197,7 @@ Dont forget to register object types using the Object2D.register() method.
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line379">line 379</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line388">line 388</a>
     </li></ul></dd>
     
 
@@ -5264,7 +5343,7 @@ Data has to be parsed back into a usable object.
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line602">line 602</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line611">line 611</a>
     </li></ul></dd>
     
 
@@ -5476,7 +5555,7 @@ This is called before style() and draw(). It can also be used for some pre-rende
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line447">line 447</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line456">line 456</a>
     </li></ul></dd>
     
 
@@ -5618,7 +5697,7 @@ This is called before style() and draw(). It can also be used for some pre-rende
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line320">line 320</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line329">line 329</a>
     </li></ul></dd>
     
 
@@ -5760,7 +5839,7 @@ This is called before style() and draw(). It can also be used for some pre-rende
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line421">line 421</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line430">line 430</a>
     </li></ul></dd>
     
 
@@ -5812,7 +5891,7 @@ This is called before style() and draw(). It can also be used for some pre-rende
 <br class="clear">
 
 <footer>
-    Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.4</a> on Mon May 18 2020 18:45:41 GMT+0100 (Western European Summer Time)
+    Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.4</a> on Tue May 19 2020 10:16:35 GMT+0100 (Western European Summer Time)
 </footer>
 
 <script> prettyPrint(); </script>

+ 108 - 29
docs/NodeGraph.html

@@ -438,7 +438,7 @@ Should be implemented by underlying classes.
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line474">line 474</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line483">line 483</a>
     </li></ul></dd>
     
 
@@ -1212,7 +1212,7 @@ The matrix is updated before rendering the object, after the matrix is updated t
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line516">line 516</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line525">line 525</a>
     </li></ul></dd>
     
 
@@ -1279,7 +1279,7 @@ The matrix is updated before rendering the object, after the matrix is updated t
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line582">line 582</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line591">line 591</a>
     </li></ul></dd>
     
 
@@ -1346,7 +1346,7 @@ The matrix is updated before rendering the object, after the matrix is updated t
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line566">line 566</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line575">line 575</a>
     </li></ul></dd>
     
 
@@ -1413,7 +1413,7 @@ The matrix is updated before rendering the object, after the matrix is updated t
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line590">line 590</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line599">line 599</a>
     </li></ul></dd>
     
 
@@ -1480,7 +1480,7 @@ The matrix is updated before rendering the object, after the matrix is updated t
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line574">line 574</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line583">line 583</a>
     </li></ul></dd>
     
 
@@ -1547,7 +1547,7 @@ The matrix is updated before rendering the object, after the matrix is updated t
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line509">line 509</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line518">line 518</a>
     </li></ul></dd>
     
 
@@ -1614,7 +1614,7 @@ The matrix is updated before rendering the object, after the matrix is updated t
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line501">line 501</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line510">line 510</a>
     </li></ul></dd>
     
 
@@ -1683,7 +1683,7 @@ It is not called while the pointer is inside of the object, just on the first ti
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line542">line 542</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line551">line 551</a>
     </li></ul></dd>
     
 
@@ -1750,7 +1750,7 @@ It is not called while the pointer is inside of the object, just on the first ti
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line550">line 550</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line559">line 559</a>
     </li></ul></dd>
     
 
@@ -1817,7 +1817,7 @@ It is not called while the pointer is inside of the object, just on the first ti
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line558">line 558</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line567">line 567</a>
     </li></ul></dd>
     
 
@@ -1884,7 +1884,7 @@ It is not called while the pointer is inside of the object, just on the first ti
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line523">line 523</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line532">line 532</a>
     </li></ul></dd>
     
 
@@ -1955,7 +1955,7 @@ This method is called for every object before rendering.
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line532">line 532</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line541">line 541</a>
     </li></ul></dd>
     
 
@@ -2676,6 +2676,85 @@ The world scale of the object is affected by the parent transform.
 
         
             
+<h4 class="name" id="serializable"><span class="type-signature"></span>serializable<span class="type-signature"> :boolean</span></h4>
+
+
+
+
+<div class="description">
+    Indicates if the object should be serialized or not as a child of another object.
+
+Used to prevent duplicate serialization data on custom objects. Should be set false for objects added on constructor.
+</div>
+
+
+
+    <h5>Type:</h5>
+    <ul>
+        <li>
+            
+<span class="param-type">boolean</span>
+
+
+        </li>
+    </ul>
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+    <dt class="inherited-from">Inherited From:</dt>
+    <dd class="inherited-from"><ul class="dummy"><li>
+        <a href="Object2D.html#serializable">Object2D#serializable</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line210">line 210</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+            
 <h4 class="name" id="style"><span class="type-signature"></span>style<span class="type-signature"></span></h4>
 
 
@@ -2729,7 +2808,7 @@ Should be implemented by underlying classes.
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line463">line 463</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line472">line 472</a>
     </li></ul></dd>
     
 
@@ -2810,7 +2889,7 @@ If this type is from an external library you can add the library name to the obj
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line215">line 215</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line224">line 224</a>
     </li></ul></dd>
     
 
@@ -3100,7 +3179,7 @@ The object is set as children of this object and the transformations applied to
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line358">line 358</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line367">line 367</a>
     </li></ul></dd>
     
 
@@ -3352,7 +3431,7 @@ The object is set as children of this object and the transformations applied to
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line307">line 307</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line316">line 316</a>
     </li></ul></dd>
     
 
@@ -3494,7 +3573,7 @@ The object is set as children of this object and the transformations applied to
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line336">line 336</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line345">line 345</a>
     </li></ul></dd>
     
 
@@ -3681,7 +3760,7 @@ The object is set as children of this object and the transformations applied to
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line249">line 249</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line258">line 258</a>
     </li></ul></dd>
     
 
@@ -3849,7 +3928,7 @@ To check if a point in world coordinates intersects the object the inverseGlobal
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line411">line 411</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line420">line 420</a>
     </li></ul></dd>
     
 
@@ -4036,7 +4115,7 @@ To check if a point in world coordinates intersects the object the inverseGlobal
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line279">line 279</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line288">line 288</a>
     </li></ul></dd>
     
 
@@ -4275,7 +4354,7 @@ To detect when the object drag stops the onPointerDragEnd() method can be used.
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line490">line 490</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line499">line 499</a>
     </li></ul></dd>
     
 
@@ -4444,7 +4523,7 @@ Dont forget to register object types using the Object2D.register() method.
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line654">line 654</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line666">line 666</a>
     </li></ul></dd>
     
 
@@ -4586,7 +4665,7 @@ Dont forget to register object types using the Object2D.register() method.
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line379">line 379</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line388">line 388</a>
     </li></ul></dd>
     
 
@@ -4732,7 +4811,7 @@ Data has to be parsed back into a usable object.
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line602">line 602</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line611">line 611</a>
     </li></ul></dd>
     
 
@@ -4944,7 +5023,7 @@ This is called before style() and draw(). It can also be used for some pre-rende
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line447">line 447</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line456">line 456</a>
     </li></ul></dd>
     
 
@@ -5086,7 +5165,7 @@ This is called before style() and draw(). It can also be used for some pre-rende
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line320">line 320</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line329">line 329</a>
     </li></ul></dd>
     
 
@@ -5228,7 +5307,7 @@ This is called before style() and draw(). It can also be used for some pre-rende
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line421">line 421</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line430">line 430</a>
     </li></ul></dd>
     
 
@@ -5280,7 +5359,7 @@ This is called before style() and draw(). It can also be used for some pre-rende
 <br class="clear">
 
 <footer>
-    Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.4</a> on Mon May 18 2020 18:45:41 GMT+0100 (Western European Summer Time)
+    Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.4</a> on Tue May 19 2020 10:16:35 GMT+0100 (Western European Summer Time)
 </footer>
 
 <script> prettyPrint(); </script>

+ 108 - 29
docs/NodeSocket.html

@@ -988,7 +988,7 @@ Should be implemented by underlying classes.
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line474">line 474</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line483">line 483</a>
     </li></ul></dd>
     
 
@@ -2114,7 +2114,7 @@ The matrix is updated before rendering the object, after the matrix is updated t
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line516">line 516</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line525">line 525</a>
     </li></ul></dd>
     
 
@@ -2181,7 +2181,7 @@ The matrix is updated before rendering the object, after the matrix is updated t
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line582">line 582</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line591">line 591</a>
     </li></ul></dd>
     
 
@@ -2248,7 +2248,7 @@ The matrix is updated before rendering the object, after the matrix is updated t
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line566">line 566</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line575">line 575</a>
     </li></ul></dd>
     
 
@@ -2315,7 +2315,7 @@ The matrix is updated before rendering the object, after the matrix is updated t
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line590">line 590</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line599">line 599</a>
     </li></ul></dd>
     
 
@@ -2382,7 +2382,7 @@ The matrix is updated before rendering the object, after the matrix is updated t
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line574">line 574</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line583">line 583</a>
     </li></ul></dd>
     
 
@@ -2449,7 +2449,7 @@ The matrix is updated before rendering the object, after the matrix is updated t
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line509">line 509</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line518">line 518</a>
     </li></ul></dd>
     
 
@@ -2516,7 +2516,7 @@ The matrix is updated before rendering the object, after the matrix is updated t
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line501">line 501</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line510">line 510</a>
     </li></ul></dd>
     
 
@@ -2585,7 +2585,7 @@ It is not called while the pointer is inside of the object, just on the first ti
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line542">line 542</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line551">line 551</a>
     </li></ul></dd>
     
 
@@ -2652,7 +2652,7 @@ It is not called while the pointer is inside of the object, just on the first ti
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line550">line 550</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line559">line 559</a>
     </li></ul></dd>
     
 
@@ -2719,7 +2719,7 @@ It is not called while the pointer is inside of the object, just on the first ti
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line558">line 558</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line567">line 567</a>
     </li></ul></dd>
     
 
@@ -2786,7 +2786,7 @@ It is not called while the pointer is inside of the object, just on the first ti
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line523">line 523</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line532">line 532</a>
     </li></ul></dd>
     
 
@@ -2857,7 +2857,7 @@ This method is called for every object before rendering.
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line532">line 532</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line541">line 541</a>
     </li></ul></dd>
     
 
@@ -3645,6 +3645,85 @@ The world scale of the object is affected by the parent transform.
 
         
             
+<h4 class="name" id="serializable"><span class="type-signature"></span>serializable<span class="type-signature"> :boolean</span></h4>
+
+
+
+
+<div class="description">
+    Indicates if the object should be serialized or not as a child of another object.
+
+Used to prevent duplicate serialization data on custom objects. Should be set false for objects added on constructor.
+</div>
+
+
+
+    <h5>Type:</h5>
+    <ul>
+        <li>
+            
+<span class="param-type">boolean</span>
+
+
+        </li>
+    </ul>
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+    <dt class="inherited-from">Inherited From:</dt>
+    <dd class="inherited-from"><ul class="dummy"><li>
+        <a href="Object2D.html#serializable">Object2D#serializable</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line210">line 210</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+            
 <h4 class="name" id="strokeStyle"><span class="type-signature"></span>strokeStyle<span class="type-signature"></span></h4>
 
 
@@ -3767,7 +3846,7 @@ Should be implemented by underlying classes.
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line463">line 463</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line472">line 472</a>
     </li></ul></dd>
     
 
@@ -3920,7 +3999,7 @@ If this type is from an external library you can add the library name to the obj
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line215">line 215</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line224">line 224</a>
     </li></ul></dd>
     
 
@@ -4210,7 +4289,7 @@ The object is set as children of this object and the transformations applied to
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line358">line 358</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line367">line 367</a>
     </li></ul></dd>
     
 
@@ -4868,7 +4947,7 @@ The object is set as children of this object and the transformations applied to
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line307">line 307</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line316">line 316</a>
     </li></ul></dd>
     
 
@@ -5098,7 +5177,7 @@ The object is set as children of this object and the transformations applied to
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line336">line 336</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line345">line 345</a>
     </li></ul></dd>
     
 
@@ -5395,7 +5474,7 @@ The object is set as children of this object and the transformations applied to
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line249">line 249</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line258">line 258</a>
     </li></ul></dd>
     
 
@@ -5722,7 +5801,7 @@ To check if a point in world coordinates intersects the object the inverseGlobal
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line411">line 411</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line420">line 420</a>
     </li></ul></dd>
     
 
@@ -5909,7 +5988,7 @@ To check if a point in world coordinates intersects the object the inverseGlobal
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line279">line 279</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line288">line 288</a>
     </li></ul></dd>
     
 
@@ -6148,7 +6227,7 @@ To detect when the object drag stops the onPointerDragEnd() method can be used.
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line490">line 490</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line499">line 499</a>
     </li></ul></dd>
     
 
@@ -6317,7 +6396,7 @@ Dont forget to register object types using the Object2D.register() method.
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line654">line 654</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line666">line 666</a>
     </li></ul></dd>
     
 
@@ -6459,7 +6538,7 @@ Dont forget to register object types using the Object2D.register() method.
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line379">line 379</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line388">line 388</a>
     </li></ul></dd>
     
 
@@ -6693,7 +6772,7 @@ Data has to be parsed back into a usable object.
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line602">line 602</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line611">line 611</a>
     </li></ul></dd>
     
 
@@ -6905,7 +6984,7 @@ This is called before style() and draw(). It can also be used for some pre-rende
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line447">line 447</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line456">line 456</a>
     </li></ul></dd>
     
 
@@ -7047,7 +7126,7 @@ This is called before style() and draw(). It can also be used for some pre-rende
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line320">line 320</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line329">line 329</a>
     </li></ul></dd>
     
 
@@ -7189,7 +7268,7 @@ This is called before style() and draw(). It can also be used for some pre-rende
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line421">line 421</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line430">line 430</a>
     </li></ul></dd>
     
 
@@ -7241,7 +7320,7 @@ This is called before style() and draw(). It can also be used for some pre-rende
 <br class="clear">
 
 <footer>
-    Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.4</a> on Mon May 18 2020 18:45:41 GMT+0100 (Western European Summer Time)
+    Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.4</a> on Tue May 19 2020 10:16:35 GMT+0100 (Western European Summer Time)
 </footer>
 
 <script> prettyPrint(); </script>

+ 106 - 32
docs/Object2D.html

@@ -205,7 +205,7 @@ New object types should be added using the Object2D.register() method.
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line227">line 227</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line236">line 236</a>
     </li></ul></dd>
     
 
@@ -487,7 +487,7 @@ Should be implemented by underlying classes.
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line474">line 474</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line483">line 483</a>
     </li></ul></dd>
     
 
@@ -1211,7 +1211,7 @@ The matrix is updated before rendering the object, after the matrix is updated t
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line516">line 516</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line525">line 525</a>
     </li></ul></dd>
     
 
@@ -1273,7 +1273,7 @@ The matrix is updated before rendering the object, after the matrix is updated t
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line582">line 582</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line591">line 591</a>
     </li></ul></dd>
     
 
@@ -1335,7 +1335,7 @@ The matrix is updated before rendering the object, after the matrix is updated t
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line566">line 566</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line575">line 575</a>
     </li></ul></dd>
     
 
@@ -1397,7 +1397,7 @@ The matrix is updated before rendering the object, after the matrix is updated t
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line590">line 590</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line599">line 599</a>
     </li></ul></dd>
     
 
@@ -1459,7 +1459,7 @@ The matrix is updated before rendering the object, after the matrix is updated t
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line574">line 574</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line583">line 583</a>
     </li></ul></dd>
     
 
@@ -1521,7 +1521,7 @@ The matrix is updated before rendering the object, after the matrix is updated t
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line509">line 509</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line518">line 518</a>
     </li></ul></dd>
     
 
@@ -1583,7 +1583,7 @@ The matrix is updated before rendering the object, after the matrix is updated t
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line501">line 501</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line510">line 510</a>
     </li></ul></dd>
     
 
@@ -1647,7 +1647,7 @@ It is not called while the pointer is inside of the object, just on the first ti
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line542">line 542</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line551">line 551</a>
     </li></ul></dd>
     
 
@@ -1709,7 +1709,7 @@ It is not called while the pointer is inside of the object, just on the first ti
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line550">line 550</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line559">line 559</a>
     </li></ul></dd>
     
 
@@ -1771,7 +1771,7 @@ It is not called while the pointer is inside of the object, just on the first ti
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line558">line 558</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line567">line 567</a>
     </li></ul></dd>
     
 
@@ -1833,7 +1833,7 @@ It is not called while the pointer is inside of the object, just on the first ti
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line523">line 523</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line532">line 532</a>
     </li></ul></dd>
     
 
@@ -1899,7 +1899,7 @@ This method is called for every object before rendering.
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line532">line 532</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line541">line 541</a>
     </li></ul></dd>
     
 
@@ -2575,6 +2575,80 @@ The world scale of the object is affected by the parent transform.
 
         
             
+<h4 class="name" id="serializable"><span class="type-signature"></span>serializable<span class="type-signature"> :boolean</span></h4>
+
+
+
+
+<div class="description">
+    Indicates if the object should be serialized or not as a child of another object.
+
+Used to prevent duplicate serialization data on custom objects. Should be set false for objects added on constructor.
+</div>
+
+
+
+    <h5>Type:</h5>
+    <ul>
+        <li>
+            
+<span class="param-type">boolean</span>
+
+
+        </li>
+    </ul>
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line210">line 210</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+            
 <h4 class="name" id="style"><span class="type-signature"></span>style<span class="type-signature"></span></h4>
 
 
@@ -2623,7 +2697,7 @@ Should be implemented by underlying classes.
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line463">line 463</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line472">line 472</a>
     </li></ul></dd>
     
 
@@ -2699,7 +2773,7 @@ If this type is from an external library you can add the library name to the obj
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line215">line 215</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line224">line 224</a>
     </li></ul></dd>
     
 
@@ -2976,7 +3050,7 @@ First all objects instances are created to ensure that object trying to get refe
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line692">line 692</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line704">line 704</a>
     </li></ul></dd>
     
 
@@ -3160,7 +3234,7 @@ Should be called for every new object class implemented if you want to be able t
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line237">line 237</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line246">line 246</a>
     </li></ul></dd>
     
 
@@ -3299,7 +3373,7 @@ The object is set as children of this object and the transformations applied to
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line358">line 358</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line367">line 367</a>
     </li></ul></dd>
     
 
@@ -3387,7 +3461,7 @@ The object is set as children of this object and the transformations applied to
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line307">line 307</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line316">line 316</a>
     </li></ul></dd>
     
 
@@ -3524,7 +3598,7 @@ The object is set as children of this object and the transformations applied to
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line336">line 336</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line345">line 345</a>
     </li></ul></dd>
     
 
@@ -3706,7 +3780,7 @@ The object is set as children of this object and the transformations applied to
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line249">line 249</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line258">line 258</a>
     </li></ul></dd>
     
 
@@ -3869,7 +3943,7 @@ To check if a point in world coordinates intersects the object the inverseGlobal
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line411">line 411</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line420">line 420</a>
     </li></ul></dd>
     
 
@@ -4051,7 +4125,7 @@ To check if a point in world coordinates intersects the object the inverseGlobal
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line279">line 279</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line288">line 288</a>
     </li></ul></dd>
     
 
@@ -4285,7 +4359,7 @@ To detect when the object drag stops the onPointerDragEnd() method can be used.
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line490">line 490</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line499">line 499</a>
     </li></ul></dd>
     
 
@@ -4449,7 +4523,7 @@ Dont forget to register object types using the Object2D.register() method.
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line654">line 654</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line666">line 666</a>
     </li></ul></dd>
     
 
@@ -4586,7 +4660,7 @@ Dont forget to register object types using the Object2D.register() method.
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line379">line 379</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line388">line 388</a>
     </li></ul></dd>
     
 
@@ -4727,7 +4801,7 @@ Data has to be parsed back into a usable object.
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line602">line 602</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line611">line 611</a>
     </li></ul></dd>
     
 
@@ -4934,7 +5008,7 @@ This is called before style() and draw(). It can also be used for some pre-rende
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line447">line 447</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line456">line 456</a>
     </li></ul></dd>
     
 
@@ -5071,7 +5145,7 @@ This is called before style() and draw(). It can also be used for some pre-rende
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line320">line 320</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line329">line 329</a>
     </li></ul></dd>
     
 
@@ -5208,7 +5282,7 @@ This is called before style() and draw(). It can also be used for some pre-rende
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line421">line 421</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line430">line 430</a>
     </li></ul></dd>
     
 
@@ -5260,7 +5334,7 @@ This is called before style() and draw(). It can also be used for some pre-rende
 <br class="clear">
 
 <footer>
-    Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.4</a> on Mon May 18 2020 18:45:41 GMT+0100 (Western European Summer Time)
+    Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.4</a> on Tue May 19 2020 10:16:35 GMT+0100 (Western European Summer Time)
 </footer>
 
 <script> prettyPrint(); </script>

+ 14 - 2
docs/Object2D.js.html

@@ -227,6 +227,15 @@ function Object2D()
 	 * @type {boolean}
 	 */
 	this.beingDragged = false;
+
+	/**
+	 * Indicates if the object should be serialized or not as a child of another object.
+	 *
+	 * Used to prevent duplicate serialization data on custom objects. Should be set false for objects added on constructor.
+	 *
+	 * @type {boolean}
+	 */
+	this.serializable = true;
 }
 
 Object2D.prototype.constructor = Object2D;
@@ -657,7 +666,10 @@ Object2D.prototype.serialize = function(recursive)
 	{
 		for(var i = 0; i &lt; this.children.length; i++)
 		{
-			data.children.push(this.children[i].serialize());
+			if(this.children[i].serializable)
+			{
+				data.children.push(this.children[i].serialize());
+			}
 		}
 	}
 
@@ -772,7 +784,7 @@ export {Object2D};
 <br class="clear">
 
 <footer>
-    Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.4</a> on Mon May 18 2020 18:45:41 GMT+0100 (Western European Summer Time)
+    Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.4</a> on Tue May 19 2020 10:16:34 GMT+0100 (Western European Summer Time)
 </footer>
 
 <script> prettyPrint(); </script>

+ 108 - 29
docs/Pattern.html

@@ -561,7 +561,7 @@ Should be implemented by underlying classes.
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line474">line 474</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line483">line 483</a>
     </li></ul></dd>
     
 
@@ -1409,7 +1409,7 @@ The matrix is updated before rendering the object, after the matrix is updated t
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line516">line 516</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line525">line 525</a>
     </li></ul></dd>
     
 
@@ -1476,7 +1476,7 @@ The matrix is updated before rendering the object, after the matrix is updated t
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line582">line 582</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line591">line 591</a>
     </li></ul></dd>
     
 
@@ -1543,7 +1543,7 @@ The matrix is updated before rendering the object, after the matrix is updated t
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line566">line 566</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line575">line 575</a>
     </li></ul></dd>
     
 
@@ -1610,7 +1610,7 @@ The matrix is updated before rendering the object, after the matrix is updated t
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line590">line 590</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line599">line 599</a>
     </li></ul></dd>
     
 
@@ -1677,7 +1677,7 @@ The matrix is updated before rendering the object, after the matrix is updated t
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line574">line 574</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line583">line 583</a>
     </li></ul></dd>
     
 
@@ -1744,7 +1744,7 @@ The matrix is updated before rendering the object, after the matrix is updated t
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line509">line 509</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line518">line 518</a>
     </li></ul></dd>
     
 
@@ -1811,7 +1811,7 @@ The matrix is updated before rendering the object, after the matrix is updated t
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line501">line 501</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line510">line 510</a>
     </li></ul></dd>
     
 
@@ -1880,7 +1880,7 @@ It is not called while the pointer is inside of the object, just on the first ti
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line542">line 542</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line551">line 551</a>
     </li></ul></dd>
     
 
@@ -1947,7 +1947,7 @@ It is not called while the pointer is inside of the object, just on the first ti
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line550">line 550</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line559">line 559</a>
     </li></ul></dd>
     
 
@@ -2014,7 +2014,7 @@ It is not called while the pointer is inside of the object, just on the first ti
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line558">line 558</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line567">line 567</a>
     </li></ul></dd>
     
 
@@ -2081,7 +2081,7 @@ It is not called while the pointer is inside of the object, just on the first ti
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line523">line 523</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line532">line 532</a>
     </li></ul></dd>
     
 
@@ -2152,7 +2152,7 @@ This method is called for every object before rendering.
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line532">line 532</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line541">line 541</a>
     </li></ul></dd>
     
 
@@ -2949,6 +2949,85 @@ The world scale of the object is affected by the parent transform.
 
         
             
+<h4 class="name" id="serializable"><span class="type-signature"></span>serializable<span class="type-signature"> :boolean</span></h4>
+
+
+
+
+<div class="description">
+    Indicates if the object should be serialized or not as a child of another object.
+
+Used to prevent duplicate serialization data on custom objects. Should be set false for objects added on constructor.
+</div>
+
+
+
+    <h5>Type:</h5>
+    <ul>
+        <li>
+            
+<span class="param-type">boolean</span>
+
+
+        </li>
+    </ul>
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+    <dt class="inherited-from">Inherited From:</dt>
+    <dd class="inherited-from"><ul class="dummy"><li>
+        <a href="Object2D.html#serializable">Object2D#serializable</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line210">line 210</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+            
 <h4 class="name" id="style"><span class="type-signature"></span>style<span class="type-signature"></span></h4>
 
 
@@ -3002,7 +3081,7 @@ Should be implemented by underlying classes.
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line463">line 463</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line472">line 472</a>
     </li></ul></dd>
     
 
@@ -3083,7 +3162,7 @@ If this type is from an external library you can add the library name to the obj
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line215">line 215</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line224">line 224</a>
     </li></ul></dd>
     
 
@@ -3373,7 +3452,7 @@ The object is set as children of this object and the transformations applied to
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line358">line 358</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line367">line 367</a>
     </li></ul></dd>
     
 
@@ -3466,7 +3545,7 @@ The object is set as children of this object and the transformations applied to
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line307">line 307</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line316">line 316</a>
     </li></ul></dd>
     
 
@@ -3608,7 +3687,7 @@ The object is set as children of this object and the transformations applied to
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line336">line 336</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line345">line 345</a>
     </li></ul></dd>
     
 
@@ -3795,7 +3874,7 @@ The object is set as children of this object and the transformations applied to
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line249">line 249</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line258">line 258</a>
     </li></ul></dd>
     
 
@@ -3963,7 +4042,7 @@ To check if a point in world coordinates intersects the object the inverseGlobal
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line411">line 411</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line420">line 420</a>
     </li></ul></dd>
     
 
@@ -4150,7 +4229,7 @@ To check if a point in world coordinates intersects the object the inverseGlobal
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line279">line 279</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line288">line 288</a>
     </li></ul></dd>
     
 
@@ -4389,7 +4468,7 @@ To detect when the object drag stops the onPointerDragEnd() method can be used.
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line490">line 490</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line499">line 499</a>
     </li></ul></dd>
     
 
@@ -4558,7 +4637,7 @@ Dont forget to register object types using the Object2D.register() method.
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line654">line 654</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line666">line 666</a>
     </li></ul></dd>
     
 
@@ -4700,7 +4779,7 @@ Dont forget to register object types using the Object2D.register() method.
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line379">line 379</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line388">line 388</a>
     </li></ul></dd>
     
 
@@ -4846,7 +4925,7 @@ Data has to be parsed back into a usable object.
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line602">line 602</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line611">line 611</a>
     </li></ul></dd>
     
 
@@ -5197,7 +5276,7 @@ This is called before style() and draw(). It can also be used for some pre-rende
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line447">line 447</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line456">line 456</a>
     </li></ul></dd>
     
 
@@ -5339,7 +5418,7 @@ This is called before style() and draw(). It can also be used for some pre-rende
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line320">line 320</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line329">line 329</a>
     </li></ul></dd>
     
 
@@ -5481,7 +5560,7 @@ This is called before style() and draw(). It can also be used for some pre-rende
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line421">line 421</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line430">line 430</a>
     </li></ul></dd>
     
 
@@ -5533,7 +5612,7 @@ This is called before style() and draw(). It can also be used for some pre-rende
 <br class="clear">
 
 <footer>
-    Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.4</a> on Mon May 18 2020 18:45:41 GMT+0100 (Western European Summer Time)
+    Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.4</a> on Tue May 19 2020 10:16:35 GMT+0100 (Western European Summer Time)
 </footer>
 
 <script> prettyPrint(); </script>

+ 1 - 1
docs/Pointer.html

@@ -2570,7 +2570,7 @@ Automatically called by the runtime.
 <br class="clear">
 
 <footer>
-    Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.4</a> on Mon May 18 2020 18:45:41 GMT+0100 (Western European Summer Time)
+    Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.4</a> on Tue May 19 2020 10:16:35 GMT+0100 (Western European Summer Time)
 </footer>
 
 <script> prettyPrint(); </script>

+ 108 - 29
docs/QuadraticCurve.html

@@ -512,7 +512,7 @@ Should be implemented by underlying classes.
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line474">line 474</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line483">line 483</a>
     </li></ul></dd>
     
 
@@ -1286,7 +1286,7 @@ The matrix is updated before rendering the object, after the matrix is updated t
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line516">line 516</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line525">line 525</a>
     </li></ul></dd>
     
 
@@ -1353,7 +1353,7 @@ The matrix is updated before rendering the object, after the matrix is updated t
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line582">line 582</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line591">line 591</a>
     </li></ul></dd>
     
 
@@ -1420,7 +1420,7 @@ The matrix is updated before rendering the object, after the matrix is updated t
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line566">line 566</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line575">line 575</a>
     </li></ul></dd>
     
 
@@ -1487,7 +1487,7 @@ The matrix is updated before rendering the object, after the matrix is updated t
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line590">line 590</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line599">line 599</a>
     </li></ul></dd>
     
 
@@ -1554,7 +1554,7 @@ The matrix is updated before rendering the object, after the matrix is updated t
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line574">line 574</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line583">line 583</a>
     </li></ul></dd>
     
 
@@ -1621,7 +1621,7 @@ The matrix is updated before rendering the object, after the matrix is updated t
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line509">line 509</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line518">line 518</a>
     </li></ul></dd>
     
 
@@ -1688,7 +1688,7 @@ The matrix is updated before rendering the object, after the matrix is updated t
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line501">line 501</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line510">line 510</a>
     </li></ul></dd>
     
 
@@ -1757,7 +1757,7 @@ It is not called while the pointer is inside of the object, just on the first ti
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line542">line 542</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line551">line 551</a>
     </li></ul></dd>
     
 
@@ -1824,7 +1824,7 @@ It is not called while the pointer is inside of the object, just on the first ti
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line550">line 550</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line559">line 559</a>
     </li></ul></dd>
     
 
@@ -1891,7 +1891,7 @@ It is not called while the pointer is inside of the object, just on the first ti
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line558">line 558</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line567">line 567</a>
     </li></ul></dd>
     
 
@@ -1958,7 +1958,7 @@ It is not called while the pointer is inside of the object, just on the first ti
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line523">line 523</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line532">line 532</a>
     </li></ul></dd>
     
 
@@ -2029,7 +2029,7 @@ This method is called for every object before rendering.
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line532">line 532</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line541">line 541</a>
     </li></ul></dd>
     
 
@@ -2750,6 +2750,85 @@ The world scale of the object is affected by the parent transform.
 
         
             
+<h4 class="name" id="serializable"><span class="type-signature"></span>serializable<span class="type-signature"> :boolean</span></h4>
+
+
+
+
+<div class="description">
+    Indicates if the object should be serialized or not as a child of another object.
+
+Used to prevent duplicate serialization data on custom objects. Should be set false for objects added on constructor.
+</div>
+
+
+
+    <h5>Type:</h5>
+    <ul>
+        <li>
+            
+<span class="param-type">boolean</span>
+
+
+        </li>
+    </ul>
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+    <dt class="inherited-from">Inherited From:</dt>
+    <dd class="inherited-from"><ul class="dummy"><li>
+        <a href="Object2D.html#serializable">Object2D#serializable</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line210">line 210</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+            
 <h4 class="name" id="style"><span class="type-signature"></span>style<span class="type-signature"></span></h4>
 
 
@@ -2803,7 +2882,7 @@ Should be implemented by underlying classes.
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line463">line 463</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line472">line 472</a>
     </li></ul></dd>
     
 
@@ -2884,7 +2963,7 @@ If this type is from an external library you can add the library name to the obj
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line215">line 215</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line224">line 224</a>
     </li></ul></dd>
     
 
@@ -3313,7 +3392,7 @@ The object is set as children of this object and the transformations applied to
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line358">line 358</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line367">line 367</a>
     </li></ul></dd>
     
 
@@ -3406,7 +3485,7 @@ The object is set as children of this object and the transformations applied to
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line307">line 307</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line316">line 316</a>
     </li></ul></dd>
     
 
@@ -3548,7 +3627,7 @@ The object is set as children of this object and the transformations applied to
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line336">line 336</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line345">line 345</a>
     </li></ul></dd>
     
 
@@ -3735,7 +3814,7 @@ The object is set as children of this object and the transformations applied to
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line249">line 249</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line258">line 258</a>
     </li></ul></dd>
     
 
@@ -3903,7 +3982,7 @@ To check if a point in world coordinates intersects the object the inverseGlobal
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line411">line 411</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line420">line 420</a>
     </li></ul></dd>
     
 
@@ -4090,7 +4169,7 @@ To check if a point in world coordinates intersects the object the inverseGlobal
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line279">line 279</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line288">line 288</a>
     </li></ul></dd>
     
 
@@ -4329,7 +4408,7 @@ To detect when the object drag stops the onPointerDragEnd() method can be used.
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line490">line 490</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line499">line 499</a>
     </li></ul></dd>
     
 
@@ -4498,7 +4577,7 @@ Dont forget to register object types using the Object2D.register() method.
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line654">line 654</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line666">line 666</a>
     </li></ul></dd>
     
 
@@ -4640,7 +4719,7 @@ Dont forget to register object types using the Object2D.register() method.
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line379">line 379</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line388">line 388</a>
     </li></ul></dd>
     
 
@@ -4786,7 +4865,7 @@ Data has to be parsed back into a usable object.
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line602">line 602</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line611">line 611</a>
     </li></ul></dd>
     
 
@@ -4998,7 +5077,7 @@ This is called before style() and draw(). It can also be used for some pre-rende
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line447">line 447</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line456">line 456</a>
     </li></ul></dd>
     
 
@@ -5140,7 +5219,7 @@ This is called before style() and draw(). It can also be used for some pre-rende
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line320">line 320</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line329">line 329</a>
     </li></ul></dd>
     
 
@@ -5282,7 +5361,7 @@ This is called before style() and draw(). It can also be used for some pre-rende
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line421">line 421</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line430">line 430</a>
     </li></ul></dd>
     
 
@@ -5334,7 +5413,7 @@ This is called before style() and draw(). It can also be used for some pre-rende
 <br class="clear">
 
 <footer>
-    Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.4</a> on Mon May 18 2020 18:45:41 GMT+0100 (Western European Summer Time)
+    Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.4</a> on Tue May 19 2020 10:16:35 GMT+0100 (Western European Summer Time)
 </footer>
 
 <script> prettyPrint(); </script>

+ 1 - 1
docs/Renderer.html

@@ -842,7 +842,7 @@ Should be called at a fixed rate preferably using the requestAnimationFrame() me
 <br class="clear">
 
 <footer>
-    Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.4</a> on Mon May 18 2020 18:45:41 GMT+0100 (Western European Summer Time)
+    Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.4</a> on Tue May 19 2020 10:16:35 GMT+0100 (Western European Summer Time)
 </footer>
 
 <script> prettyPrint(); </script>

+ 1 - 1
docs/Renderer.js.html

@@ -362,7 +362,7 @@ export {Renderer};
 <br class="clear">
 
 <footer>
-    Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.4</a> on Mon May 18 2020 18:45:41 GMT+0100 (Western European Summer Time)
+    Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.4</a> on Tue May 19 2020 10:16:34 GMT+0100 (Western European Summer Time)
 </footer>
 
 <script> prettyPrint(); </script>

+ 108 - 29
docs/RoundedBox.html

@@ -505,7 +505,7 @@ Should be implemented by underlying classes.
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line474">line 474</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line483">line 483</a>
     </li></ul></dd>
     
 
@@ -1415,7 +1415,7 @@ The matrix is updated before rendering the object, after the matrix is updated t
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line516">line 516</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line525">line 525</a>
     </li></ul></dd>
     
 
@@ -1482,7 +1482,7 @@ The matrix is updated before rendering the object, after the matrix is updated t
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line582">line 582</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line591">line 591</a>
     </li></ul></dd>
     
 
@@ -1549,7 +1549,7 @@ The matrix is updated before rendering the object, after the matrix is updated t
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line566">line 566</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line575">line 575</a>
     </li></ul></dd>
     
 
@@ -1616,7 +1616,7 @@ The matrix is updated before rendering the object, after the matrix is updated t
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line590">line 590</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line599">line 599</a>
     </li></ul></dd>
     
 
@@ -1683,7 +1683,7 @@ The matrix is updated before rendering the object, after the matrix is updated t
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line574">line 574</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line583">line 583</a>
     </li></ul></dd>
     
 
@@ -1750,7 +1750,7 @@ The matrix is updated before rendering the object, after the matrix is updated t
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line509">line 509</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line518">line 518</a>
     </li></ul></dd>
     
 
@@ -1817,7 +1817,7 @@ The matrix is updated before rendering the object, after the matrix is updated t
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line501">line 501</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line510">line 510</a>
     </li></ul></dd>
     
 
@@ -1886,7 +1886,7 @@ It is not called while the pointer is inside of the object, just on the first ti
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line542">line 542</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line551">line 551</a>
     </li></ul></dd>
     
 
@@ -1953,7 +1953,7 @@ It is not called while the pointer is inside of the object, just on the first ti
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line550">line 550</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line559">line 559</a>
     </li></ul></dd>
     
 
@@ -2020,7 +2020,7 @@ It is not called while the pointer is inside of the object, just on the first ti
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line558">line 558</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line567">line 567</a>
     </li></ul></dd>
     
 
@@ -2087,7 +2087,7 @@ It is not called while the pointer is inside of the object, just on the first ti
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line523">line 523</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line532">line 532</a>
     </li></ul></dd>
     
 
@@ -2158,7 +2158,7 @@ This method is called for every object before rendering.
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line532">line 532</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line541">line 541</a>
     </li></ul></dd>
     
 
@@ -2951,6 +2951,85 @@ The world scale of the object is affected by the parent transform.
 
         
             
+<h4 class="name" id="serializable"><span class="type-signature"></span>serializable<span class="type-signature"> :boolean</span></h4>
+
+
+
+
+<div class="description">
+    Indicates if the object should be serialized or not as a child of another object.
+
+Used to prevent duplicate serialization data on custom objects. Should be set false for objects added on constructor.
+</div>
+
+
+
+    <h5>Type:</h5>
+    <ul>
+        <li>
+            
+<span class="param-type">boolean</span>
+
+
+        </li>
+    </ul>
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+    <dt class="inherited-from">Inherited From:</dt>
+    <dd class="inherited-from"><ul class="dummy"><li>
+        <a href="Object2D.html#serializable">Object2D#serializable</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line210">line 210</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+            
 <h4 class="name" id="strokeStyle"><span class="type-signature"></span>strokeStyle<span class="type-signature"></span></h4>
 
 
@@ -3073,7 +3152,7 @@ Should be implemented by underlying classes.
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line463">line 463</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line472">line 472</a>
     </li></ul></dd>
     
 
@@ -3154,7 +3233,7 @@ If this type is from an external library you can add the library name to the obj
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line215">line 215</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line224">line 224</a>
     </li></ul></dd>
     
 
@@ -3696,7 +3775,7 @@ The object is set as children of this object and the transformations applied to
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line358">line 358</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line367">line 367</a>
     </li></ul></dd>
     
 
@@ -3789,7 +3868,7 @@ The object is set as children of this object and the transformations applied to
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line307">line 307</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line316">line 316</a>
     </li></ul></dd>
     
 
@@ -3931,7 +4010,7 @@ The object is set as children of this object and the transformations applied to
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line336">line 336</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line345">line 345</a>
     </li></ul></dd>
     
 
@@ -4118,7 +4197,7 @@ The object is set as children of this object and the transformations applied to
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line249">line 249</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line258">line 258</a>
     </li></ul></dd>
     
 
@@ -4286,7 +4365,7 @@ To check if a point in world coordinates intersects the object the inverseGlobal
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line411">line 411</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line420">line 420</a>
     </li></ul></dd>
     
 
@@ -4473,7 +4552,7 @@ To check if a point in world coordinates intersects the object the inverseGlobal
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line279">line 279</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line288">line 288</a>
     </li></ul></dd>
     
 
@@ -4712,7 +4791,7 @@ To detect when the object drag stops the onPointerDragEnd() method can be used.
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line490">line 490</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line499">line 499</a>
     </li></ul></dd>
     
 
@@ -4881,7 +4960,7 @@ Dont forget to register object types using the Object2D.register() method.
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line654">line 654</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line666">line 666</a>
     </li></ul></dd>
     
 
@@ -5023,7 +5102,7 @@ Dont forget to register object types using the Object2D.register() method.
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line379">line 379</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line388">line 388</a>
     </li></ul></dd>
     
 
@@ -5169,7 +5248,7 @@ Data has to be parsed back into a usable object.
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line602">line 602</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line611">line 611</a>
     </li></ul></dd>
     
 
@@ -5381,7 +5460,7 @@ This is called before style() and draw(). It can also be used for some pre-rende
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line447">line 447</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line456">line 456</a>
     </li></ul></dd>
     
 
@@ -5523,7 +5602,7 @@ This is called before style() and draw(). It can also be used for some pre-rende
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line320">line 320</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line329">line 329</a>
     </li></ul></dd>
     
 
@@ -5665,7 +5744,7 @@ This is called before style() and draw(). It can also be used for some pre-rende
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line421">line 421</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line430">line 430</a>
     </li></ul></dd>
     
 
@@ -5717,7 +5796,7 @@ This is called before style() and draw(). It can also be used for some pre-rende
 <br class="clear">
 
 <footer>
-    Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.4</a> on Mon May 18 2020 18:45:41 GMT+0100 (Western European Summer Time)
+    Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.4</a> on Tue May 19 2020 10:16:35 GMT+0100 (Western European Summer Time)
 </footer>
 
 <script> prettyPrint(); </script>

+ 108 - 29
docs/Text.html

@@ -440,7 +440,7 @@ Should be implemented by underlying classes.
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line474">line 474</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line483">line 483</a>
     </li></ul></dd>
     
 
@@ -1430,7 +1430,7 @@ The matrix is updated before rendering the object, after the matrix is updated t
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line516">line 516</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line525">line 525</a>
     </li></ul></dd>
     
 
@@ -1497,7 +1497,7 @@ The matrix is updated before rendering the object, after the matrix is updated t
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line582">line 582</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line591">line 591</a>
     </li></ul></dd>
     
 
@@ -1564,7 +1564,7 @@ The matrix is updated before rendering the object, after the matrix is updated t
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line566">line 566</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line575">line 575</a>
     </li></ul></dd>
     
 
@@ -1631,7 +1631,7 @@ The matrix is updated before rendering the object, after the matrix is updated t
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line590">line 590</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line599">line 599</a>
     </li></ul></dd>
     
 
@@ -1698,7 +1698,7 @@ The matrix is updated before rendering the object, after the matrix is updated t
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line574">line 574</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line583">line 583</a>
     </li></ul></dd>
     
 
@@ -1765,7 +1765,7 @@ The matrix is updated before rendering the object, after the matrix is updated t
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line509">line 509</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line518">line 518</a>
     </li></ul></dd>
     
 
@@ -1832,7 +1832,7 @@ The matrix is updated before rendering the object, after the matrix is updated t
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line501">line 501</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line510">line 510</a>
     </li></ul></dd>
     
 
@@ -1901,7 +1901,7 @@ It is not called while the pointer is inside of the object, just on the first ti
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line542">line 542</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line551">line 551</a>
     </li></ul></dd>
     
 
@@ -1968,7 +1968,7 @@ It is not called while the pointer is inside of the object, just on the first ti
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line550">line 550</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line559">line 559</a>
     </li></ul></dd>
     
 
@@ -2035,7 +2035,7 @@ It is not called while the pointer is inside of the object, just on the first ti
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line558">line 558</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line567">line 567</a>
     </li></ul></dd>
     
 
@@ -2102,7 +2102,7 @@ It is not called while the pointer is inside of the object, just on the first ti
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line523">line 523</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line532">line 532</a>
     </li></ul></dd>
     
 
@@ -2173,7 +2173,7 @@ This method is called for every object before rendering.
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line532">line 532</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line541">line 541</a>
     </li></ul></dd>
     
 
@@ -2894,6 +2894,85 @@ The world scale of the object is affected by the parent transform.
 
         
             
+<h4 class="name" id="serializable"><span class="type-signature"></span>serializable<span class="type-signature"> :boolean</span></h4>
+
+
+
+
+<div class="description">
+    Indicates if the object should be serialized or not as a child of another object.
+
+Used to prevent duplicate serialization data on custom objects. Should be set false for objects added on constructor.
+</div>
+
+
+
+    <h5>Type:</h5>
+    <ul>
+        <li>
+            
+<span class="param-type">boolean</span>
+
+
+        </li>
+    </ul>
+
+
+
+
+
+<dl class="details">
+
+    
+
+    
+
+    
+    <dt class="inherited-from">Inherited From:</dt>
+    <dd class="inherited-from"><ul class="dummy"><li>
+        <a href="Object2D.html#serializable">Object2D#serializable</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+
+    
+    <dt class="tag-source">Source:</dt>
+    <dd class="tag-source"><ul class="dummy"><li>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line210">line 210</a>
+    </li></ul></dd>
+    
+
+    
+
+    
+
+    
+</dl>
+
+
+
+
+
+
+        
+            
 <h4 class="name" id="strokeStyle"><span class="type-signature"></span>strokeStyle<span class="type-signature"> :string</span></h4>
 
 
@@ -3019,7 +3098,7 @@ Should be implemented by underlying classes.
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line463">line 463</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line472">line 472</a>
     </li></ul></dd>
     
 
@@ -3320,7 +3399,7 @@ If this type is from an external library you can add the library name to the obj
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line215">line 215</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line224">line 224</a>
     </li></ul></dd>
     
 
@@ -3610,7 +3689,7 @@ The object is set as children of this object and the transformations applied to
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line358">line 358</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line367">line 367</a>
     </li></ul></dd>
     
 
@@ -3703,7 +3782,7 @@ The object is set as children of this object and the transformations applied to
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line307">line 307</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line316">line 316</a>
     </li></ul></dd>
     
 
@@ -3845,7 +3924,7 @@ The object is set as children of this object and the transformations applied to
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line336">line 336</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line345">line 345</a>
     </li></ul></dd>
     
 
@@ -4032,7 +4111,7 @@ The object is set as children of this object and the transformations applied to
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line249">line 249</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line258">line 258</a>
     </li></ul></dd>
     
 
@@ -4200,7 +4279,7 @@ To check if a point in world coordinates intersects the object the inverseGlobal
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line411">line 411</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line420">line 420</a>
     </li></ul></dd>
     
 
@@ -4387,7 +4466,7 @@ To check if a point in world coordinates intersects the object the inverseGlobal
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line279">line 279</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line288">line 288</a>
     </li></ul></dd>
     
 
@@ -4626,7 +4705,7 @@ To detect when the object drag stops the onPointerDragEnd() method can be used.
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line490">line 490</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line499">line 499</a>
     </li></ul></dd>
     
 
@@ -4795,7 +4874,7 @@ Dont forget to register object types using the Object2D.register() method.
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line654">line 654</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line666">line 666</a>
     </li></ul></dd>
     
 
@@ -4937,7 +5016,7 @@ Dont forget to register object types using the Object2D.register() method.
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line379">line 379</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line388">line 388</a>
     </li></ul></dd>
     
 
@@ -5083,7 +5162,7 @@ Data has to be parsed back into a usable object.
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line602">line 602</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line611">line 611</a>
     </li></ul></dd>
     
 
@@ -5295,7 +5374,7 @@ This is called before style() and draw(). It can also be used for some pre-rende
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line447">line 447</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line456">line 456</a>
     </li></ul></dd>
     
 
@@ -5437,7 +5516,7 @@ This is called before style() and draw(). It can also be used for some pre-rende
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line320">line 320</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line329">line 329</a>
     </li></ul></dd>
     
 
@@ -5579,7 +5658,7 @@ This is called before style() and draw(). It can also be used for some pre-rende
     
     <dt class="tag-source">Source:</dt>
     <dd class="tag-source"><ul class="dummy"><li>
-        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line421">line 421</a>
+        <a href="Object2D.js.html">Object2D.js</a>, <a href="Object2D.js.html#line430">line 430</a>
     </li></ul></dd>
     
 
@@ -5631,7 +5710,7 @@ This is called before style() and draw(). It can also be used for some pre-rende
 <br class="clear">
 
 <footer>
-    Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.4</a> on Mon May 18 2020 18:45:41 GMT+0100 (Western European Summer Time)
+    Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.4</a> on Tue May 19 2020 10:16:35 GMT+0100 (Western European Summer Time)
 </footer>
 
 <script> prettyPrint(); </script>

+ 1 - 1
docs/UUID.html

@@ -227,7 +227,7 @@
 <br class="clear">
 
 <footer>
-    Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.4</a> on Mon May 18 2020 18:45:41 GMT+0100 (Western European Summer Time)
+    Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.4</a> on Tue May 19 2020 10:16:35 GMT+0100 (Western European Summer Time)
 </footer>
 
 <script> prettyPrint(); </script>

+ 1 - 1
docs/Vector2.html

@@ -4578,7 +4578,7 @@ Values stored as [x, y].
 <br class="clear">
 
 <footer>
-    Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.4</a> on Mon May 18 2020 18:45:41 GMT+0100 (Western European Summer Time)
+    Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.4</a> on Tue May 19 2020 10:16:35 GMT+0100 (Western European Summer Time)
 </footer>
 
 <script> prettyPrint(); </script>

+ 1 - 1
docs/Viewport.html

@@ -1096,7 +1096,7 @@ Also updates the inverse matrix of the viewport.
 <br class="clear">
 
 <footer>
-    Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.4</a> on Mon May 18 2020 18:45:41 GMT+0100 (Western European Summer Time)
+    Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.4</a> on Tue May 19 2020 10:16:35 GMT+0100 (Western European Summer Time)
 </footer>
 
 <script> prettyPrint(); </script>

+ 1 - 1
docs/Viewport.js.html

@@ -159,7 +159,7 @@ export {Viewport};
 <br class="clear">
 
 <footer>
-    Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.4</a> on Mon May 18 2020 18:45:41 GMT+0100 (Western European Summer Time)
+    Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.4</a> on Tue May 19 2020 10:16:34 GMT+0100 (Western European Summer Time)
 </footer>
 
 <script> prettyPrint(); </script>

+ 1 - 1
docs/ViewportControls.html

@@ -801,7 +801,7 @@ Should be called every frame before rendering.
 <br class="clear">
 
 <footer>
-    Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.4</a> on Mon May 18 2020 18:45:41 GMT+0100 (Western European Summer Time)
+    Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.4</a> on Tue May 19 2020 10:16:35 GMT+0100 (Western European Summer Time)
 </footer>
 
 <script> prettyPrint(); </script>

+ 1 - 1
docs/controls_ViewportControls.js.html

@@ -168,7 +168,7 @@ export {ViewportControls};
 <br class="clear">
 
 <footer>
-    Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.4</a> on Mon May 18 2020 18:45:41 GMT+0100 (Western European Summer Time)
+    Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.4</a> on Tue May 19 2020 10:16:34 GMT+0100 (Western European Summer Time)
 </footer>
 
 <script> prettyPrint(); </script>

+ 1 - 1
docs/global.html

@@ -280,7 +280,7 @@
 <br class="clear">
 
 <footer>
-    Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.4</a> on Mon May 18 2020 18:45:41 GMT+0100 (Western European Summer Time)
+    Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.4</a> on Tue May 19 2020 10:16:34 GMT+0100 (Western European Summer Time)
 </footer>
 
 <script> prettyPrint(); </script>

+ 1 - 1
docs/index.html

@@ -56,7 +56,7 @@
 <br class="clear">
 
 <footer>
-    Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.4</a> on Mon May 18 2020 18:45:41 GMT+0100 (Western European Summer Time)
+    Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.4</a> on Tue May 19 2020 10:16:34 GMT+0100 (Western European Summer Time)
 </footer>
 
 <script> prettyPrint(); </script>

+ 1 - 1
docs/input_Key.js.html

@@ -123,7 +123,7 @@ export {Key};
 <br class="clear">
 
 <footer>
-    Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.4</a> on Mon May 18 2020 18:45:41 GMT+0100 (Western European Summer Time)
+    Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.4</a> on Tue May 19 2020 10:16:34 GMT+0100 (Western European Summer Time)
 </footer>
 
 <script> prettyPrint(); </script>

+ 1 - 1
docs/input_Pointer.js.html

@@ -446,7 +446,7 @@ export {Pointer};
 <br class="clear">
 
 <footer>
-    Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.4</a> on Mon May 18 2020 18:45:41 GMT+0100 (Western European Summer Time)
+    Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.4</a> on Tue May 19 2020 10:16:34 GMT+0100 (Western European Summer Time)
 </footer>
 
 <script> prettyPrint(); </script>

+ 1 - 1
docs/math_Box2.js.html

@@ -335,7 +335,7 @@ export {Box2};
 <br class="clear">
 
 <footer>
-    Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.4</a> on Mon May 18 2020 18:45:41 GMT+0100 (Western European Summer Time)
+    Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.4</a> on Tue May 19 2020 10:16:34 GMT+0100 (Western European Summer Time)
 </footer>
 
 <script> prettyPrint(); </script>

+ 1 - 1
docs/math_Matrix.js.html

@@ -322,7 +322,7 @@ export {Matrix};
 <br class="clear">
 
 <footer>
-    Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.4</a> on Mon May 18 2020 18:45:41 GMT+0100 (Western European Summer Time)
+    Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.4</a> on Tue May 19 2020 10:16:34 GMT+0100 (Western European Summer Time)
 </footer>
 
 <script> prettyPrint(); </script>

+ 1 - 1
docs/math_UUID.js.html

@@ -80,7 +80,7 @@ export {UUID};
 <br class="clear">
 
 <footer>
-    Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.4</a> on Mon May 18 2020 18:45:41 GMT+0100 (Western European Summer Time)
+    Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.4</a> on Tue May 19 2020 10:16:34 GMT+0100 (Western European Summer Time)
 </footer>
 
 <script> prettyPrint(); </script>

+ 1 - 1
docs/math_Vector2.js.html

@@ -475,7 +475,7 @@ export {Vector2};
 <br class="clear">
 
 <footer>
-    Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.4</a> on Mon May 18 2020 18:45:41 GMT+0100 (Western European Summer Time)
+    Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.4</a> on Tue May 19 2020 10:16:34 GMT+0100 (Western European Summer Time)
 </footer>
 
 <script> prettyPrint(); </script>

+ 1 - 1
docs/objects_BezierCurve.js.html

@@ -147,7 +147,7 @@ export {BezierCurve};
 <br class="clear">
 
 <footer>
-    Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.4</a> on Mon May 18 2020 18:45:41 GMT+0100 (Western European Summer Time)
+    Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.4</a> on Tue May 19 2020 10:16:34 GMT+0100 (Western European Summer Time)
 </footer>
 
 <script> prettyPrint(); </script>

+ 1 - 1
docs/objects_Box.js.html

@@ -145,7 +145,7 @@ export {Box};
 <br class="clear">
 
 <footer>
-    Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.4</a> on Mon May 18 2020 18:45:41 GMT+0100 (Western European Summer Time)
+    Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.4</a> on Tue May 19 2020 10:16:34 GMT+0100 (Western European Summer Time)
 </footer>
 
 <script> prettyPrint(); </script>

+ 1 - 1
docs/objects_Circle.js.html

@@ -143,7 +143,7 @@ export {Circle};
 <br class="clear">
 
 <footer>
-    Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.4</a> on Mon May 18 2020 18:45:41 GMT+0100 (Western European Summer Time)
+    Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.4</a> on Tue May 19 2020 10:16:34 GMT+0100 (Western European Summer Time)
 </footer>
 
 <script> prettyPrint(); </script>

+ 1 - 1
docs/objects_DOM.js.html

@@ -169,7 +169,7 @@ export {DOM};
 <br class="clear">
 
 <footer>
-    Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.4</a> on Mon May 18 2020 18:45:41 GMT+0100 (Western European Summer Time)
+    Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.4</a> on Tue May 19 2020 10:16:34 GMT+0100 (Western European Summer Time)
 </footer>
 
 <script> prettyPrint(); </script>

+ 1 - 1
docs/objects_Graph.js.html

@@ -172,7 +172,7 @@ export {Graph};
 <br class="clear">
 
 <footer>
-    Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.4</a> on Mon May 18 2020 18:45:41 GMT+0100 (Western European Summer Time)
+    Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.4</a> on Tue May 19 2020 10:16:34 GMT+0100 (Western European Summer Time)
 </footer>
 
 <script> prettyPrint(); </script>

+ 1 - 1
docs/objects_Image.js.html

@@ -128,7 +128,7 @@ export {Image};
 <br class="clear">
 
 <footer>
-    Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.4</a> on Mon May 18 2020 18:45:41 GMT+0100 (Western European Summer Time)
+    Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.4</a> on Tue May 19 2020 10:16:34 GMT+0100 (Western European Summer Time)
 </footer>
 
 <script> prettyPrint(); </script>

+ 1 - 1
docs/objects_Line.js.html

@@ -146,7 +146,7 @@ export {Line};
 <br class="clear">
 
 <footer>
-    Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.4</a> on Mon May 18 2020 18:45:41 GMT+0100 (Western European Summer Time)
+    Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.4</a> on Tue May 19 2020 10:16:34 GMT+0100 (Western European Summer Time)
 </footer>
 
 <script> prettyPrint(); </script>

+ 1 - 1
docs/objects_MultiLineText.js.html

@@ -161,7 +161,7 @@ export {MultiLineText};
 <br class="clear">
 
 <footer>
-    Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.4</a> on Mon May 18 2020 18:45:41 GMT+0100 (Western European Summer Time)
+    Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.4</a> on Tue May 19 2020 10:16:34 GMT+0100 (Western European Summer Time)
 </footer>
 
 <script> prettyPrint(); </script>

+ 1 - 1
docs/objects_Pattern.js.html

@@ -155,7 +155,7 @@ export {Pattern};
 <br class="clear">
 
 <footer>
-    Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.4</a> on Mon May 18 2020 18:45:41 GMT+0100 (Western European Summer Time)
+    Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.4</a> on Tue May 19 2020 10:16:34 GMT+0100 (Western European Summer Time)
 </footer>
 
 <script> prettyPrint(); </script>

+ 1 - 1
docs/objects_QuadraticCurve.js.html

@@ -130,7 +130,7 @@ export {QuadraticCurve};
 <br class="clear">
 
 <footer>
-    Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.4</a> on Mon May 18 2020 18:45:41 GMT+0100 (Western European Summer Time)
+    Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.4</a> on Tue May 19 2020 10:16:34 GMT+0100 (Western European Summer Time)
 </footer>
 
 <script> prettyPrint(); </script>

+ 1 - 1
docs/objects_RoundedBox.js.html

@@ -131,7 +131,7 @@ export {RoundedBox};
 <br class="clear">
 
 <footer>
-    Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.4</a> on Mon May 18 2020 18:45:41 GMT+0100 (Western European Summer Time)
+    Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.4</a> on Tue May 19 2020 10:16:34 GMT+0100 (Western European Summer Time)
 </footer>
 
 <script> prettyPrint(); </script>

+ 1 - 1
docs/objects_Text.js.html

@@ -163,7 +163,7 @@ export {Text};
 <br class="clear">
 
 <footer>
-    Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.4</a> on Mon May 18 2020 18:45:41 GMT+0100 (Western European Summer Time)
+    Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.4</a> on Tue May 19 2020 10:16:34 GMT+0100 (Western European Summer Time)
 </footer>
 
 <script> prettyPrint(); </script>

+ 1 - 1
docs/objects_mask_BoxMask.js.html

@@ -107,7 +107,7 @@ export {BoxMask};
 <br class="clear">
 
 <footer>
-    Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.4</a> on Mon May 18 2020 18:45:41 GMT+0100 (Western European Summer Time)
+    Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.4</a> on Tue May 19 2020 10:16:34 GMT+0100 (Western European Summer Time)
 </footer>
 
 <script> prettyPrint(); </script>

+ 1 - 1
docs/objects_mask_Mask.js.html

@@ -81,7 +81,7 @@ export {Mask};
 <br class="clear">
 
 <footer>
-    Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.4</a> on Mon May 18 2020 18:45:41 GMT+0100 (Western European Summer Time)
+    Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.4</a> on Tue May 19 2020 10:16:34 GMT+0100 (Western European Summer Time)
 </footer>
 
 <script> prettyPrint(); </script>

+ 1 - 1
docs/objects_node_Node.js.html

@@ -230,7 +230,7 @@ export {Node};
 <br class="clear">
 
 <footer>
-    Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.4</a> on Mon May 18 2020 18:45:41 GMT+0100 (Western European Summer Time)
+    Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.4</a> on Tue May 19 2020 10:16:34 GMT+0100 (Western European Summer Time)
 </footer>
 
 <script> prettyPrint(); </script>

+ 1 - 1
docs/objects_node_NodeConnector.js.html

@@ -162,7 +162,7 @@ export {NodeConnector};
 <br class="clear">
 
 <footer>
-    Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.4</a> on Mon May 18 2020 18:45:41 GMT+0100 (Western European Summer Time)
+    Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.4</a> on Tue May 19 2020 10:16:34 GMT+0100 (Western European Summer Time)
 </footer>
 
 <script> prettyPrint(); </script>

+ 1 - 1
docs/objects_node_NodeGraph.js.html

@@ -102,7 +102,7 @@ export {NodeGraph};
 <br class="clear">
 
 <footer>
-    Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.4</a> on Mon May 18 2020 18:45:41 GMT+0100 (Western European Summer Time)
+    Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.4</a> on Tue May 19 2020 10:16:34 GMT+0100 (Western European Summer Time)
 </footer>
 
 <script> prettyPrint(); </script>

+ 1 - 1
docs/objects_node_NodeSocket.js.html

@@ -404,7 +404,7 @@ export {NodeSocket};
 <br class="clear">
 
 <footer>
-    Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.4</a> on Mon May 18 2020 18:45:41 GMT+0100 (Western European Summer Time)
+    Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.4</a> on Tue May 19 2020 10:16:34 GMT+0100 (Western European Summer Time)
 </footer>
 
 <script> prettyPrint(); </script>

+ 1 - 1
docs/utils_FileUtils.js.html

@@ -137,7 +137,7 @@ export {FileUtils};
 <br class="clear">
 
 <footer>
-    Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.4</a> on Mon May 18 2020 18:45:41 GMT+0100 (Western European Summer Time)
+    Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.4</a> on Tue May 19 2020 10:16:34 GMT+0100 (Western European Summer Time)
 </footer>
 
 <script> prettyPrint(); </script>

+ 1 - 1
docs/utils_Helpers.js.html

@@ -154,7 +154,7 @@ export {Helpers};
 <br class="clear">
 
 <footer>
-    Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.4</a> on Mon May 18 2020 18:45:41 GMT+0100 (Western European Summer Time)
+    Documentation generated by <a href="https://github.com/jsdoc/jsdoc">JSDoc 3.6.4</a> on Tue May 19 2020 10:16:34 GMT+0100 (Western European Summer Time)
 </footer>
 
 <script> prettyPrint(); </script>

+ 4 - 0
examples/node.html

@@ -91,6 +91,7 @@
 				this.box.set(new Escher.Vector2(-50, -40), new Escher.Vector2(50, 40));
 
 				this.text = new Escher.Text();
+				this.text.serializable = false;
 				this.text.text = operation;
 				this.text.font = "25px Arial";
 				this.text.layer = 2;
@@ -120,6 +121,7 @@
 			{
 				super.parse(data, root);
 				this.operation = data.operation;
+				this.text.text = data.operation;
 			}
 		}
 
@@ -136,6 +138,7 @@
 				this.box.set(new Escher.Vector2(-50, -30), new Escher.Vector2(50, 30));
 
 				this.div = new Escher.DOM("input");
+				this.div.serializable = false;
 				this.div.size.set(70, 20);
 				this.div.origin.set(35, 10);
 				this.div.element.style.pointerEvents = "auto";
@@ -183,6 +186,7 @@
 				this.box.set(new Escher.Vector2(-100, -20), new Escher.Vector2(100, 20));
 
 				this.text = new Escher.Text();
+				this.text.serializable = false;
 				this.text.text = "";
 				this.text.font = "12px Arial";
 				this.text.layer = 2;

+ 1 - 1
package.json

@@ -1,6 +1,6 @@
 {
 	"name": "escher.js",
-	"version": "0.1.10",
+	"version": "0.1.11",
 	"description": "escher.js is a web library for building interactive diagrams and graphs.",
 	"main": "build/escher.min.js",
 	"repository": {

+ 6 - 4
source/Object2D.js

@@ -203,12 +203,11 @@ function Object2D()
 	/**
 	 * Indicates if the object should be serialized or not as a child of another object.
 	 *
-	 * Used to prevent duplicate serialization data on custom objects.
+	 * Used to prevent duplicate serialization data on custom objects. Should be set false for objects added on constructor.
 	 *
 	 * @type {boolean}
 	 */
-	// TODO <ADD CODE HERE>
-	this.serializable = false;
+	this.serializable = true;
 }
 
 Object2D.prototype.constructor = Object2D;
@@ -639,7 +638,10 @@ Object2D.prototype.serialize = function(recursive)
 	{
 		for(var i = 0; i < this.children.length; i++)
 		{
-			data.children.push(this.children[i].serialize());
+			if(this.children[i].serializable)
+			{
+				data.children.push(this.children[i].serialize());
+			}
 		}
 	}
 

Some files were not shown because too many files changed in this diff