package info.u250.c2d.box2d.model;
import java.util.ArrayList;
import java.util.List;
/**
* An exmaple that how to render the model
* <pre>
void setup(b2Scene model,Stage stage){
for(b2BodyDefModel body:model.bodyDefModels){
DefaultBuilder.buildBody(world, body);
}
for(b2JointDefModel joint:model.jointDefModels){
DefaultBuilder.buildJoint(world, joint);
}
for(b2BodyDefModel b2Body:model.bodyDefModels){
Box2dObject obj = new Box2dObject(b2Body);
for(b2FixtureDefModel b2Def:b2Body.fixtures){
if(b2Def instanceof b2CircleFixtureDefModel){
b2CircleFixtureDefModel tmp = (b2CircleFixtureDefModel)b2Def;
Image image = new Image(new TextureRegion(Engine.resource("Circle",Texture.class)));
image.setSize(tmp.radius*2, tmp.radius*2);
image.setOrigin(tmp.radius, tmp.radius);
image.setPosition(b2Body.drawableOffsetX-tmp.radius, b2Body.drawableOffsetY-tmp.radius);
image.setColor(generateColor());
obj.addActor(image);
}else if(b2Def instanceof b2RectangleFixtureDefModel){
b2RectangleFixtureDefModel tmp = (b2RectangleFixtureDefModel)b2Def;
Image image = new Image(new TextureRegion(Engine.resource("Box",Texture.class)));
image.setSize(tmp.width, tmp.height);
image.setOrigin(tmp.width/2, tmp.height/2);
image.setPosition(b2Body.drawableOffsetX-tmp.width/2, b2Body.drawableOffsetY-tmp.height/2);
image.setColor(generateColor());
obj.addActor(image);
}else if(b2Def instanceof b2PolygonFixtureDefModel){
b2PolygonFixtureDefModel tmp = (b2PolygonFixtureDefModel)b2Def;
Vector2 lower = new Vector2();
Vector2 upper = new Vector2();
for(Vector2[] vv:tmp.vertices){
for(Vector2 v:vv){
lower.x = Math.min(lower.x, v.x);
lower.y = Math.min(lower.y, v.y);
upper.x = Math.max(upper.x, v.x);
upper.y = Math.max(upper.y, v.y);
}
}
PolygonActor actor = new PolygonActor(Engine.resource("Polygon",Texture.class), tmp.vertices,b2Body.drawableOffsetX,b2Body.drawableOffsetY);
actor.setPosition(b2Body.drawableOffsetX-lower.x,b2Body.drawableOffsetY-lower.y);
obj.addActor(actor);
meshs.add(actor);
}
}
stage.addActor(obj);
}
}
* </pre>
*
* @author lycying@gmail.com
*
*/
public class b2Scene implements java.io.Serializable{
private static final long serialVersionUID = 1L;
public List<b2FixtureDefModel> fixtureDefModels = new ArrayList<b2FixtureDefModel>();
public List<b2BodyDefModel> bodyDefModels = new ArrayList<b2BodyDefModel>();
public List<b2JointDefModel> jointDefModels = new ArrayList<b2JointDefModel>();
}