1/* 2 * To change this template, choose Tools | Templates 3 * and open the template in the editor. 4 */ 5package com.jme3.scene; 6 7import com.jme3.math.Transform; 8 9/** 10 * 11 * SimpleBatchNode comes with some restrictions, but can yield better performances. 12 * Geometries to be batched has to be attached directly to the BatchNode 13 * You can't attach a Node to a SimpleBatchNode 14 * SimpleBatchNode is recommended when you have a large number of geometries using the same material that does not require a complex scene graph structure. 15 * @see BatchNode 16 * @author Nehon 17 */ 18public class SimpleBatchNode extends BatchNode { 19 20 public SimpleBatchNode() { 21 super(); 22 } 23 24 public SimpleBatchNode(String name) { 25 super(name); 26 } 27 28 @Override 29 public int attachChild(Spatial child) { 30 31 if (!(child instanceof Geometry)) { 32 throw new UnsupportedOperationException("BatchNode is BatchMode.Simple only support child of type Geometry, use BatchMode.Complex to use a complex structure"); 33 } 34 35 return super.attachChild(child); 36 } 37 38 @Override 39 protected void setTransformRefresh() { 40 41 refreshFlags |= RF_TRANSFORM; 42 setBoundRefresh(); 43 for (Batch batch : batches.values()) { 44 batch.geometry.setTransformRefresh(); 45 } 46 } 47 48 protected Transform getTransforms(Geometry geom){ 49 return geom.getLocalTransform(); 50 } 51 52 @Override 53 public void batch() { 54 doBatch(); 55 } 56} 57