source: other-projects/playing-in-the-street/summer-2013/trunk/Playing-in-the-Street-WPF/Content/Web/mrdoob-three.js-4862f5f/src/extras/helpers/BoxHelper.js@ 28897

Last change on this file since 28897 was 28897, checked in by davidb, 10 years ago

GUI front-end to server base plus web page content

File size: 2.0 KB
Line 
1/**
2 * @author mrdoob / http://mrdoob.com/
3 */
4
5THREE.BoxHelper = function ( object ) {
6
7 // 5____4
8 // 1/___0/|
9 // | 6__|_7
10 // 2/___3/
11
12 var vertices = [
13 new THREE.Vector3( 1, 1, 1 ),
14 new THREE.Vector3( - 1, 1, 1 ),
15 new THREE.Vector3( - 1, - 1, 1 ),
16 new THREE.Vector3( 1, - 1, 1 ),
17
18 new THREE.Vector3( 1, 1, - 1 ),
19 new THREE.Vector3( - 1, 1, - 1 ),
20 new THREE.Vector3( - 1, - 1, - 1 ),
21 new THREE.Vector3( 1, - 1, - 1 )
22 ];
23
24 this.vertices = vertices;
25
26 // TODO: Wouldn't be nice if Line had .segments?
27
28 var geometry = new THREE.Geometry();
29 geometry.vertices.push(
30 vertices[ 0 ], vertices[ 1 ],
31 vertices[ 1 ], vertices[ 2 ],
32 vertices[ 2 ], vertices[ 3 ],
33 vertices[ 3 ], vertices[ 0 ],
34
35 vertices[ 4 ], vertices[ 5 ],
36 vertices[ 5 ], vertices[ 6 ],
37 vertices[ 6 ], vertices[ 7 ],
38 vertices[ 7 ], vertices[ 4 ],
39
40 vertices[ 0 ], vertices[ 4 ],
41 vertices[ 1 ], vertices[ 5 ],
42 vertices[ 2 ], vertices[ 6 ],
43 vertices[ 3 ], vertices[ 7 ]
44 );
45
46 THREE.Line.call( this, geometry, new THREE.LineBasicMaterial( { color: 0xffff00 } ), THREE.LinePieces );
47
48 if ( object !== undefined ) {
49
50 this.update( object );
51
52 }
53
54};
55
56THREE.BoxHelper.prototype = Object.create( THREE.Line.prototype );
57
58THREE.BoxHelper.prototype.update = function ( object ) {
59
60 var geometry = object.geometry;
61
62 if ( geometry.boundingBox === null ) {
63
64 geometry.computeBoundingBox();
65
66 }
67
68 var min = geometry.boundingBox.min;
69 var max = geometry.boundingBox.max;
70 var vertices = this.vertices;
71
72 vertices[ 0 ].set( max.x, max.y, max.z );
73 vertices[ 1 ].set( min.x, max.y, max.z );
74 vertices[ 2 ].set( min.x, min.y, max.z );
75 vertices[ 3 ].set( max.x, min.y, max.z );
76 vertices[ 4 ].set( max.x, max.y, min.z );
77 vertices[ 5 ].set( min.x, max.y, min.z );
78 vertices[ 6 ].set( min.x, min.y, min.z );
79 vertices[ 7 ].set( max.x, min.y, min.z );
80
81 this.geometry.computeBoundingSphere();
82 this.geometry.verticesNeedUpdate = true;
83
84 this.matrixAutoUpdate = false;
85 this.matrixWorld = object.matrixWorld;
86
87};
Note: See TracBrowser for help on using the repository browser.