Browse Source

- Added Mesh.flipSided boolean

Mr.doob 15 years ago
parent
commit
5ff2dfcaca
6 changed files with 11 additions and 6 deletions
  1. 2 1
      README.md
  2. 0 0
      build/three.js
  3. 0 0
      build/three_debug.js
  4. 3 0
      src/objects/Mesh.js
  5. 0 1
      src/objects/Object3D.js
  6. 6 4
      src/renderers/Renderer.js

+ 2 - 1
README.md

@@ -129,7 +129,7 @@ Thanks to the power of the internets (and github <3) these people have kindly he
 
 
 ### Change Log ###
 ### Change Log ###
 
 
-2010 07 17 - **r14** (32.093 kb)
+2010 07 17 - **r14** (32.144 kb)
 
 
 * Refactored `CanvasRenderer` (more duplicated code, but easier to handle)
 * Refactored `CanvasRenderer` (more duplicated code, but easier to handle)
 * `Face4` now supports `MeshBitmapUVMappingMaterial`
 * `Face4` now supports `MeshBitmapUVMappingMaterial`
@@ -142,6 +142,7 @@ Thanks to the power of the internets (and github <3) these people have kindly he
 * `ColorStrokeMaterial` > `LineColorMaterial`
 * `ColorStrokeMaterial` > `LineColorMaterial`
 * `Rectangle.instersects` returned false with rectangles with 0px witdh or height
 * `Rectangle.instersects` returned false with rectangles with 0px witdh or height
 * Using new object `UV` instead of `Vector2` where it should be used
 * Using new object `UV` instead of `Vector2` where it should be used
+* Added Mesh.flipSided boolean (false by default)
 
 
 
 
 2010 07 12 - **r13** (29.492 kb)
 2010 07 12 - **r13** (29.492 kb)

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


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


+ 3 - 0
src/objects/Mesh.js

@@ -8,8 +8,11 @@ THREE.Mesh = function ( geometry, material ) {
 
 
 	this.geometry = geometry;
 	this.geometry = geometry;
 
 
+	this.flipSided = false;
 	this.doubleSided = false;
 	this.doubleSided = false;
 
 
+	this.overdraw = false;
+
 };
 };
 
 
 THREE.Mesh.prototype = new THREE.Object3D();
 THREE.Mesh.prototype = new THREE.Object3D();

+ 0 - 1
src/objects/Object3D.js

@@ -12,7 +12,6 @@ THREE.Object3D = function ( material ) {
 	this.screen = new THREE.Vector3();
 	this.screen = new THREE.Vector3();
 
 
 	this.material = material instanceof Array ? material : [ material ];
 	this.material = material instanceof Array ? material : [ material ];
-	this.overdraw = false;
 
 
 	this.autoUpdateMatrix = true;
 	this.autoUpdateMatrix = true;
 
 

+ 6 - 4
src/renderers/Renderer.js

@@ -74,9 +74,10 @@ THREE.Renderer = function() {
 						v2 = object.geometry.vertices[ face.b ];
 						v2 = object.geometry.vertices[ face.b ];
 						v3 = object.geometry.vertices[ face.c ];
 						v3 = object.geometry.vertices[ face.c ];
 
 
-						if ( v1.__visible && v2.__visible && v3.__visible && ( object.doubleSided ||
+						if ( v1.__visible && v2.__visible && v3.__visible &&
+						   ( object.doubleSided || ( object.flipSided !=
 						   ( v3.screen.x - v1.screen.x ) * ( v2.screen.y - v1.screen.y ) -
 						   ( v3.screen.x - v1.screen.x ) * ( v2.screen.y - v1.screen.y ) -
-						   ( v3.screen.y - v1.screen.y ) * ( v2.screen.x - v1.screen.x ) < 0 ) ) {
+						   ( v3.screen.y - v1.screen.y ) * ( v2.screen.x - v1.screen.x ) < 0 ) ) ) {
 
 
 							if ( !face3Pool[ face3count ] ) {
 							if ( !face3Pool[ face3count ] ) {
 
 
@@ -106,11 +107,12 @@ THREE.Renderer = function() {
 						v3 = object.geometry.vertices[ face.c ];
 						v3 = object.geometry.vertices[ face.c ];
 						v4 = object.geometry.vertices[ face.d ];
 						v4 = object.geometry.vertices[ face.d ];
 
 
-						if ( v1.__visible && v2.__visible && v3.__visible && v4.__visible && (object.doubleSided ||
+						if ( v1.__visible && v2.__visible && v3.__visible && v4.__visible &&
+						   ( object.doubleSided || ( object.flipSided !=
 						   ( ( v4.screen.x - v1.screen.x ) * ( v2.screen.y - v1.screen.y ) -
 						   ( ( v4.screen.x - v1.screen.x ) * ( v2.screen.y - v1.screen.y ) -
 						   ( v4.screen.y - v1.screen.y ) * ( v2.screen.x - v1.screen.x ) < 0 ||
 						   ( v4.screen.y - v1.screen.y ) * ( v2.screen.x - v1.screen.x ) < 0 ||
 						   ( v2.screen.x - v3.screen.x ) * ( v4.screen.y - v3.screen.y ) -
 						   ( v2.screen.x - v3.screen.x ) * ( v4.screen.y - v3.screen.y ) -
-						   ( v2.screen.y - v3.screen.y ) * ( v4.screen.x - v3.screen.x ) < 0 ) ) ) {
+						   ( v2.screen.y - v3.screen.y ) * ( v4.screen.x - v3.screen.x ) < 0 ) ) ) ) {
 
 
 							if ( !face4Pool[ face4count ] ) {
 							if ( !face4Pool[ face4count ] ) {
 
 

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