22var helpers = require ( '../helpers' ) ;
33var degToRad = require ( 'index' ) . THREE . Math . degToRad ;
44
5+ /**
6+ * Most geometry tests will disable BufferGeometries in order to assert on geometry types and
7+ * parameters. That info is mostly lost when converting a Geometry to a BufferGeometry.
8+ */
59suite ( 'geometry' , function ( ) {
610 setup ( function ( done ) {
711 var el = this . el = helpers . entityFactory ( ) ;
8- el . setAttribute ( 'geometry' , 'primitive: box' ) ;
12+ el . setAttribute ( 'geometry' , 'buffer: false; primitive: box' ) ;
913 el . addEventListener ( 'loaded' , function ( ) {
1014 done ( ) ;
1115 } ) ;
@@ -20,24 +24,24 @@ suite('geometry', function () {
2024
2125 test ( 'updates geometry' , function ( ) {
2226 var mesh = this . el . getObject3D ( 'mesh' ) ;
23- this . el . setAttribute ( 'geometry' , 'primitive: box; width: 5' ) ;
27+ this . el . setAttribute ( 'geometry' , 'buffer: false; primitive: box; width: 5' ) ;
2428 assert . equal ( mesh . geometry . parameters . width , 5 ) ;
2529 } ) ;
2630
2731 test ( 'updates geometry for segment-related attribute' , function ( ) {
2832 var el = this . el ;
2933 var mesh = el . getObject3D ( 'mesh' ) ;
30- el . setAttribute ( 'geometry' , 'primitive: sphere' ) ;
31- el . setAttribute ( 'geometry' , 'primitive: sphere; segmentsWidth: 8' ) ;
34+ el . setAttribute ( 'geometry' , 'buffer: false; primitive: sphere' ) ;
35+ el . setAttribute ( 'geometry' , 'buffer: false; primitive: sphere; segmentsWidth: 8' ) ;
3236 assert . equal ( mesh . geometry . parameters . widthSegments , 8 ) ;
3337 } ) ;
3438
3539 test ( 'can change type of geometry' , function ( ) {
3640 var el = this . el ;
3741 var mesh = el . getObject3D ( 'mesh' ) ;
38- el . setAttribute ( 'geometry' , 'primitive: sphere' ) ;
39- assert . equal ( mesh . geometry . type , 'SphereBufferGeometry ' ) ;
40- el . setAttribute ( 'geometry' , 'primitive: box' ) ;
42+ el . setAttribute ( 'geometry' , 'buffer: false; primitive: sphere' ) ;
43+ assert . equal ( mesh . geometry . type , 'SphereGeometry ' ) ;
44+ el . setAttribute ( 'geometry' , 'buffer: false; primitive: box' ) ;
4145 assert . equal ( mesh . geometry . type , 'BoxGeometry' ) ;
4246 } ) ;
4347
@@ -75,6 +79,7 @@ suite('geometry', function () {
7579
7680 setup ( function ( ) {
7781 this . el . setAttribute ( 'geometry' , {
82+ buffer : false ,
7883 primitive : 'box' ,
7984 depth : 1 ,
8085 height : 1 ,
@@ -109,6 +114,7 @@ suite('geometry', function () {
109114 var el = this . el ;
110115 el . setAttribute ( 'geometry' , 'translate' , '-2 4 2' ) ;
111116 this . el . setAttribute ( 'geometry' , {
117+ buffer : false ,
112118 primitive : 'box' ,
113119 depth : 1 ,
114120 height : 1 ,
@@ -124,6 +130,15 @@ suite('geometry', function () {
124130 assert . equal ( el . getObject3D ( 'mesh' ) . geometry . uuid , uuid ) ;
125131 } ) ;
126132 } ) ;
133+
134+ suite ( 'buffer' , function ( ) {
135+ test ( 'uses BufferGeometry' , function ( ) {
136+ var el = this . el ;
137+ assert . notEqual ( el . getObject3D ( 'mesh' ) . geometry . type , 'BufferGeometry' ) ;
138+ el . setAttribute ( 'geometry' , 'buffer' , true ) ;
139+ assert . equal ( el . getObject3D ( 'mesh' ) . geometry . type , 'BufferGeometry' ) ;
140+ } ) ;
141+ } ) ;
127142} ) ;
128143
129144suite ( 'standard geometries' , function ( ) {
@@ -139,7 +154,8 @@ suite('standard geometries', function () {
139154 var el = this . el ;
140155 var geometry ;
141156 el . setAttribute ( 'geometry' , {
142- primitive : 'circle' , radius : 5 , segments : 4 , thetaStart : 0 , thetaLength : 350
157+ buffer : false , primitive : 'circle' , radius : 5 , segments : 4 , thetaStart : 0 ,
158+ thetaLength : 350
143159 } ) ;
144160 geometry = el . getObject3D ( 'mesh' ) . geometry ;
145161 assert . equal ( geometry . type , 'CircleGeometry' ) ;
@@ -153,7 +169,7 @@ suite('standard geometries', function () {
153169 var el = this . el ;
154170 var geometry ;
155171 el . setAttribute ( 'geometry' , {
156- primitive : 'cylinder' , radius : 1 , height : 2 , segmentsRadial : 3 ,
172+ buffer : false , primitive : 'cylinder' , radius : 1 , height : 2 , segmentsRadial : 3 ,
157173 segmentsHeight : 4 , openEnded : true , thetaStart : 240 , thetaLength : 350
158174 } ) ;
159175 geometry = el . getObject3D ( 'mesh' ) . geometry ;
@@ -172,8 +188,8 @@ suite('standard geometries', function () {
172188 var el = this . el ;
173189 var geometry ;
174190 el . setAttribute ( 'geometry' , {
175- primitive : 'cone' , radiusTop : 1 , radiusBottom : 5 , height : 2 , segmentsRadial : 3 ,
176- segmentsHeight : 4 , openEnded : true , thetaStart : 240 , thetaLength : 350
191+ buffer : false , primitive : 'cone' , radiusTop : 1 , radiusBottom : 5 , height : 2 ,
192+ segmentsRadial : 3 , segmentsHeight : 4 , openEnded : true , thetaStart : 240 , thetaLength : 350
177193 } ) ;
178194 geometry = el . getObject3D ( 'mesh' ) . geometry ;
179195 assert . equal ( geometry . type , 'CylinderGeometry' ) ;
@@ -189,9 +205,9 @@ suite('standard geometries', function () {
189205 test ( 'plane' , function ( ) {
190206 var el = this . el ;
191207 var geometry ;
192- el . setAttribute ( 'geometry' , { primitive : 'plane' , width : 1 , height : 2 } ) ;
208+ el . setAttribute ( 'geometry' , { buffer : false , primitive : 'plane' , width : 1 , height : 2 } ) ;
193209 geometry = el . getObject3D ( 'mesh' ) . geometry ;
194- assert . equal ( geometry . type , 'PlaneBufferGeometry ' ) ;
210+ assert . equal ( geometry . type , 'PlaneGeometry ' ) ;
195211 assert . equal ( geometry . parameters . width , 1 ) ;
196212 assert . equal ( geometry . parameters . height , 2 ) ;
197213 } ) ;
@@ -200,7 +216,7 @@ suite('standard geometries', function () {
200216 var el = this . el ;
201217 var geometry ;
202218 el . setAttribute ( 'geometry' , {
203- primitive : 'ring' , radiusInner : 1 , radiusOuter : 2 , segmentsTheta : 3 } ) ;
219+ buffer : false , primitive : 'ring' , radiusInner : 1 , radiusOuter : 2 , segmentsTheta : 3 } ) ;
204220 geometry = el . getObject3D ( 'mesh' ) . geometry ;
205221 assert . equal ( geometry . type , 'RingGeometry' ) ;
206222 assert . equal ( geometry . parameters . innerRadius , 1 ) ;
@@ -212,11 +228,11 @@ suite('standard geometries', function () {
212228 var el = this . el ;
213229 var geometry ;
214230 el . setAttribute ( 'geometry' , {
215- primitive : 'sphere' , radius : 1 , segmentsWidth : 2 , segmentsHeight : 3 ,
231+ buffer : false , primitive : 'sphere' , radius : 1 , segmentsWidth : 2 , segmentsHeight : 3 ,
216232 phiStart : 45 , phiLength : 90 , thetaStart : 45
217233 } ) ;
218234 geometry = el . getObject3D ( 'mesh' ) . geometry ;
219- assert . equal ( geometry . type , 'SphereBufferGeometry ' ) ;
235+ assert . equal ( geometry . type , 'SphereGeometry ' ) ;
220236 assert . equal ( geometry . parameters . radius , 1 ) ;
221237 assert . equal ( geometry . parameters . widthSegments , 2 ) ;
222238 assert . equal ( geometry . parameters . heightSegments , 3 ) ;
@@ -230,8 +246,8 @@ suite('standard geometries', function () {
230246 var el = this . el ;
231247 var geometry ;
232248 el . setAttribute ( 'geometry' , {
233- primitive : 'torus' , radius : 1 , radiusTubular : 2 , segmentsRadial : 3 , segmentsTubular : 4 ,
234- arc : 350
249+ buffer : false , primitive : 'torus' , radius : 1 , radiusTubular : 2 , segmentsRadial : 3 ,
250+ segmentsTubular : 4 , arc : 350
235251 } ) ;
236252 geometry = el . getObject3D ( 'mesh' ) . geometry ;
237253 assert . equal ( geometry . type , 'TorusGeometry' ) ;
@@ -246,7 +262,7 @@ suite('standard geometries', function () {
246262 var el = this . el ;
247263 var geometry ;
248264 el . setAttribute ( 'geometry' , {
249- primitive : 'torusKnot' , radius : 1 , radiusTubular : 2 , segmentsRadial : 3 ,
265+ buffer : false , primitive : 'torusKnot' , radius : 1 , radiusTubular : 2 , segmentsRadial : 3 ,
250266 segmentsTubular : 4 , p : 5 , q : 6
251267 } ) ;
252268 geometry = el . getObject3D ( 'mesh' ) . geometry ;
0 commit comments