/** @file * @author Edouard DUPIN * @copyright 2011, Edouard DUPIN, all right reserved * @license MPL v2.0 (see license file) */ package org.atriasoft.gameengine.physics.shape; import org.atriasoft.etk.math.Quaternion; import org.atriasoft.etk.math.Vector3f; public class Shape { private Quaternion orientation = Quaternion.identity(); private float mass = 1; //!< element mass in "g" then 1000 for 1kg private Vector3f origin = new Vector3f(0, 0, 0); public void display() { } public float getMass() { return this.mass; } public Quaternion getOrientation() { return this.orientation.clone(); } public Vector3f getOrigin() { return this.origin; } public boolean isBox() { return this instanceof Box; }; public boolean isCapsule() { return this instanceof Capsule; } public boolean isConcave() { return this instanceof Concave; } public boolean isCone() { return this instanceof Cone; } public boolean isConvexHull() { return this instanceof ConvexHull; }; public boolean isCylinder() { return this instanceof Cylinder; }; public boolean isSphere() { return this instanceof Sphere; }; public boolean parse(final String _line) { /* if(strncmp(_line, "origin:", 7) == 0) { sscanf(&_line[7], "%f %f %f", &m_origin.m_floats[0], &m_origin.m_floats[1], &m_origin.m_floats[2] ); EGE_VERBOSE(" Origin=" << m_origin); return true; } if(strncmp(_line, "rotate:", 7) == 0) { sscanf(&_line[7], "%f %f %f %f", &m_quaternion.m_floats[0], &m_quaternion.m_floats[1], &m_quaternion.m_floats[2], &m_quaternion.m_floats[3] ); EGE_VERBOSE(" rotate=" << m_quaternion); return true; } if(strncmp(_line, "mass:", 5) == 0) { sscanf(&_line[5], "%f", &m_mass ); EGE_VERBOSE(" mass=" << m_mass); return true; } */ return false; }; public void setMass(final float mass) { this.mass = mass; }; public void setOrientation(final Quaternion orientation) { this.orientation = orientation; }; public void setOrigin(final Vector3f origin) { this.origin = origin; }; } /* ememory::SharedPtr ege::physics::Shape::create(const etk::String& _name) { ememory::SharedPtr tmpp = null; etk::String name = etk::toLower(_name); if (name == "box") { tmpp = ememory::makeShared(); } else if (name == "sphere") { tmpp = ememory::makeShared(); } else if (name == "cone") { tmpp = ememory::makeShared(); } else if (name == "cylinder") { tmpp = ememory::makeShared(); } else if (name == "capsule") { tmpp = ememory::makeShared(); } else if (name == "convexhull") { tmpp = ememory::makeShared(); } else if (name == "autoconcave") { tmpp = ememory::makeShared(); } else { EGE_ERROR("Create an unknow element : '" << _name << "' availlable : [BOX,SPHERE,CONE,CYLINDER,CAPSULE,CONVEXHULL,autoConcave]"); return null; } if (tmpp == null) { EGE_ERROR("Allocation error for physical element : '" << _name << "'"); } return tmpp; } */