public Tomato(RenderContext rc, float3 position, float3 rotation, float3 scaleFactor,SceneRenderer sc, RigidBody tomatoRigidBody, Game game, DynamicWorld world)
     : base(rc, position, rotation, scaleFactor, sc)
 {
     TomatoRb = tomatoRigidBody;
     Radius = 2f;
     Tag = "Tomato";
     timer = 2.0f;
     _game = game;
     _world = world;
 }
Esempio n. 2
0
 public SliderConstraint AddSliderConstraint(RigidBody rigidBodyA, float4x4 frameInA, bool useLinearReferenceFrameA = false)
 {
     ISliderConstraintImp isci = _dwi.AddSliderConstraint(rigidBodyA._iRigidBodyImp,frameInA, useLinearReferenceFrameA);
     var retval = new SliderConstraint();
     retval._iSliderConstraintImp = isci;
     isci.UserObject = retval;
     return retval;
 }
Esempio n. 3
0
        public RigidBody AddRigidBody(float mass, float3 position, float3 orientation, CollisionShape colShape/*, float3 inertia*/)
        {
            /* var meshTrianglesCount = mesh.Triangles.Length;
            int [] meshTrianglesArray = new int[meshTrianglesCount];
            for (int c = 0; c < meshTrianglesCount; c++)
            {
                meshTrianglesArray[c] = Convert.ToInt32(mesh.Triangles[c]);
            }

            int meshVerteciesCount = mesh.Vertices.Length;
            float3[] meshVerteciesArray = new float3[meshVerteciesCount];
            meshVerteciesArray = mesh.Vertices;
            */
            var shapeType = colShape.GetType().ToString();
            IRigidBodyImp rbi;
            switch (shapeType)
            {
                //Primitives
                case "Fusee.Engine.BoxShape":
                    var box =(BoxShape) colShape;
                    rbi = _dwi.AddRigidBody(mass, position, orientation, box.BoxShapeImp/*, inertia*/);
                    break;
                case "Fusee.Engine.CapsuleShape":
                    var capsule = (CapsuleShape)colShape;
                    rbi = _dwi.AddRigidBody(mass, position, orientation, capsule.CapsuleShapeImp/*, inertia*/);
                    break;
                case "Fusee.Engine.ConeShape":
                    var cone = (ConeShape)colShape;
                    rbi = _dwi.AddRigidBody(mass, position, orientation, cone.ConeShapeImp/*, inertia*/);
                    break;
                case "Fusee.Engine.CylinderShape":
                    var cylinder = (CylinderShape)colShape;
                    rbi = _dwi.AddRigidBody(mass, position, orientation, cylinder.CylinderShapeImp/*, inertia*/);
                    break;
                case "Fusee.Engine.MultiSphereShape":
                    var multiSphere = (MultiSphereShape)colShape;
                    rbi = _dwi.AddRigidBody(mass, position, orientation, multiSphere.MultiSphereShapeImp/*, inertia*/);
                    break;
                case "Fusee.Engine.SphereShape":
                    var sphere = (SphereShape)colShape;
                    rbi = _dwi.AddRigidBody(mass, position, orientation, sphere.SphereShapeImp/*, inertia*/);
                    break;

                //Misc
                case "Fusee.Engine.CompoundShape":
                    var compShape = (CompoundShape)colShape;
                    rbi = _dwi.AddRigidBody(mass, position, orientation, compShape.CompoundShapeImp/*, inertia*/);
                    break;
                case "Fusee.Engine.EmptyShape":
                    var empty = (EmptyShape)colShape;
                    rbi = _dwi.AddRigidBody(mass, position, orientation, empty.EmtyShapeImp/*, inertia*/);
                    break;

                //Meshes
                case "Fusee.Engine.ConvexHullShape":
                    var convHullShape = (ConvexHullShape) colShape;
                    rbi = _dwi.AddRigidBody(mass, position, orientation, convHullShape.ConvexHullShapeImp/*, inertia*/);
                    break;
                case "Fusee.Engine.GImpactMeshShape":
                    var gImpMeshShape = (GImpactMeshShape) colShape;
                    rbi = _dwi.AddRigidBody(mass, position, orientation, gImpMeshShape.GImpactMeshShapeImp/*, inertia*/);
                    break;
                case "Fusee.Engine.StaticPlaneShape": //static Shape
                    var staticPaneShape = (StaticPlaneShape)colShape;
                    rbi = _dwi.AddRigidBody(mass, position, orientation, staticPaneShape.StaticPlaneShapeImp/*, inertia*/);
                    break;
                //Default
                default:
                    var defaultShape = new EmptyShape();
                    Debug.WriteLine("default");
                    rbi = _dwi.AddRigidBody(mass, position, orientation, defaultShape.EmtyShapeImp/*, inertia*/);
                    break;
            }

               // IRigidBodyImp rbi = _dwi.AddRigidBody(mass, worldTransform, /* shape, */inertia);

            var retval = new RigidBody();
            //retval.Mesh = mesh;
            retval._iRigidBodyImp = rbi;
            rbi.UserObject = retval;

            return retval;
        }
Esempio n. 4
0
 public Point2PointConstraint AddPoint2PointConstraint(RigidBody rigidBodyA, RigidBody rigidBodyB, float3 pivotInA, float3 pivotInB)
 {
     IPoint2PointConstraintImp ip2pci = _dwi.AddPoint2PointConstraint(rigidBodyA._iRigidBodyImp, rigidBodyB._iRigidBodyImp, pivotInA, pivotInB);
     var retval = new Point2PointConstraint();
     retval._iP2PConstraintImp = ip2pci;
     ip2pci.UserObject = retval;
     return retval;
 }
Esempio n. 5
0
 public HingeConstraint AddHingeConstraint(RigidBody rigidBodyA, RigidBody rigidBodyB, float4x4 brAFrame, float4x4 brBFrame, bool useReferenceFrameA = false)
 {
     IHingeConstraintImp ip2pci = _dwi.AddHingeConstraint(rigidBodyA._iRigidBodyImp, rigidBodyB._iRigidBodyImp, brAFrame, brBFrame, useReferenceFrameA);
     var retval = new HingeConstraint();
     retval._iHConstraintImp = ip2pci;
     ip2pci.UserObject = retval;
     return retval;
 }
Esempio n. 6
0
 public HingeConstraint AddHingeConstraint(RigidBody rigidBodyA, RigidBody rigidBodyB, float3 pivotInA, float3 pivotInB, float3 axisInA, float3 axisInB, bool useReferenceFrameA = false)
 {
     IHingeConstraintImp ip2pci = _dwi.AddHingeConstraint(rigidBodyA._iRigidBodyImp, rigidBodyB._iRigidBodyImp, pivotInA, pivotInB, axisInA, axisInB, useReferenceFrameA);
     var retval = new HingeConstraint();
     retval._iHConstraintImp = ip2pci;
     ip2pci.UserObject = retval;
     return retval;
 }
Esempio n. 7
0
 public Generic6DofConstraint AddGeneric6DofConstraint(RigidBody rigidBodyA, RigidBody rigidBodyB, float4x4 frameInA, float4x4 frameInB, bool useReferenceFrameA = false)
 {
     IGeneric6DofConstraintImp ig6dofci = _dwi.AddGeneric6DofConstraint(rigidBodyA._iRigidBodyImp, rigidBodyB._iRigidBodyImp, frameInA, frameInB, useReferenceFrameA);
     var retval = new Generic6DofConstraint();
     retval._IG6DofConstraintImp = ig6dofci;
     ig6dofci.UserObject = retval;
     return retval;
 }
Esempio n. 8
0
 //GearConstraint
 public GearConstraint AddGearConstraint(RigidBody rigidBodyA, RigidBody rigidBodyB, float3 axisInA, float3 axisInB, float ratio = 1.0f)
 {
     IGearConstraintImp igci = _dwi.AddGearConstraint(rigidBodyA._iRigidBodyImp, rigidBodyB._iRigidBodyImp, axisInA, axisInB, ratio);
     var retval = new GearConstraint();
     retval._iGearConstraintImp = igci;
     igci.UserObject = retval;
     return retval;
 }
Esempio n. 9
0
 public ConeTwistConstraint AddConeTwistConstraint(RigidBody rigidBodyA, RigidBody rigidBodyB, float4x4 rbAFrame, float4x4 rbBFrame)
 {
     IConeTwistConstraintImp icti = _dwi.AddConeTwistConstraint(rigidBodyA._iRigidBodyImp, rigidBodyB._iRigidBodyImp, rbAFrame, rbBFrame);
     var retval = new ConeTwistConstraint();
     retval._iCTConstraintImp = icti;
     icti.UserObject = retval;
     return retval;
 }
 public void RemoveRigidBody(RigidBody rigidbody)
 {
     _dwi.RemoveRigidBody(rigidbody._iRigidBodyImp);
 }