package com.deftwun.zombiecopter.box2dJson; import com.badlogic.gdx.physics.box2d.Body; import com.badlogic.gdx.physics.box2d.Filter; import com.badlogic.gdx.physics.box2d.Fixture; import com.badlogic.gdx.physics.box2d.FixtureDef; public class FixtureModel{ public String name = "default"; //public final FixtureDef fixtureDef = new FixtureDef(); Filter filter = new Filter(); boolean sensor; float friction,density,restitution; public ShapeModel shapeModel = null; public FixtureModel(){} public FixtureModel(String theName){ name = theName; } public FixtureModel(Fixture f){ fromFixture(f); } public FixtureModel(FixtureDef fd){ fromFixtureDef(fd); } public FixtureModel(String theName, FixtureDef fd){ name = theName; fromFixtureDef(fd); } public FixtureModel(String theName, Fixture f){ name = theName; fromFixture(f); } public Fixture toFixture(Body b){ Fixture f = null; FixtureDef fd = this.toFixtureDef(); if (fd != null) f = b.createFixture(fd); return f; } public FixtureDef toFixtureDef(){ FixtureDef fd = null; if (shapeModel != null){ fd = new FixtureDef(); fd.shape = shapeModel.toShape(); fd.isSensor= sensor; fd.density = density; fd.friction = friction; fd.filter.categoryBits = filter.categoryBits; fd.filter.groupIndex = filter.groupIndex; fd.filter.maskBits = filter.maskBits; } return fd; } public void fromFixture(Fixture f){ shapeModel = new ShapeModel(f.getShape()); Filter filterData = f.getFilterData(); filter.categoryBits = filterData.categoryBits; filter.maskBits = filterData.maskBits; filter.groupIndex = filterData.groupIndex; sensor = f.isSensor(); density = f.getDensity(); friction = f.getFriction(); restitution = f.getRestitution(); } public void fromFixtureDef(FixtureDef fd){ shapeModel = new ShapeModel(fd.shape); Filter filterData = fd.filter; filter.categoryBits = filterData.categoryBits; filter.maskBits = filterData.maskBits; filter.groupIndex = filterData.groupIndex; sensor = fd.isSensor; density = fd.density; friction = fd.friction; restitution = fd.restitution; } }