C# Class Project2.PhysicsSystem

This class encapsulates the physics system for a given world of physics bodies. A physics body is a (usually) non-drawn, relatively simple shape or mesh that contains properties (mass, inertia, etc) that the physics engine uses to resolve collisions and solve kinematics for. A physics body may be dynamic or static. A static body's position cannot be changed by the physics engine, but needs to be moved externally. A dynamic object's position will be affected by gravity and other forces and collisions, and does not get moved manually. Its position and orientation are queried externally and used to render representative objects/models on screen (usually more detailed than the physics mesh). This class is implemented as a GameSystem, meaning that once it is registered, it is automagically updated at the correct frequency.
Inheritance: SharpDX.Toolkit.GameSystem
Mostra file Open project: nuclearpidgeon/graphicsproj2 Class Usage Examples

Public Properties

Property Type Description
World Jitter.JitterWorld

Protected Properties

Property Type Description
game Project2Game

Public Methods

Method Description
BuildConvexHullShape ( SharpDX.Toolkit.Graphics.Model model ) : Jitter.Collision.Shapes.ConvexHullShape
BuildOctree ( SharpDX.Toolkit.Graphics.Model model ) : Jitter.Collision.Octree
BuildTriangleMeshShape ( SharpDX.Toolkit.Graphics.Model model ) : Jitter.Collision.Shapes.TriangleMeshShape
OnManipulationCompleted ( GestureRecognizer sender, ManipulationCompletedEventArgs args ) : void

Releases physics body (if applicable) on release of pointer, either mouse button up or removal of touch input

OnManipulationStarted ( GestureRecognizer sender, ManipulationStartedEventArgs args ) : void

Handle initial starting movement of touch/mouse pointer

OnManipulationUpdated ( GestureRecognizer sender, ManipulationUpdatedEventArgs args ) : void

Handle touch/mouse manipulation updated

PhysicsSystem ( Project2Game game ) : System
Tapped ( GestureRecognizer sender, TappedEventArgs args ) : void
Update ( SharpDX.Toolkit.GameTime time ) : void

This method is automagically called as part of GameSystem to update the physics simulation. Physics system interpolates current running time with at max 1 itteration of the system over 1/60 seconds (by default).

addTestBox ( System.Vector3 position, float mass ) : void

Adds a unit sized test cube to the physics world. Deprecated.

toJMatrix ( System.Matrix matrix ) : Jitter.LinearMath.JMatrix

Helper method to interface SharpDX matrix class with Jitter matrix class.

toJVector ( System.Vector3 vector ) : Jitter.LinearMath.JVector

Helper method to interface SharpDX vector class with Jitter vector class.

toMatrix ( Jitter.LinearMath.JMatrix matrix ) : System.Matrix

Helper method to interface SharpDX matrix class with Jitter matrix class.

toVector3 ( Jitter.LinearMath.JVector vector ) : System.Vector3

Helper method to interface SharpDX vector class with Jitter vector class.

Private Methods

Method Description
AddBody ( RigidBody rigidBody ) : void
ExtractVertices ( SharpDX.Toolkit.Graphics.Model model ) : List
HandleGrabBody ( System.Vector2 location ) : void

Searches for physics objects to "grab" based on in input location.

HandleMoveGrabBody ( System.Vector2 location ) : void

Moves physics body based on input (touch or mouse) movement location.

RayTo ( System.Vector2 mousePos ) : Ray

Takes a screen space point and maps it to a unit length ray vector in world space.

RaycastCallback ( RigidBody body, Jitter.LinearMath.JVector normal, float fraction ) : bool

Callback for Jitter Raycast method to check if an encountered physics object is static or the player (don't pick up if so..)

RemoveBody ( RigidBody rigidBody ) : void

Method Details

BuildConvexHullShape() public static method

public static BuildConvexHullShape ( SharpDX.Toolkit.Graphics.Model model ) : Jitter.Collision.Shapes.ConvexHullShape
model SharpDX.Toolkit.Graphics.Model
return Jitter.Collision.Shapes.ConvexHullShape

BuildOctree() public static method

public static BuildOctree ( SharpDX.Toolkit.Graphics.Model model ) : Jitter.Collision.Octree
model SharpDX.Toolkit.Graphics.Model
return Jitter.Collision.Octree

BuildTriangleMeshShape() public static method

public static BuildTriangleMeshShape ( SharpDX.Toolkit.Graphics.Model model ) : Jitter.Collision.Shapes.TriangleMeshShape
model SharpDX.Toolkit.Graphics.Model
return Jitter.Collision.Shapes.TriangleMeshShape

OnManipulationCompleted() public method

Releases physics body (if applicable) on release of pointer, either mouse button up or removal of touch input
public OnManipulationCompleted ( GestureRecognizer sender, ManipulationCompletedEventArgs args ) : void
sender Windows.UI.Input.GestureRecognizer
args Windows.UI.Input.ManipulationCompletedEventArgs
return void

OnManipulationStarted() public method

Handle initial starting movement of touch/mouse pointer
public OnManipulationStarted ( GestureRecognizer sender, ManipulationStartedEventArgs args ) : void
sender Windows.UI.Input.GestureRecognizer
args Windows.UI.Input.ManipulationStartedEventArgs
return void

OnManipulationUpdated() public method

Handle touch/mouse manipulation updated
public OnManipulationUpdated ( GestureRecognizer sender, ManipulationUpdatedEventArgs args ) : void
sender Windows.UI.Input.GestureRecognizer
args Windows.UI.Input.ManipulationUpdatedEventArgs
return void

PhysicsSystem() public method

public PhysicsSystem ( Project2Game game ) : System
game Project2Game
return System

Tapped() public method

public Tapped ( GestureRecognizer sender, TappedEventArgs args ) : void
sender Windows.UI.Input.GestureRecognizer
args Windows.UI.Input.TappedEventArgs
return void

Update() public method

This method is automagically called as part of GameSystem to update the physics simulation. Physics system interpolates current running time with at max 1 itteration of the system over 1/60 seconds (by default).
public Update ( SharpDX.Toolkit.GameTime time ) : void
time SharpDX.Toolkit.GameTime
return void

addTestBox() public method

Adds a unit sized test cube to the physics world. Deprecated.
public addTestBox ( System.Vector3 position, float mass ) : void
position System.Vector3
mass float
return void

toJMatrix() public static method

Helper method to interface SharpDX matrix class with Jitter matrix class.
public static toJMatrix ( System.Matrix matrix ) : Jitter.LinearMath.JMatrix
matrix System.Matrix
return Jitter.LinearMath.JMatrix

toJVector() public static method

Helper method to interface SharpDX vector class with Jitter vector class.
public static toJVector ( System.Vector3 vector ) : Jitter.LinearMath.JVector
vector System.Vector3
return Jitter.LinearMath.JVector

toMatrix() public static method

Helper method to interface SharpDX matrix class with Jitter matrix class.
public static toMatrix ( Jitter.LinearMath.JMatrix matrix ) : System.Matrix
matrix Jitter.LinearMath.JMatrix
return System.Matrix

toVector3() public static method

Helper method to interface SharpDX vector class with Jitter vector class.
public static toVector3 ( Jitter.LinearMath.JVector vector ) : System.Vector3
vector Jitter.LinearMath.JVector
return System.Vector3

Property Details

World public_oe property

public JitterWorld,Jitter World
return Jitter.JitterWorld

game protected_oe property

protected Project2Game,Project2 game
return Project2Game