C# Класс Universe.Physics.OpenDynamicsEngine.ODEPhysicsScene

Наследование: Universe.Framework.Physics.PhysicsScene
Показать файл Открыть проект Примеры использования класса

Открытые свойства

Свойство Тип Описание
AllowAvGravity bool
AllowAvsToEscapeGravity bool
AllowUnderwaterPhysics bool
AvGravityHeight int
MeshSculptphysicalLOD float
ODE_STEPSIZE float
PID_D float
PID_P float
RegionTerrain System.IntPtr
SimulationChangesQueue ConcurrentQueue
WorldExtents System.Vector2
actor_name_map PhysicsActor>.Dictionary
avCapRadius float
avDensity float
avHeightFudgeFactor float
avMovementDivisorRun float
avMovementDivisorWalk float
bodyFramesAutoDisable int
forceSimplePrimMeshing bool
geomContactPointsStartthrottle int
geomCrossingFailuresBeforeOutofbounds int
gravityVector System.Vector3
gravityVectorNormalized System.Vector3
gravityx float
gravityy float
gravityz float
m_AvFlySpeed float
m_allowJump bool
m_flightCeilingHeight float
m_preJumpForceMultiplierX float
m_preJumpForceMultiplierY float
m_preJumpForceMultiplierZ float
m_preJumpTime int
m_useFlightCeilingHeight bool
m_usepreJump bool
maximumMassObject float
meshSculptLOD float
meshSculptedPrim bool
mesher IMesher
space System.IntPtr
staticPrimspace ].IntPtr[
world System.IntPtr

Защищенные свойства (Protected)

Свойство Тип Описание
AvatarContactBounce float
ContactgeomsArray System.IntPtr
DoPhyWind bool
FrictionMovementMultiplier float
FrictionScale float
GlobalContactsArray System.IntPtr
GridSpaceScaleBits int
HashspaceHigh int
HashspaceLow int
IsLocked bool
ODETerrainHeightFieldHeights float[]
PANull Universe.Framework.Physics.PhysicsActor
RemoveQueue ConcurrentQueue
TerrainHeightFieldHeights short[]
WaterHeight double
_activeprims HashSet
_activeprimsLock object
_characters HashSet
_collisionEventDictionary PhysicsActor>.ConcurrentDictionary
_collisionEventListLock object
_contactcountLock object
_perloopContact List
_prims HashSet
contactgroup System.IntPtr
contactsPerCollision int
contactsurfacelayer float
m_channel ITerrainChannel
m_config IConfigSource
m_currentmaxContactsbeforedeath int
m_filterCollisions bool
m_global_contactcount int
m_physicsiterations int
m_rayCastManager ODERayCastRequestManager
m_region Universe.Framework.SceneInfo.RegionInfo
m_scene IScene
m_timeDilation float
m_windModule IWindModule
minimumGroundFlightOffset float
nearCallback d.NearCallback
newGlobalcontact d.Contact
nspacesPerSideX int
nspacesPerSideY int
step_time float

Открытые методы

Метод Описание
AddAvatar ( string avName, System.Vector3 position, Quaternion rotation, System.Vector3 size, bool isFlying, uint localID, UUID UUID ) : PhysicsActor
AddCollisionEventReporting ( PhysicsActor obj ) : void
AddGravityPoint ( bool isApplyingForces, System.Vector3 position, float forceX, float forceY, float forceZ, float gravForce, float radius, int identifier ) : void
AddODECollision ( d curContact, PhysicsActor p1, PhysicsActor p2, IntPtr b1, IntPtr b2, ContactPoint maxDepthContact, int &NotSkipedCount ) : void
AddPrimShape ( UUID primID, uint localID, string name, byte physicsType, PrimitiveBaseShape shape, System.Vector3 position, System.Vector3 size, Quaternion rotation, bool isPhysical, int material, float friction, float restitution, float gravityMultiplier, float density ) : PhysicsActor
AddSimulationChange ( NoParam del ) : void

Called to queue a change to a prim to use in place of old taint mechanism so changes do have a time sequence

CalculateGravity ( float mass, System.Vector3 position, bool allowNormalGravity, float gravityModifier, System.Vector3 &forceVector ) : void
CalculateSpaceArrayItemFromPos ( System.Vector3 pos ) : int[]

Holds the space allocation logic

CalculateSpaceForGeom ( System.Vector3 pos ) : IntPtr

Calculates the space the prim should be in by its position

Collision_optimized ( float timeStep ) : void

This is our collision testing routine in ODE

Dispose ( ) : void
GetContactParam ( float mu, float AvatarContactBounce, d &newGlobalcontact ) : void
GetGravityForce ( ) : float[]
GetTerrainHeightAtXY ( float x, float y ) : float
GetTopColliders ( ) : float>.Dictionary
GetWaterLevel ( float x, float y ) : double
Initialize ( IMesher meshmerizer, IScene scene ) : void
IsNearBody ( IntPtr gspace, IntPtr g1, IntPtr g2 ) : void

This is our near callback. A geometry is near a body

ODEPhysicsScene ( ) : System

Initializes the scene Sets many properties that ODE requires to be stable These settings need to be tweaked 'exactly' right or weird stuff happens.

PostInitialize ( IConfigSource config ) : void
RaycastWorld ( System.Vector3 position, System.Vector3 direction, float length, int Count ) : List
RaycastWorld ( System.Vector3 position, System.Vector3 direction, float length, RaycastCallback retMethod ) : void
RaycastWorld ( System.Vector3 position, System.Vector3 direction, float length, int Count, RayCallback retMethod ) : void
RecalculateSpaceForGeom ( IntPtr geom, System.Vector3 pos, IntPtr currentspace ) : IntPtr

Called when a static prim moves. Allocates a space for the prim based on its position

RemCollisionEventReporting ( PhysicsActor obj ) : void
RemoveAvatar ( PhysicsActor actor ) : void
RemovePrim ( PhysicsActor prim ) : void
SetGravityForce ( bool enabled, float forceX, float forceY, float forceZ ) : void

Sets gravity parameters in the single axis, if you want a point, use the gravity point pieces

SetTerrain ( ITerrainChannel channel, short heightMap ) : void
SetWaterLevel ( double height, short map ) : void
Simulate ( float timeElapsed ) : void

This is our main simulate loop It's thread locked by a Mutex in the scene. It holds Collisions, it instructs ODE to step through the physical reactions It moves the objects around in memory It calls the methods that report back to the object owners.. (scenepresence, SceneObjectGroup)

SupportsRayCast ( ) : bool
WhichSpaceAmIIn ( System.Vector3 pos ) : string

Debug space message for printing the space that a prim/avatar is in.

command ( int cmd ) : void
start ( int unused ) : void
step ( int pause ) : void

Приватные методы

Метод Описание
AddActivePrim ( ODEPrim activatePrim ) : void
AddCharacter ( ODECharacter chr ) : void

Adds a character to the list of avatars in the scene Internally locked, as it is called only in the Simulation Changes loop

BadCharacter ( ODECharacter chr ) : void
BadPrim ( ODEPrim universeODEPrim ) : void
CheckDupe ( d contactGeom, int atype ) : bool
Collision_accounting_events ( PhysicsActor p1, PhysicsActor p2, ContactPoint contact ) : void
CreateContacJoint ( d geom ) : IntPtr
GetCurContactGeom ( int index, d &newcontactgeom ) : bool
NeedsMeshing ( ODEPrim prim, byte physicalType ) : bool

Routine to figure out if we need to mesh this prim with our mesher

RemoveActivePrim ( ODEPrim deactivatePrim ) : void
RemoveCharacter ( ODECharacter chr ) : void

Removes a character from the list of avatars currently in the scene Internally locked, as it is called only in the Simulation Changes loop

RemovePrimThreadLocked ( ODEPrim prim ) : void

This is called from within simulate but outside the locked portion We need to do our own locking here Essentially, we need to remove the prim from our space segment, whatever segment it's in. If there are no more prim in the segment, we need to empty (spacedestroy)the segment and reclaim memory that the space was using.

Описание методов

AddAvatar() публичный Метод

public AddAvatar ( string avName, System.Vector3 position, Quaternion rotation, System.Vector3 size, bool isFlying, uint localID, UUID UUID ) : PhysicsActor
avName string
position System.Vector3
rotation Quaternion
size System.Vector3
isFlying bool
localID uint
UUID UUID
Результат Universe.Framework.Physics.PhysicsActor

AddCollisionEventReporting() публичный Метод

public AddCollisionEventReporting ( PhysicsActor obj ) : void
obj Universe.Framework.Physics.PhysicsActor
Результат void

AddGravityPoint() публичный Метод

public AddGravityPoint ( bool isApplyingForces, System.Vector3 position, float forceX, float forceY, float forceZ, float gravForce, float radius, int identifier ) : void
isApplyingForces bool
position System.Vector3
forceX float
forceY float
forceZ float
gravForce float
radius float
identifier int
Результат void

AddODECollision() публичный Метод

public AddODECollision ( d curContact, PhysicsActor p1, PhysicsActor p2, IntPtr b1, IntPtr b2, ContactPoint maxDepthContact, int &NotSkipedCount ) : void
curContact d
p1 Universe.Framework.Physics.PhysicsActor
p2 Universe.Framework.Physics.PhysicsActor
b1 System.IntPtr
b2 System.IntPtr
maxDepthContact Universe.Framework.Physics.ContactPoint
NotSkipedCount int
Результат void

AddPrimShape() публичный Метод

public AddPrimShape ( UUID primID, uint localID, string name, byte physicsType, PrimitiveBaseShape shape, System.Vector3 position, System.Vector3 size, Quaternion rotation, bool isPhysical, int material, float friction, float restitution, float gravityMultiplier, float density ) : PhysicsActor
primID UUID
localID uint
name string
physicsType byte
shape PrimitiveBaseShape
position System.Vector3
size System.Vector3
rotation Quaternion
isPhysical bool
material int
friction float
restitution float
gravityMultiplier float
density float
Результат Universe.Framework.Physics.PhysicsActor

AddSimulationChange() публичный Метод

Called to queue a change to a prim to use in place of old taint mechanism so changes do have a time sequence
public AddSimulationChange ( NoParam del ) : void
del NoParam
Результат void

CalculateGravity() публичный Метод

public CalculateGravity ( float mass, System.Vector3 position, bool allowNormalGravity, float gravityModifier, System.Vector3 &forceVector ) : void
mass float
position System.Vector3
allowNormalGravity bool
gravityModifier float
forceVector System.Vector3
Результат void

CalculateSpaceArrayItemFromPos() публичный Метод

Holds the space allocation logic
public CalculateSpaceArrayItemFromPos ( System.Vector3 pos ) : int[]
pos System.Vector3
Результат int[]

CalculateSpaceForGeom() публичный Метод

Calculates the space the prim should be in by its position
public CalculateSpaceForGeom ( System.Vector3 pos ) : IntPtr
pos System.Vector3
Результат System.IntPtr

Collision_optimized() публичный Метод

This is our collision testing routine in ODE
public Collision_optimized ( float timeStep ) : void
timeStep float
Результат void

Dispose() публичный Метод

public Dispose ( ) : void
Результат void

GetContactParam() публичный Метод

public GetContactParam ( float mu, float AvatarContactBounce, d &newGlobalcontact ) : void
mu float
AvatarContactBounce float
newGlobalcontact d
Результат void

GetGravityForce() публичный Метод

public GetGravityForce ( ) : float[]
Результат float[]

GetTerrainHeightAtXY() публичный Метод

public GetTerrainHeightAtXY ( float x, float y ) : float
x float
y float
Результат float

GetTopColliders() публичный Метод

public GetTopColliders ( ) : float>.Dictionary
Результат float>.Dictionary

GetWaterLevel() публичный Метод

public GetWaterLevel ( float x, float y ) : double
x float
y float
Результат double

Initialize() публичный Метод

public Initialize ( IMesher meshmerizer, IScene scene ) : void
meshmerizer IMesher
scene IScene
Результат void

IsNearBody() публичный Метод

This is our near callback. A geometry is near a body
public IsNearBody ( IntPtr gspace, IntPtr g1, IntPtr g2 ) : void
gspace System.IntPtr The space that contains the geoms. Remember, spaces are also geoms
g1 System.IntPtr a geometry or space
g2 System.IntPtr another geometry or space
Результат void

ODEPhysicsScene() публичный Метод

Initializes the scene Sets many properties that ODE requires to be stable These settings need to be tweaked 'exactly' right or weird stuff happens.
public ODEPhysicsScene ( ) : System
Результат System

PostInitialize() публичный Метод

public PostInitialize ( IConfigSource config ) : void
config IConfigSource
Результат void

RaycastWorld() публичный Метод

public RaycastWorld ( System.Vector3 position, System.Vector3 direction, float length, int Count ) : List
position System.Vector3
direction System.Vector3
length float
Count int
Результат List

RaycastWorld() публичный Метод

public RaycastWorld ( System.Vector3 position, System.Vector3 direction, float length, RaycastCallback retMethod ) : void
position System.Vector3
direction System.Vector3
length float
retMethod RaycastCallback
Результат void

RaycastWorld() публичный Метод

public RaycastWorld ( System.Vector3 position, System.Vector3 direction, float length, int Count, RayCallback retMethod ) : void
position System.Vector3
direction System.Vector3
length float
Count int
retMethod RayCallback
Результат void

RecalculateSpaceForGeom() публичный Метод

Called when a static prim moves. Allocates a space for the prim based on its position
public RecalculateSpaceForGeom ( IntPtr geom, System.Vector3 pos, IntPtr currentspace ) : IntPtr
geom System.IntPtr The pointer to the geom that moved
pos System.Vector3 The position that the geom moved to
currentspace System.IntPtr A pointer to the space it was in before it was moved.
Результат System.IntPtr

RemCollisionEventReporting() публичный Метод

public RemCollisionEventReporting ( PhysicsActor obj ) : void
obj Universe.Framework.Physics.PhysicsActor
Результат void

RemoveAvatar() публичный Метод

public RemoveAvatar ( PhysicsActor actor ) : void
actor Universe.Framework.Physics.PhysicsActor
Результат void

RemovePrim() публичный Метод

public RemovePrim ( PhysicsActor prim ) : void
prim Universe.Framework.Physics.PhysicsActor
Результат void

SetGravityForce() публичный Метод

Sets gravity parameters in the single axis, if you want a point, use the gravity point pieces
public SetGravityForce ( bool enabled, float forceX, float forceY, float forceZ ) : void
enabled bool Enable one axis gravity (disables point gravity)
forceX float
forceY float
forceZ float
Результат void

SetTerrain() публичный Метод

public SetTerrain ( ITerrainChannel channel, short heightMap ) : void
channel ITerrainChannel
heightMap short
Результат void

SetWaterLevel() публичный Метод

public SetWaterLevel ( double height, short map ) : void
height double
map short
Результат void

Simulate() публичный Метод

This is our main simulate loop It's thread locked by a Mutex in the scene. It holds Collisions, it instructs ODE to step through the physical reactions It moves the objects around in memory It calls the methods that report back to the object owners.. (scenepresence, SceneObjectGroup)
public Simulate ( float timeElapsed ) : void
timeElapsed float
Результат void

SupportsRayCast() публичный Метод

public SupportsRayCast ( ) : bool
Результат bool

WhichSpaceAmIIn() публичный Метод

Debug space message for printing the space that a prim/avatar is in.
public WhichSpaceAmIIn ( System.Vector3 pos ) : string
pos System.Vector3
Результат string

command() публичный Метод

public command ( int cmd ) : void
cmd int
Результат void

start() публичный Метод

public start ( int unused ) : void
unused int
Результат void

step() публичный Метод

public step ( int pause ) : void
pause int
Результат void

Описание свойств

AllowAvGravity публичное свойство

public bool AllowAvGravity
Результат bool

AllowAvsToEscapeGravity публичное свойство

public bool AllowAvsToEscapeGravity
Результат bool

AllowUnderwaterPhysics публичное свойство

public bool AllowUnderwaterPhysics
Результат bool

AvGravityHeight публичное свойство

public int AvGravityHeight
Результат int

AvatarContactBounce защищенное свойство

protected float AvatarContactBounce
Результат float

ContactgeomsArray защищенное свойство

protected IntPtr,System ContactgeomsArray
Результат System.IntPtr

DoPhyWind защищенное свойство

protected bool DoPhyWind
Результат bool

FrictionMovementMultiplier защищенное свойство

protected float FrictionMovementMultiplier
Результат float

FrictionScale защищенное свойство

protected float FrictionScale
Результат float

GlobalContactsArray защищенное свойство

protected IntPtr,System GlobalContactsArray
Результат System.IntPtr

GridSpaceScaleBits защищенное свойство

protected int GridSpaceScaleBits
Результат int

HashspaceHigh защищенное свойство

protected int HashspaceHigh
Результат int

HashspaceLow защищенное свойство

protected int HashspaceLow
Результат int

IsLocked защищенное свойство

protected bool IsLocked
Результат bool

MeshSculptphysicalLOD публичное свойство

public float MeshSculptphysicalLOD
Результат float

ODETerrainHeightFieldHeights защищенное свойство

protected float[] ODETerrainHeightFieldHeights
Результат float[]

ODE_STEPSIZE публичное свойство

public float ODE_STEPSIZE
Результат float

PANull защищенное свойство

protected PhysicsActor,Universe.Framework.Physics PANull
Результат Universe.Framework.Physics.PhysicsActor

PID_D публичное свойство

public float PID_D
Результат float

PID_P публичное свойство

public float PID_P
Результат float

RegionTerrain публичное свойство

public IntPtr,System RegionTerrain
Результат System.IntPtr

RemoveQueue защищенное свойство

protected ConcurrentQueue RemoveQueue
Результат ConcurrentQueue

SimulationChangesQueue публичное свойство

public ConcurrentQueue SimulationChangesQueue
Результат ConcurrentQueue

TerrainHeightFieldHeights защищенное свойство

protected short[] TerrainHeightFieldHeights
Результат short[]

WaterHeight защищенное свойство

protected double WaterHeight
Результат double

WorldExtents публичное свойство

public Vector2,System WorldExtents
Результат System.Vector2

_activeprims защищенное свойство

protected HashSet _activeprims
Результат HashSet

_activeprimsLock защищенное свойство

protected object _activeprimsLock
Результат object

_characters защищенное свойство

protected HashSet _characters
Результат HashSet

_collisionEventDictionary защищенное свойство

protected ConcurrentDictionary _collisionEventDictionary
Результат PhysicsActor>.ConcurrentDictionary

_collisionEventListLock защищенное свойство

protected object _collisionEventListLock
Результат object

_contactcountLock защищенное свойство

protected object _contactcountLock
Результат object

_perloopContact защищенное свойство

protected List _perloopContact
Результат List

_prims защищенное свойство

protected HashSet _prims
Результат HashSet

actor_name_map публичное свойство

public Dictionary actor_name_map
Результат PhysicsActor>.Dictionary

avCapRadius публичное свойство

public float avCapRadius
Результат float

avDensity публичное свойство

public float avDensity
Результат float

avHeightFudgeFactor публичное свойство

public float avHeightFudgeFactor
Результат float

avMovementDivisorRun публичное свойство

public float avMovementDivisorRun
Результат float

avMovementDivisorWalk публичное свойство

public float avMovementDivisorWalk
Результат float

bodyFramesAutoDisable публичное свойство

public int bodyFramesAutoDisable
Результат int

contactgroup защищенное свойство

protected IntPtr,System contactgroup
Результат System.IntPtr

contactsPerCollision защищенное свойство

protected int contactsPerCollision
Результат int

contactsurfacelayer защищенное свойство

protected float contactsurfacelayer
Результат float

forceSimplePrimMeshing публичное свойство

public bool forceSimplePrimMeshing
Результат bool

geomContactPointsStartthrottle публичное свойство

public int geomContactPointsStartthrottle
Результат int

geomCrossingFailuresBeforeOutofbounds публичное свойство

public int geomCrossingFailuresBeforeOutofbounds
Результат int

gravityVector публичное свойство

public Vector3,System gravityVector
Результат System.Vector3

gravityVectorNormalized публичное свойство

public Vector3,System gravityVectorNormalized
Результат System.Vector3

gravityx публичное свойство

public float gravityx
Результат float

gravityy публичное свойство

public float gravityy
Результат float

gravityz публичное свойство

public float gravityz
Результат float

m_AvFlySpeed публичное свойство

public float m_AvFlySpeed
Результат float

m_allowJump публичное свойство

public bool m_allowJump
Результат bool

m_channel защищенное свойство

protected ITerrainChannel m_channel
Результат ITerrainChannel

m_config защищенное свойство

protected IConfigSource m_config
Результат IConfigSource

m_currentmaxContactsbeforedeath защищенное свойство

protected int m_currentmaxContactsbeforedeath
Результат int

m_filterCollisions защищенное свойство

protected bool m_filterCollisions
Результат bool

m_flightCeilingHeight публичное свойство

public float m_flightCeilingHeight
Результат float

m_global_contactcount защищенное свойство

protected int m_global_contactcount
Результат int

m_physicsiterations защищенное свойство

protected int m_physicsiterations
Результат int

m_preJumpForceMultiplierX публичное свойство

public float m_preJumpForceMultiplierX
Результат float

m_preJumpForceMultiplierY публичное свойство

public float m_preJumpForceMultiplierY
Результат float

m_preJumpForceMultiplierZ публичное свойство

public float m_preJumpForceMultiplierZ
Результат float

m_preJumpTime публичное свойство

public int m_preJumpTime
Результат int

m_rayCastManager защищенное свойство

protected ODERayCastRequestManager,Universe.Physics.OpenDynamicsEngine m_rayCastManager
Результат ODERayCastRequestManager

m_region защищенное свойство

protected RegionInfo,Universe.Framework.SceneInfo m_region
Результат Universe.Framework.SceneInfo.RegionInfo

m_scene защищенное свойство

protected IScene m_scene
Результат IScene

m_timeDilation защищенное свойство

protected float m_timeDilation
Результат float

m_useFlightCeilingHeight публичное свойство

public bool m_useFlightCeilingHeight
Результат bool

m_usepreJump публичное свойство

public bool m_usepreJump
Результат bool

m_windModule защищенное свойство

protected IWindModule m_windModule
Результат IWindModule

maximumMassObject публичное свойство

public float maximumMassObject
Результат float

meshSculptLOD публичное свойство

public float meshSculptLOD
Результат float

meshSculptedPrim публичное свойство

public bool meshSculptedPrim
Результат bool

mesher публичное свойство

public IMesher mesher
Результат IMesher

minimumGroundFlightOffset защищенное свойство

protected float minimumGroundFlightOffset
Результат float

nearCallback защищенное свойство

protected d.NearCallback nearCallback
Результат d.NearCallback

newGlobalcontact защищенное свойство

protected d.Contact,Universe.Physics.OpenDynamicsEngine newGlobalcontact
Результат d.Contact

nspacesPerSideX защищенное свойство

protected int nspacesPerSideX
Результат int

nspacesPerSideY защищенное свойство

protected int nspacesPerSideY
Результат int

space публичное свойство

public IntPtr,System space
Результат System.IntPtr

staticPrimspace публичное свойство

public IntPtr[,] staticPrimspace
Результат ].IntPtr[

step_time защищенное свойство

protected float step_time
Результат float

world публичное свойство

public IntPtr,System world
Результат System.IntPtr