aboutsummaryrefslogtreecommitdiff
path: root/js/lib
diff options
context:
space:
mode:
authorEric Guzman2012-04-02 15:36:08 -0700
committerEric Guzman2012-04-02 15:36:08 -0700
commit0241bf331b7e06e206a54be441edf2f4c7261f63 (patch)
treeb7e2f9cad73eed4fc616cf1841cd0be02bd955d4 /js/lib
parentdde5b5054f93db493e5d4d502e677f5781334b08 (diff)
parentc6de22bf42be90b403491b5f87b1818d9020310c (diff)
downloadninja-0241bf331b7e06e206a54be441edf2f4c7261f63.tar.gz
Merge branch 'refs/heads/master' into CSSPanelUpdates
Diffstat (limited to 'js/lib')
-rwxr-xr-xjs/lib/NJUtils.js32
-rwxr-xr-xjs/lib/drawing/world.js170
-rwxr-xr-xjs/lib/geom/brush-stroke.js638
-rwxr-xr-xjs/lib/geom/circle.js54
-rwxr-xr-xjs/lib/geom/geom-obj.js157
-rwxr-xr-xjs/lib/geom/line.js44
-rwxr-xr-xjs/lib/geom/rectangle.js67
-rwxr-xr-xjs/lib/geom/sub-path.js18
-rwxr-xr-xjs/lib/rdge/materials/bump-metal-material.js40
-rw-r--r--js/lib/rdge/materials/cloud-material.js300
-rwxr-xr-xjs/lib/rdge/materials/flat-material.js21
-rw-r--r--js/lib/rdge/materials/julia-material.js6
-rwxr-xr-xjs/lib/rdge/materials/linear-gradient-material.js53
-rw-r--r--js/lib/rdge/materials/mandel-material.js6
-rw-r--r--js/lib/rdge/materials/plasma-material.js18
-rw-r--r--js/lib/rdge/materials/pulse-material.js44
-rw-r--r--js/lib/rdge/materials/radial-blur-material.js73
-rwxr-xr-xjs/lib/rdge/materials/radial-gradient-material.js54
-rw-r--r--js/lib/rdge/materials/taper-material.js27
-rw-r--r--js/lib/rdge/materials/twist-vert-material.js28
-rwxr-xr-xjs/lib/rdge/materials/uber-material.js180
-rw-r--r--js/lib/rdge/materials/water-material.js103
22 files changed, 1831 insertions, 302 deletions
diff --git a/js/lib/NJUtils.js b/js/lib/NJUtils.js
index 4c181ab8..96e1d6da 100755
--- a/js/lib/NJUtils.js
+++ b/js/lib/NJUtils.js
@@ -98,15 +98,45 @@ exports.NJUtils = Object.create(Object.prototype, {
98 value: function(el, selection, controller, isShape) { 98 value: function(el, selection, controller, isShape) {
99 var p3d = Montage.create(Properties3D).init(el); 99 var p3d = Montage.create(Properties3D).init(el);
100 var shapeProps = null; 100 var shapeProps = null;
101 var pi = controller + "Pi";
102
101 if(isShape) { 103 if(isShape) {
102 shapeProps = Montage.create(ShapeModel); 104 shapeProps = Montage.create(ShapeModel);
103 } 105 }
104 106
107 if(el.controller) {
108
109 var componentInfo = Montage.getInfoForObject(el.controller);
110 var componentName = componentInfo.objectName.toLowerCase();
111
112 controller = "component";
113 isShape = false;
114
115 switch(componentName) {
116 case "feedreader":
117 selection = "Feed Reader";
118 pi = "FeedReaderPi";
119 break;
120 case "map":
121 selection = "Map";
122 pi = "MapPi";
123 break;
124 case "youtubechannel":
125 selection = "Youtube Channel";
126 pi = "YoutubeChannelPi";
127 break;
128 case "picasacarousel":
129 selection = "Picasa Carousel";
130 pi = "PicasaCarouselPi";
131 break;
132 }
133 }
134
105 el.elementModel = Montage.create(ElementModel, { 135 el.elementModel = Montage.create(ElementModel, {
106 type: { value: el.nodeName}, 136 type: { value: el.nodeName},
107 selection: { value: selection}, 137 selection: { value: selection},
108 controller: { value: ControllerFactory.getController(controller)}, 138 controller: { value: ControllerFactory.getController(controller)},
109 pi: { value: controller + "Pi"}, 139 pi: { value: pi},
110 props3D: { value: p3d}, 140 props3D: { value: p3d},
111 shapeModel: { value: shapeProps} 141 shapeModel: { value: shapeProps}
112 }); 142 });
diff --git a/js/lib/drawing/world.js b/js/lib/drawing/world.js
index 049145ce..5a054224 100755
--- a/js/lib/drawing/world.js
+++ b/js/lib/drawing/world.js
@@ -117,6 +117,8 @@ var World = function GLWorld( canvas, use3D, preserveDrawingBuffer ) {
117 117
118 this.getRenderer = function() { return this.renderer; }; 118 this.getRenderer = function() { return this.renderer; };
119 119
120 // Flag to play/pause animation at authortime
121 this._previewAnimation = true;
120 //////////////////////////////////////////////////////////////////////////////////// 122 ////////////////////////////////////////////////////////////////////////////////////
121 // RDGE 123 // RDGE
122 // local variables 124 // local variables
@@ -236,7 +238,7 @@ var World = function GLWorld( canvas, use3D, preserveDrawingBuffer ) {
236 if (this._canvas.task) { 238 if (this._canvas.task) {
237 this._firstRender = false; 239 this._firstRender = false;
238 240
239 if (!this.hasAnimatedMaterials()) { 241 if (!this.hasAnimatedMaterials() || !this._previewAnimation) {
240 this._canvas.task.stop(); 242 this._canvas.task.stop();
241 //this._renderCount = 10; 243 //this._renderCount = 10;
242 } 244 }
@@ -363,6 +365,7 @@ var World = function GLWorld( canvas, use3D, preserveDrawingBuffer ) {
363 if (this._useWebGL) { 365 if (this._useWebGL) {
364 rdgeStarted = true; 366 rdgeStarted = true;
365 this._canvas.rdgeid = this._canvas.getAttribute( "data-RDGE-id" ); 367 this._canvas.rdgeid = this._canvas.getAttribute( "data-RDGE-id" );
368 g_Engine.unregisterCanvas( this._canvas )
366 g_Engine.registerCanvas(this._canvas, this); 369 g_Engine.registerCanvas(this._canvas, this);
367 RDGEStart( this._canvas ); 370 RDGEStart( this._canvas );
368 this._canvas.task.stop() 371 this._canvas.task.stop()
@@ -729,6 +732,85 @@ World.prototype.getShapeFromPoint = function( offsetX, offsetY ) {
729 } 732 }
730}; 733};
731 734
735
736
737World.prototype.exportJSON = function()
738{
739 // world properties
740 var worldObj =
741 {
742 'version' : 1.1,
743 'id' : this.getCanvas().getAttribute( "data-RDGE-id" ),
744 'fov' : this._fov,
745 'zNear' : this._zNear,
746 'zFar' : this._zFar,
747 'viewDist' : this._viewDist,
748 'webGL' : this._useWebGL
749 };
750
751 // RDGE scenegraph
752 if (this._useWebGL)
753 worldObj.scenedata = this.myScene.exportJSON();
754
755 // object data
756 var strArray = [];
757 this.exportObjectsJSON( this._geomRoot, worldObj );
758
759 // You would think that the RDGE export function
760 // would not be destructive of the data. You would be wrong...
761 // We need to rebuild everything
762 if (this._useWebGL)
763 {
764 if (worldObj.children && (worldObj.children.length === 1))
765 {
766 this.rebuildTree(this._geomRoot);
767 this.restartRenderLoop();
768 }
769 }
770
771 // convert the object to a string
772 var jStr = JSON.stringify( worldObj );
773
774 // prepend some version information to the string.
775 // this string is also used to differentiate between JSON
776 // and pre-JSON versions of fileIO.
777 // the ending ';' in the version string is necessary
778 jStr = "v1.0;" + jStr;
779
780 return jStr;
781}
782
783World.prototype.rebuildTree = function( obj )
784{
785 if (!obj) return;
786
787 obj.buildBuffers();
788
789 if (obj.getChild()) {
790 this.rebuildTree( obj.getChild () );
791 }
792
793 if (obj.getNext())
794 this.rebuildTree( obj.getNext() );
795}
796
797World.prototype.exportObjectsJSON = function( obj, parentObj )
798{
799 if (!obj) return;
800
801 var jObj = obj.exportJSON();
802 if (!parentObj.children) parentObj.children = [];
803 parentObj.children.push( jObj );
804
805 if (obj.getChild()) {
806 this.exportObjectsJSON( obj.getChild (), jObj );
807 }
808
809 if (obj.getNext())
810 this.exportObjectsJSON( obj.getNext(), parentObj );
811}
812
813/*
732World.prototype.export = function() 814World.prototype.export = function()
733{ 815{
734 var exportStr = "GLWorld 1.0\n"; 816 var exportStr = "GLWorld 1.0\n";
@@ -791,6 +873,7 @@ World.prototype.exportObjects = function( obj ) {
791 873
792 return rtnStr; 874 return rtnStr;
793}; 875};
876*/
794 877
795World.prototype.findTransformNodeByMaterial = function( materialNode, trNode ) { 878World.prototype.findTransformNodeByMaterial = function( materialNode, trNode ) {
796 //if (trNode == null) trNode = this._ctrNode; 879 //if (trNode == null) trNode = this._ctrNode;
@@ -810,6 +893,91 @@ World.prototype.findTransformNodeByMaterial = function( materialNode, trNode )
810 return rtnNode; 893 return rtnNode;
811}; 894};
812 895
896World.prototype.importJSON = function( jObj )
897{
898 if (jObj.webGL)
899 {
900 // start RDGE
901 rdgeStarted = true;
902 var id = this._canvas.getAttribute( "data-RDGE-id" );
903 this._canvas.rdgeid = id;
904 g_Engine.registerCanvas(this._canvas, this);