/** * ***************************************************************************** * Copyright (c) 2013, Daniel Murphy * All rights reserved. * * Redistribution and use in source and binary forms, with or without modification, * are permitted provided that the following conditions are met: * * Redistributions of source code must retain the above copyright notice, * this list of conditions and the following disclaimer. * * Redistributions in binary form must reproduce the above copyright notice, * this list of conditions and the following disclaimer in the documentation * and/or other materials provided with the distribution. * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. * IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * POSSIBILITY OF SUCH DAMAGE. ***************************************************************************** */ package org.jbox2d.dynamics; import org.jbox2d.collision.shapes.Shape; /** * A fixture definition is used to create a fixture. This class defines an * abstract fixture definition. You can reuse fixture definitions safely. * * @author daniel */ public class FixtureDef { /** * The shape, this must be set. The shape will be cloned, so you can create * the shape on the stack. */ public Shape shape = null; /** * Use this to store application specific fixture data. */ public Object userData; /** * The friction coefficient, usually in the range [0,1]. */ public float friction; /** * The restitution (elasticity) usually in the range [0,1]. */ public float restitution; /** * The density, usually in kg/m^2 */ public float density; /** * A sensor shape collects contact information but never generates a * collision response. */ public boolean isSensor; /** * Contact filtering data; */ public Filter filter; public FixtureDef() { shape = null; userData = null; friction = 0.2f; restitution = 0f; density = 0f; filter = new Filter(); isSensor = false; } /** * The shape, this must be set. The shape will be cloned, so you can create * the shape on the stack. * * @return */ public Shape getShape() { return shape; } /** * The shape, this must be set. The shape will be cloned, so you can create * the shape on the stack. * * @param shape */ public void setShape(Shape shape) { this.shape = shape; } /** * Use this to store application specific fixture data. * * @return */ public Object getUserData() { return userData; } /** * Use this to store application specific fixture data. * * @param userData */ public void setUserData(Object userData) { this.userData = userData; } /** * The friction coefficient, usually in the range [0,1]. * * @return */ public float getFriction() { return friction; } /** * The friction coefficient, usually in the range [0,1]. * * @param friction */ public void setFriction(float friction) { this.friction = friction; } /** * The restitution (elasticity) usually in the range [0,1]. * * @return */ public float getRestitution() { return restitution; } /** * The restitution (elasticity) usually in the range [0,1]. * * @param restitution */ public void setRestitution(float restitution) { this.restitution = restitution; } /** * The density, usually in kg/m^2 * * @return */ public float getDensity() { return density; } /** * The density, usually in kg/m^2 * * @param density */ public void setDensity(float density) { this.density = density; } /** * A sensor shape collects contact information but never generates a * collision response. * * @return */ public boolean isSensor() { return isSensor; } /** * A sensor shape collects contact information but never generates a * collision response. * * @param isSensor */ public void setSensor(boolean isSensor) { this.isSensor = isSensor; } /** * Contact filtering data; * * @return */ public Filter getFilter() { return filter; } /** * Contact filtering data; * * @param filter */ public void setFilter(Filter filter) { this.filter = filter; } }