aboutsummaryrefslogtreecommitdiff
path: root/js/helper-classes/RDGE/GLRectangle.js
diff options
context:
space:
mode:
Diffstat (limited to 'js/helper-classes/RDGE/GLRectangle.js')
-rwxr-xr-x[-rw-r--r--]js/helper-classes/RDGE/GLRectangle.js69
1 files changed, 59 insertions, 10 deletions
diff --git a/js/helper-classes/RDGE/GLRectangle.js b/js/helper-classes/RDGE/GLRectangle.js
index 2899e476..5b6ff94f 100644..100755
--- a/js/helper-classes/RDGE/GLRectangle.js
+++ b/js/helper-classes/RDGE/GLRectangle.js
@@ -180,7 +180,7 @@ function GLRectangle()
180 this._strokeStyle = Number( this.getPropertyFromString( "strokeStyle: ", importStr ) ); 180 this._strokeStyle = Number( this.getPropertyFromString( "strokeStyle: ", importStr ) );
181 var strokeMaterialName = this.getPropertyFromString( "strokeMat: ", importStr ); 181 var strokeMaterialName = this.getPropertyFromString( "strokeMat: ", importStr );
182 var fillMaterialName = this.getPropertyFromString( "fillMat: ", importStr ); 182 var fillMaterialName = this.getPropertyFromString( "fillMat: ", importStr );
183 this._strokeStyle = Number( this.getPropertyFromString( "strokeColor: ", importStr ) ); 183 this._strokeStyle = this.getPropertyFromString( "strokeStyle: ", importStr );
184 this._fillColor = eval( "[" + this.getPropertyFromString( "fillColor: ", importStr ) + "]" ); 184 this._fillColor = eval( "[" + this.getPropertyFromString( "fillColor: ", importStr ) + "]" );
185 this._strokeColor = eval( "[" + this.getPropertyFromString( "strokeColor: ", importStr ) + "]" ); 185 this._strokeColor = eval( "[" + this.getPropertyFromString( "strokeColor: ", importStr ) + "]" );
186 this._tlRadius = Number( this.getPropertyFromString( "tlRadius: ", importStr ) ); 186 this._tlRadius = Number( this.getPropertyFromString( "tlRadius: ", importStr ) );
@@ -210,8 +210,11 @@ function GLRectangle()
210 // get the world 210 // get the world
211 var world = this.getWorld(); 211 var world = this.getWorld();
212 if (!world) throw( "null world in buildBuffers" ); 212 if (!world) throw( "null world in buildBuffers" );
213 213 //console.log( "GLRectangle.buildBuffers " + world._worldCount );
214 if (!world._useWebGL) return; 214 if (!world._useWebGL) return;
215
216 // make sure RDGE has the correct context
217 g_Engine.setContext( world.getCanvas().uuid );
215 218
216 // create the gl buffer 219 // create the gl buffer
217 var gl = world.getGLContext(); 220 var gl = world.getGLContext();
@@ -284,6 +287,7 @@ function GLRectangle()
284 xFill -= strokeSize; 287 xFill -= strokeSize;
285 yFill -= strokeSize; 288 yFill -= strokeSize;
286 var fillMaterial = this.makeFillMaterial(); 289 var fillMaterial = this.makeFillMaterial();
290 //console.log( "fillMaterial: " + fillMaterial.getName() );
287 var fillPrim = this.createFill([x,y], 2*xFill, 2*yFill, tlRadius, blRadius, brRadius, trRadius, fillMaterial); 291 var fillPrim = this.createFill([x,y], 2*xFill, 2*yFill, tlRadius, blRadius, brRadius, trRadius, fillMaterial);
288 this._primArray.push( fillPrim ); 292 this._primArray.push( fillPrim );
289 this._materialNodeArray.push( fillMaterial.getMaterialNode() ); 293 this._materialNodeArray.push( fillMaterial.getMaterialNode() );
@@ -400,12 +404,18 @@ function GLRectangle()
400 ctx.beginPath(); 404 ctx.beginPath();
401 ctx.fillStyle = "#990000"; 405 ctx.fillStyle = "#990000";
402 if (this._fillColor) 406 if (this._fillColor)
403 ctx.fillStyle = MathUtils.colorToHex( this._fillColor ); 407 {
408 var c = "rgba(" + 255*this._fillColor[0] + "," + 255*this._fillColor[1] + "," + 255*this._fillColor[2] + "," + this._fillColor[3] + ")";
409 ctx.fillStyle = c;
410 }
404 411
405 // set the stroke 412 // set the stroke
406 ctx.strokeStyle = "#0000ff"; 413 ctx.strokeStyle = "#0000ff";
407 if (this._strokeColor) 414 if (this._strokeColor)
408 ctx.strokeStyle = MathUtils.colorToHex( this._strokeColor ); 415 {
416 var c = "rgba(" + 255*this._strokeColor[0] + "," + 255*this._strokeColor[1] + "," + 255*this._strokeColor[2] + "," + this._strokeColor[3] + ")";
417 ctx.strokeStyle = c;
418 }
409 419
410 ctx.lineWidth = lw; 420 ctx.lineWidth = lw;
411 var inset = Math.ceil( 0.5*lw ) + 0.5; 421 var inset = Math.ceil( 0.5*lw ) + 0.5;
@@ -418,7 +428,7 @@ function GLRectangle()
418 this.createStroke = function(ctr, width, height, strokeWidth, tlRad, blRad, brRad, trRad, material) 428 this.createStroke = function(ctr, width, height, strokeWidth, tlRad, blRad, brRad, trRad, material)
419 { 429 {
420 // create the geometry 430 // create the geometry
421 var prim = RectangleStroke.create( ctr, width, height, strokeWidth, tlRad, blRad, brRad, trRad) 431 var prim = RectangleStroke.create( ctr, width, height, strokeWidth, tlRad, blRad, brRad, trRad, material)
422 return prim; 432 return prim;
423 } 433 }
424 434
@@ -428,9 +438,9 @@ function GLRectangle()
428 // special the (common) case of no rounded corners 438 // special the (common) case of no rounded corners
429 var prim 439 var prim
430 if ((tlRad <= 0) && (blRad <= 0) && (brRad <= 0) && (trRad <= 0)) 440 if ((tlRad <= 0) && (blRad <= 0) && (brRad <= 0) && (trRad <= 0))
431 prim = RectangleGeometry.create( ctr, width, height ); 441 prim = RectangleGeometry.create( ctr, width, height, material );
432 else 442 else
433 prim = RectangleFill.create( ctr, width, height, tlRad, blRad, brRad, trRad); 443 prim = RectangleFill.create( ctr, width, height, tlRad, blRad, brRad, trRad, material);
434 444
435 return prim; 445 return prim;
436 } 446 }
@@ -679,7 +689,7 @@ function GLRectangle()
679 } 689 }
680 690
681RectangleFill = {}; 691RectangleFill = {};
682RectangleFill.create = function( rectCtr, width, height, tlRad, blRad, brRad, trRad) 692RectangleFill.create = function( rectCtr, width, height, tlRad, blRad, brRad, trRad, material)
683{ 693{
684 var x = rectCtr[0], y = rectCtr[1], z = 0.0; 694 var x = rectCtr[0], y = rectCtr[1], z = 0.0;
685 var hw = 0.5*width, hh = 0.5*height; 695 var hw = 0.5*width, hh = 0.5*height;
@@ -766,6 +776,17 @@ RectangleFill.create = function( rectCtr, width, height, tlRad, blRad, brRad,
766 j++; 776 j++;
767 } 777 }
768 778
779 //refine the mesh for vertex deformations
780 if (material)
781 {
782 if (material.hasVertexDeformation())
783 {
784 var paramRange = material.getVertexDeformationRange();
785 var tolerance = material.getVertexDeformationTolerance();
786 nVertices = ShapePrimitive.refineMesh( this.vertices, this.normals, this.uvs, this.indices, nVertices, paramRange, tolerance );
787 }
788 }
789
769 // create the RDGE primitive 790 // create the RDGE primitive
770 var prim = ShapePrimitive.create(this.vertices, this.normals, this.uvs, this.indices, g_Engine.getContext().renderer.TRIANGLES, nVertices); 791 var prim = ShapePrimitive.create(this.vertices, this.normals, this.uvs, this.indices, g_Engine.getContext().renderer.TRIANGLES, nVertices);
771 return prim; 792 return prim;
@@ -838,7 +859,7 @@ RectangleFill.getRoundedCorner = function(ctr, startPt, vertices)
838 859
839 860
840RectangleStroke = {}; 861RectangleStroke = {};
841RectangleStroke.create = function( rectCtr, width, height, strokeWidth, tlRad, blRad, brRad, trRad) 862RectangleStroke.create = function( rectCtr, width, height, strokeWidth, tlRad, blRad, brRad, trRad, material)
842{ 863{
843 var x = rectCtr[0], y = rectCtr[1], z = 0.0; 864 var x = rectCtr[0], y = rectCtr[1], z = 0.0;
844 var hw = 0.5*width, hh = 0.5*height, sw = strokeWidth; 865 var hw = 0.5*width, hh = 0.5*height, sw = strokeWidth;
@@ -1029,6 +1050,17 @@ RectangleStroke.create = function( rectCtr, width, height, strokeWidth, tlRad,
1029 k++; 1050 k++;
1030 } 1051 }
1031 1052
1053 //refine the mesh for vertex deformations
1054 if (material)
1055 {
1056 if (material.hasVertexDeformation())
1057 {
1058 var paramRange = material.getVertexDeformationRange();
1059 var tolerance = material.getVertexDeformationTolerance();
1060 //nVertices = ShapePrimitive.refineMesh( this.vertices, this.normals, this.uvs, this.indices, nVertices, paramRange, tolerance );
1061 }
1062 }
1063
1032 // create the RDGE primitive 1064 // create the RDGE primitive
1033 var prim = ShapePrimitive.create(this.vertices, this.normals, this.uvs, this.indices, g_Engine.getContext().renderer.TRIANGLES, nVertices); 1065 var prim = ShapePrimitive.create(this.vertices, this.normals, this.uvs, this.indices, g_Engine.getContext().renderer.TRIANGLES, nVertices);
1034 return prim; 1066 return prim;
@@ -1073,7 +1105,7 @@ RectangleStroke.getUV = RectangleFill.getUV;
1073 1105
1074// Helper function for generating Three.js geometry 1106// Helper function for generating Three.js geometry
1075RectangleGeometry = {}; 1107RectangleGeometry = {};
1076RectangleGeometry.create = function( ctr, width, height ) 1108RectangleGeometry.create = function( ctr, width, height, material )
1077{ 1109{
1078 var x = ctr[0], y = ctr[1], z = 0.0; 1110 var x = ctr[0], y = ctr[1], z = 0.0;
1079 var hw = 0.5*width, hh = 0.5*height; 1111 var hw = 0.5*width, hh = 0.5*height;
@@ -1111,8 +1143,20 @@ RectangleGeometry.create = function( ctr, width, height )
1111 RectangleGeometry.pushIndices( 2, 1, 0 ); 1143 RectangleGeometry.pushIndices( 2, 1, 0 );
1112 RectangleGeometry.pushIndices( 0, 3, 2 ); 1144 RectangleGeometry.pushIndices( 0, 3, 2 );
1113 1145
1146 //refine the mesh for vertex deformations
1147 if (material)
1148 {
1149 if (material.hasVertexDeformation())
1150 {
1151 var paramRange = material.getVertexDeformationRange();
1152 var tolerance = material.getVertexDeformationTolerance();
1153 //nVertices = ShapePrimitive.refineMesh( this.vertices, this.normals, this.uvs, this.indices, nVertices, paramRange, tolerance );
1154 }
1155 }
1156
1114 // create the RDGE primitive 1157 // create the RDGE primitive
1115 var prim = ShapePrimitive.create(this.vertices, this.normals, this.uvs, this.indices, g_Engine.getContext().renderer.TRIANGLES, nVertices); 1158 var prim = ShapePrimitive.create(this.vertices, this.normals, this.uvs, this.indices, g_Engine.getContext().renderer.TRIANGLES, nVertices);
1159 //var prim = ShapePrimitive.create(this.vertices, this.normals, this.uvs, this.indices, g_Engine.getContext().renderer.LINES, nVertices);
1116 return prim; 1160 return prim;
1117} 1161}
1118 1162
@@ -1182,3 +1226,8 @@ ShapePrimitive.create = function(coords, normals, uvs, indices, primType, ver
1182 1226
1183 return prim; 1227 return prim;
1184} 1228}
1229
1230
1231
1232
1233