package com.gushikustudios.rube;
import com.badlogic.gdx.graphics.Color;
import com.badlogic.gdx.graphics.g2d.PolygonRegion;
import com.badlogic.gdx.graphics.g2d.PolygonSprite;
import com.badlogic.gdx.graphics.g2d.PolygonSpriteBatch;
import com.badlogic.gdx.math.MathUtils;
import com.badlogic.gdx.math.Vector2;
import com.badlogic.gdx.physics.box2d.Body;
/**
* Spatial for drawing polygon based textures. Useful for fixture definitions.
*
* @author tescott
*
*/
public class PolySpatial {
private PolygonSprite mSprite;
private Body mBody;
public static final float PIXELS_PER_METER = 32f;
private static final Vector2 mTmp = new Vector2();
public PolySpatial(PolygonRegion region, Color color) {
mSprite = new PolygonSprite(region);
mSprite.setColor(color);
mSprite.setSize(region.getRegion().getRegionWidth()/PIXELS_PER_METER,region.getRegion().getRegionHeight()/PIXELS_PER_METER);
}
public PolySpatial(PolygonRegion region, Body body, Color color)
{
this(region,color);
mBody = body;
mTmp.set(mBody.getPosition());
mSprite.setOrigin(0, 0);
}
public void render(PolygonSpriteBatch batch, float delta) {
if (mBody != null)
{
mTmp.set(mBody.getPosition());
mSprite.setRotation(mBody.getAngle()*MathUtils.radiansToDegrees);
mSprite.setPosition(mTmp.x, mTmp.y);
mSprite.draw(batch);
}
else
{
mSprite.draw(batch);
}
}
}