コード例 #1
0
ファイル: BoxRigid.cs プロジェクト: ZGTR/CRUST-Physics-Engine
 public BoxRigid(Vector3 positionXNA, Material mat, Vector3 halfSize)
     : base(
         MathHelperModule.GetBoxRigid2DCoordinatesPositionXNA(positionXNA, halfSize.X, halfSize.Y),
         MathHelperModule.GetPositionCenter(positionXNA, halfSize.X, halfSize.Y), TextureType.DefaultBox)
 {
     ReInitializeData(positionXNA, mat, halfSize);
 }
コード例 #2
0
ファイル: BoxRigid.cs プロジェクト: ZGTR/CRUST-Physics-Engine
        public BoxRigid(BoxRigid anotherRB)
            : base(
                MathHelperModule.GetBoxRigid2DCoordinatesPositionXNA(anotherRB.PositionXNA, anotherRB.HalfSize.X, anotherRB.HalfSize.Y),
                MathHelperModule.GetPositionCenter(anotherRB.PositionXNA, anotherRB.HalfSize.X, anotherRB.HalfSize.Y), TextureType.DefaultBox)
        {
            //this.HalfSize = anotherRB.HalfSize;
            //this.PositionCenterEngine = MathHelperModule.GetPositionCenter(anotherRB.PositionXNA, anotherRB.HalfSize.X,
            //                                                         anotherRB.HalfSize.Y);
            //this.RectangleArea = MathHelperModule.GetBoxRigid2DCoordinatesPositionCenter(anotherRB.PositionCenterEngine,
            //                                                                             anotherRB.HalfSize.X,
            //                                                                             anotherRB.HalfSize.Y);
            //SetMaterial(anotherRB.material);
            //SetMass(HalfSize);

            //baseMomentOfInertia = Mass * Math.Max(HalfSize.X, HalfSize.Y) * Math.Max(HalfSize.X, HalfSize.Y) * 4 / 12f;
            //dAngle = 0;
            //vertices = new VertexPositionColor[5];
            //velocity = new Vector3(0, 0, 0);

            //InverseInertiaTensorWorld = new Matrix();
            //InverseInertiaTensorWorld.M11 = InverseInertiaTensorWorld.M22 = InverseInertiaTensorWorld.M33 = (float)1 / baseMomentOfInertia;
            //InverseInertiaTensorWorld.M44 = 1;

            //vertices[0].Position = this.PositionCenterEngine + new Vector3(HalfSize.X, HalfSize.Y, 0);
            //vertices[1].Position = this.PositionCenterEngine + new Vector3(-HalfSize.X, HalfSize.Y, 0);
            //vertices[2].Position = this.PositionCenterEngine + new Vector3(-HalfSize.X, -HalfSize.Y, 0);
            //vertices[3].Position = this.PositionCenterEngine + new Vector3(HalfSize.X, -HalfSize.Y, 0);
            //vertices[4].Position = this.PositionCenterEngine + new Vector3(HalfSize.X, HalfSize.Y, 0);

            this._positionCenter = anotherRB.PositionXNA;
            this._positionCenter = anotherRB.PositionCenterEngine;

            this.Width  = anotherRB.Width;
            this.Height = anotherRB.Height;

            this.vertices = RigidsHelperModule.MakeNewVPCMatrix(anotherRB.vertices);
            this.InverseInertiaTensorWorld = anotherRB.InverseInertiaTensorWorld;


            this.baseMomentOfInertia = anotherRB.baseMomentOfInertia;
            //this.basicEffect = anotherRB.basicEffect;
            this.acceleration          = anotherRB.acceleration;
            this.canSleep              = anotherRB.canSleep;
            this.Center                = anotherRB.Center;
            this.dAngle                = anotherRB.dAngle;
            this.torqueAccum           = anotherRB.torqueAccum;
            this.torque                = anotherRB.torque;
            this.EnlargingFactor       = anotherRB.EnlargingFactor;
            this.gravity               = anotherRB.gravity;
            this.HalfSize              = anotherRB.HalfSize;
            this.isAwake               = anotherRB.isAwake;
            this.IsCollidable          = anotherRB.IsCollidable;
            this.IsClicked             = anotherRB.IsClicked;
            this.LastFrameAcceleration = anotherRB.LastFrameAcceleration;
            this.LastFrameVelocity     = anotherRB.LastFrameVelocity;
            this.Mass            = anotherRB.Mass;
            this.InvMass         = anotherRB.InvMass;
            this.material        = anotherRB.material;
            this.motion          = anotherRB.motion;
            this.orientation     = anotherRB.orientation;
            this.RectangleArea   = anotherRB.RectangleArea;
            this.TextureType     = anotherRB.TextureType;
            this.sleepEpsilon    = anotherRB.sleepEpsilon;
            this.angVelocity     = anotherRB.angVelocity;
            this.angAcceleration = anotherRB.angVelocity;
            this.XAxis           = anotherRB.XAxis;
            this.YAxis           = anotherRB.YAxis;
        }