コード例 #1
0
 public PhysXCharacter(NxCharacter character)
 {
     _velocity = new PhysicsVector();
     _position = new PhysicsVector();
     _acceleration = new PhysicsVector();
     _character = character;
 }
コード例 #2
0
 public OdeCharacter(OdeScene parent_scene, PhysicsVector pos)
 {
     _velocity = new PhysicsVector();
     _position = pos;
     _acceleration = new PhysicsVector();
     d.MassSetCapsule(out capsule_mass, 5.0f, 3, 0.5f, 2f);
     capsule_geom = d.CreateCapsule(OdeScene.space, 0.5f, 2f);
     this.BoundingCapsule = d.BodyCreate(OdeScene.world);
     d.BodySetMass(BoundingCapsule, ref capsule_mass);
     d.BodySetPosition(BoundingCapsule, pos.X, pos.Y, pos.Z);
     d.GeomSetBody(capsule_geom, BoundingCapsule);
 }
コード例 #3
0
 public override PhysicsActor AddAvatar(PhysicsVector position)
 {
     PhysicsVector pos = new PhysicsVector();
     pos.X = position.X;
     pos.Y = position.Y;
     pos.Z = position.Z + 20;
     OdeCharacter newAv = new OdeCharacter(this, pos);
     this._characters.Add(newAv);
     return newAv;
 }
コード例 #4
0
 public override PhysicsActor AddPrim(PhysicsVector position, PhysicsVector size)
 {
     Vec3 pos = new Vec3();
     pos.X = position.X;
     pos.Y = position.Y;
     pos.Z = position.Z;
     Vec3 siz = new Vec3();
     siz.X = size.X;
     siz.Y = size.Y;
     siz.Z = size.Z;
     PhysXPrim act = new PhysXPrim( scene.AddNewBox(pos, siz));
     _prims.Add(act);
     return act;
 }
コード例 #5
0
 public abstract PhysicsActor AddPrim(PhysicsVector position, PhysicsVector size);
コード例 #6
0
 public override void AddForce(PhysicsVector force)
 {
 }
コード例 #7
0
 public override void SetMomentum(PhysicsVector momentum)
 {
 }
コード例 #8
0
 public override PhysicsActor AddPrim(PhysicsVector position, PhysicsVector size)
 {
     OpenSim.Framework.Console.MainConsole.Instance.WriteLine("NullPhysicsScene : AddPrim({0},{1})", position, size);
     return PhysicsActor.Null;
 }
コード例 #9
0
 public BasicActor()
 {
     _velocity = new PhysicsVector();
     _position = new PhysicsVector();
     _acceleration = new PhysicsVector();
 }
コード例 #10
0
 public abstract PhysicsActor AddPrim(PhysicsVector position, PhysicsVector size);
コード例 #11
0
ファイル: World.cs プロジェクト: BackupTheBerlios/ulife-svn
        public void AddNewPrim(ObjectAddPacket addPacket, SimClient AgentClient)
        {
            try
            {
                OpenSim.Framework.Console.MainConsole.Instance.WriteLine("World.cs: AddNewPrim() - Creating new prim");
                Primitive prim = new Primitive(m_clientThreads, m_regionHandle, this);
                prim.CreateFromPacket(addPacket, AgentClient.AgentID, this._primCount);
                PhysicsVector pVec = new PhysicsVector(prim.Pos.X, prim.Pos.Y, prim.Pos.Z);
                PhysicsVector pSize = new PhysicsVector(0.255f, 0.255f, 0.255f);
                if (OpenSim.world.Avatar.PhysicsEngineFlying)
                {
                    lock (this.LockPhysicsEngine)
                    {
                        prim.PhysActor = this.phyScene.AddPrim(pVec, pSize);
                    }
                }

                this.Entities.Add(prim.uuid, prim);
                this._primCount++;
            }
            catch (Exception e)
            {
                OpenSim.Framework.Console.MainConsole.Instance.WriteLine("World.cs: AddNewPrim() - Failed with exception " + e.ToString());
            }
        }
コード例 #12
0
 public abstract void SetMomentum(PhysicsVector momentum);
コード例 #13
0
 public abstract PhysicsActor AddAvatar(PhysicsVector position);
コード例 #14
0
 public abstract void AddForce(PhysicsVector force);
コード例 #15
0
 public override void SetMomentum(PhysicsVector momentum)
 {
     return;
 }
コード例 #16
0
 public override void AddForce(PhysicsVector force)
 {
     return;
 }
コード例 #17
0
 public override PhysicsActor AddPrim(PhysicsVector position, PhysicsVector size)
 {
     PhysicsVector pos = new PhysicsVector();
     pos.X = position.X;
     pos.Y = position.Y;
     pos.Z = position.Z;
     PhysicsVector siz = new PhysicsVector();
     siz.X = size.X;
     siz.Y = size.Y;
     siz.Z = size.Z;
     return new OdePrim();
 }
コード例 #18
0
 public override PhysicsActor AddAvatar(PhysicsVector position)
 {
     BasicActor act = new BasicActor();
     act.Position = position;
     _actors.Add(act);
     return act;
 }
コード例 #19
0
 public override PhysicsActor AddAvatar(PhysicsVector position)
 {
     OpenSim.Framework.Console.MainConsole.Instance.WriteLine("NullPhysicsScene : AddAvatar({0})", position);
     return(PhysicsActor.Null);
 }
コード例 #20
0
 public override PhysicsActor AddAvatar(PhysicsVector position)
 {
     OpenSim.Framework.Console.MainConsole.Instance.WriteLine("NullPhysicsScene : AddAvatar({0})", position);
     return PhysicsActor.Null;
 }
コード例 #21
0
ファイル: World.cs プロジェクト: BackupTheBerlios/ulife-svn
 public void AddViewerAgent(SimClient agentClient)
 {
     try
     {
         OpenSim.Framework.Console.MainConsole.Instance.WriteLine("World.cs:AddViewerAgent() - Creating new avatar for remote viewer agent");
         Avatar newAvatar = new Avatar(agentClient, this, m_regionName, m_clientThreads, m_regionHandle, true, 20);
         OpenSim.Framework.Console.MainConsole.Instance.WriteLine("World.cs:AddViewerAgent() - Adding new avatar to world");
         OpenSim.Framework.Console.MainConsole.Instance.WriteLine("World.cs:AddViewerAgent() - Starting RegionHandshake ");
         newAvatar.SendRegionHandshake(this);
         if (!agentClient.m_child)
         {
             PhysicsVector pVec = new PhysicsVector(newAvatar.Pos.X, newAvatar.Pos.Y, newAvatar.Pos.Z);
             lock (this.LockPhysicsEngine)
             {
                 newAvatar.PhysActor = this.phyScene.AddAvatar(pVec);
             }
         }
         lock (Entities)
         {
             this.Entities.Add(agentClient.AgentID, newAvatar);
         }
         lock (Avatars)
         {
             this.Avatars.Add(agentClient.AgentID, newAvatar);
         }
     }
     catch (Exception e)
     {
         OpenSim.Framework.Console.MainConsole.Instance.WriteLine("World.cs: AddViewerAgent() - Failed with exception " + e.ToString());
     }
 }
コード例 #22
0
 public override PhysicsActor AddPrim(PhysicsVector position, PhysicsVector size)
 {
     OpenSim.Framework.Console.MainConsole.Instance.WriteLine("NullPhysicsScene : AddPrim({0},{1})", position, size);
     return(PhysicsActor.Null);
 }
コード例 #23
0
 public override PhysicsActor AddPrim(PhysicsVector position, PhysicsVector size)
 {
     return null;
 }
コード例 #24
0
ファイル: Avatar.cs プロジェクト: BackupTheBerlios/ulife-svn
 public override void addForces()
 {
     lock (this.forcesList)
     {
         if (this.forcesList.Count > 0)
         {
             for (int i = 0; i < this.forcesList.Count; i++)
             {
                 NewForce force = this.forcesList[i];
                 PhysicsVector phyVector = new PhysicsVector(force.X, force.Y, force.Z);
                 lock (m_world.LockPhysicsEngine)
                 {
                     this._physActor.Velocity = phyVector;
                 }
                 this.updateflag = true;
                 this.velocity = new LLVector3(force.X, force.Y, force.Z); //shouldn't really be doing this
                 // but as we are setting the velocity (rather than using real forces) at the moment it is okay.
             }
             for (int i = 0; i < this.forcesList.Count; i++)
             {
                 this.forcesList.RemoveAt(0);
             }
         }
     }
 }
コード例 #25
0
 public PhysXPrim(NxActor prim)
 {
     _velocity = new PhysicsVector();
     _position = new PhysicsVector();
     _acceleration = new PhysicsVector();
     _prim = prim;
 }
コード例 #26
0
 public abstract void AddForce(PhysicsVector force);
コード例 #27
0
 public void SetAcceleration(PhysicsVector accel)
 {
     this._acceleration = accel;
 }
コード例 #28
0
 public abstract void SetMomentum(PhysicsVector momentum);
コード例 #29
0
 public override PhysicsActor AddAvatar(PhysicsVector position)
 {
     Vec3 pos = new Vec3();
     pos.X = position.X;
     pos.Y = position.Y;
     pos.Z = position.Z;
     PhysXCharacter act = new PhysXCharacter( scene.AddCharacter(pos));
     act.Position = position;
     _characters.Add(act);
     return act;
 }
コード例 #30
0
 public void Move(float timeStep)
 {
     PhysicsVector vec = new PhysicsVector();
     vec.X = this._velocity.X * timeStep;
     vec.Y = this._velocity.Y * timeStep;
     if (flying)
     {
         vec.Z = (this._velocity.Z + 0.5f) * timeStep;
     }
     d.BodySetLinearVel(this.BoundingCapsule, vec.X, vec.Y, vec.Z);
 }
コード例 #31
0
 public OdePrim()
 {
     _velocity = new PhysicsVector();
     _position = new PhysicsVector();
     _acceleration = new PhysicsVector();
 }
コード例 #32
0
 public abstract PhysicsActor AddAvatar(PhysicsVector position);