OpenSim
|
Public Member Functions | |
ODEScene (Scene pscene, IConfigSource psourceconfig, string pname, bool pOSOdeLib) | |
void | RegionLoaded () |
void | AddCollisionEventReporting (PhysicsActor obj) |
Add actor to the list that should receive collision events in the simulate loop. More... | |
void | RemoveCollisionEventReporting (PhysicsActor obj) |
Remove actor from the list that should receive collision events in the simulate loop. More... | |
override PhysicsActor | AddAvatar (string avName, Vector3 position, Vector3 velocity, Vector3 size, bool isFlying) |
Add an avatar More... | |
override PhysicsActor | AddAvatar (uint localID, string avName, Vector3 position, Vector3 size, float feetOffset, bool isFlying) |
void | AddCharacter (OdeCharacter chr) |
void | RemoveCharacter (OdeCharacter chr) |
void | BadCharacter (OdeCharacter chr) |
override void | RemoveAvatar (PhysicsActor actor) |
Remove an avatar. More... | |
void | addActivePrim (OdePrim activatePrim) |
void | addActiveGroups (OdePrim activatePrim) |
override PhysicsActor | AddPrimShape (string primName, PrimitiveBaseShape pbs, Vector3 position, Vector3 size, Quaternion rotation, bool isPhysical, bool isPhantom, uint localid) |
override PhysicsActor | AddPrimShape (string primName, PrimitiveBaseShape pbs, Vector3 position, Vector3 size, Quaternion rotation, bool isPhysical, uint localid) |
override PhysicsActor | AddPrimShape (string primName, PrimitiveBaseShape pbs, Vector3 position, Vector3 size, Quaternion rotation, bool isPhysical, bool isPhantom, byte shapeType, uint localid) |
void | remActivePrim (OdePrim deactivatePrim) |
void | remActiveGroup (OdePrim deactivatePrim) |
override void | RemovePrim (PhysicsActor prim) |
Remove a prim. More... | |
void | RemovePrimThreadLocked (OdePrim prim) |
bool | havePrim (OdePrim prm) |
bool | haveActor (PhysicsActor actor) |
IntPtr | MoveGeomToStaticSpace (IntPtr geom, Vector3 pos, IntPtr currentspace) |
Called when a static prim moves or becomes static Places the prim in a space one the static sub-spaces grid More... | |
IntPtr | calculateSpaceForGeom (Vector3 pos) |
Calculates the space the prim should be in by its position More... | |
void | AddChange (PhysicsActor actor, changes what, Object arg) |
Called to queue a change to a actor to use in place of old taint mechanism so changes do have a time sequence More... | |
override void | AddPhysicsActorTaint (PhysicsActor prim) |
Called after our prim properties are set Scale, position etc. We use this event queue like method to keep changes to the physical scene occuring in the threadlocked mutex This assures us that we have no race conditions More... | |
override void | ProcessPreSimulation () |
override float | Simulate (float reqTimeStep) |
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) More... | |
override void | GetResults () |
float | GetTerrainHeightAtXY (float x, float y) |
Vector3 | GetTerrainNormalAtXY (float x, float y) |
override void | SetTerrain (float[] heightMap) |
override void | CombineTerrain (float[] heightMap, Vector3 pOffset) |
void | SetTerrain (float[] heightMap, Vector3 pOffset) |
void | OriSetTerrain (float[] heightMap, Vector3 pOffset) |
void | OSSetTerrain (float[] heightMap, Vector3 pOffset) |
override void | DeleteTerrain () |
float | GetWaterLevel () |
override bool | SupportsCombining () |
override void | SetWaterLevel (float baseheight) |
override void | Dispose () |
override Dictionary< uint, float > | GetTopColliders () |
override bool | SupportsRayCast () |
True if the physics plugin supports raycasting against the physics scene More... | |
override void | RaycastWorld (Vector3 position, Vector3 direction, float length, RaycastCallback retMethod) |
Queue a raycast against the physics scene. The provided callback method will be called when the raycast is complete More... | |
override void | RaycastWorld (Vector3 position, Vector3 direction, float length, int Count, RayCallback retMethod) |
override List< ContactResult > | RaycastWorld (Vector3 position, Vector3 direction, float length, int Count) |
override bool | SupportsRaycastWorldFiltered () |
override object | RaycastWorld (Vector3 position, Vector3 direction, float length, int Count, RayFilterFlags filter) |
override List< ContactResult > | RaycastActor (PhysicsActor actor, Vector3 position, Vector3 direction, float length, int Count, RayFilterFlags flags) |
override List< ContactResult > | BoxProbe (Vector3 position, Vector3 size, Quaternion orientation, int Count, RayFilterFlags flags) |
override List< ContactResult > | SphereProbe (Vector3 position, float radius, int Count, RayFilterFlags flags) |
override List< ContactResult > | PlaneProbe (PhysicsActor actor, Vector4 plane, int Count, RayFilterFlags flags) |
override int | SitAvatar (PhysicsActor actor, Vector3 AbsolutePosition, Vector3 CameraPosition, Vector3 offset, Vector3 AvatarSize, SitAvatarCallback PhysicsSitResponse) |
Public Member Functions inherited from OpenSim.Region.PhysicsModules.SharedBase.PhysicsScene | |
virtual void | TriggerPhysicsBasedRestart () |
virtual PhysicsActor | AddAvatar (uint localID, string avName, Vector3 position, Vector3 velocity, Vector3 size, bool isFlying) |
Add an avatar More... | |
virtual PhysicsActor | AddAvatar (uint localID, string avName, Vector3 position, Vector3 size, bool isFlying) |
virtual PhysicsActor | AddPrimShape (string primName, PhysicsActor parent, PrimitiveBaseShape pbs, Vector3 position, uint localid, byte[] sdata) |
virtual PhysicsJoint | RequestJointCreation (string objectNameInScene, PhysicsJointType jointType, Vector3 position, Quaternion rotation, string parms, List< string > bodyNames, string trackedBodyName, Quaternion localRotation) |
virtual void | RequestJointDeletion (string objectNameInScene) |
virtual void | RemoveAllJointsConnectedToActorThreadLocked (PhysicsActor actor) |
virtual void | DumpJointInfo () |
virtual Vector3 | GetJointAnchor (PhysicsJoint joint) |
virtual Vector3 | GetJointAxis (PhysicsJoint joint) |
virtual Dictionary< string, float > | GetStats () |
Get statistics about this scene. More... | |
virtual void | Combine (PhysicsScene pScene, Vector3 offset, Vector3 extents) |
virtual void | UnCombine (PhysicsScene pScene) |
virtual object | Extension (string pFunct, params object[] pParams) |
Public Attributes | |
bool | m_OSOdeLib = false |
bool | m_suportCombine = false |
Scene | m_frameWorkScene = null |
float | AvatarFriction = 0 |
float | ODE_STEPSIZE = 0.020f |
float | HalfOdeStep = 0.01f |
int | odetimestepMS = 20 |
float | gravityx = 0f |
float | gravityy = 0f |
float | gravityz = -9.8f |
float | maximumMassObject = 10000.01f |
float | geomDefaultDensity = 10.0f |
float | maximumAngularVelocity = 12.0f |
float | maxAngVelocitySQ = 144f |
float | bodyPIDD = 35f |
float | bodyPIDG = 25 |
int | bodyFramesAutoDisable = 5 |
OpenSim.Framework.LocklessQueue < ODEchangeitem > | ChangesQueue = new OpenSim.Framework.LocklessQueue<ODEchangeitem>() |
Dictionary< IntPtr, PhysicsActor > | actor_name_map = new Dictionary<IntPtr, PhysicsActor>() |
ContactData[] | m_materialContactsData = new ContactData[8] |
IntPtr | world |
IntPtr | TopSpace |
IntPtr | ActiveSpace |
IntPtr | CharsSpace |
IntPtr | StaticSpace |
IntPtr | GroundSpace |
Object | OdeLock |
IMesher | mesher |
IConfigSource | m_config |
bool | physics_logging = false |
int | physics_logging_interval = 0 |
bool | physics_logging_append_existing_logfile = false |
Vector2 | WorldExtents = new Vector2((int)Constants.RegionSize, (int)Constants.RegionSize) |
ODEMeshWorker | m_meshWorker |
Static Public Attributes | |
static Object | SimulationLock |
Properties | |
override float | TimeDilation [get] |
override bool | SupportsNINJAJoints [get] |
override bool | IsThreaded [get] |
Properties inherited from OpenSim.Region.PhysicsModules.SharedBase.PhysicsScene | |
string | PhysicsSceneName [get, set] |
A unique identifying string for this instance of the physics engine. Useful in debug messages to distinguish one OdeScene instance from another. Usually set to include the region name that the physics engine is acting for. More... | |
string | EngineType [get, set] |
A string identifying the family of this physics engine. Most common values returned are "OpenDynamicsEngine" and "BulletSim" but others are possible. More... | |
static PhysicsScene | Null [get] |
RequestAssetDelegate | RequestAssetMethod [get, set] |
virtual float | TimeDilation [get] |
virtual bool | SupportsNINJAJoints [get] |
abstract bool | IsThreaded [get] |
Additional Inherited Members | |
Protected Member Functions inherited from OpenSim.Region.PhysicsModules.SharedBase.PhysicsScene | |
void | Initialise (RequestAssetDelegate m, float[] terrain, float waterHeight) |
virtual void | DoJointMoved (PhysicsJoint joint) |
virtual void | DoJointDeactivated (PhysicsJoint joint) |
virtual void | DoJointErrorMessage (PhysicsJoint joint, string message) |
Events inherited from OpenSim.Region.PhysicsModules.SharedBase.PhysicsScene | |
physicsCrash | OnPhysicsCrash |
JointMoved | OnJointMoved |
JointDeactivated | OnJointDeactivated |
JointErrorMessage | OnJointErrorMessage |
Definition at line 168 of file ODEScene.cs.
|
inline |
Definition at line 327 of file ODEScene.cs.
|
inline |
Definition at line 1312 of file ODEScene.cs.
|
inline |
Definition at line 1302 of file ODEScene.cs.
|
inlinevirtual |
Add an avatar
avName | |
position | |
velocity | |
size | |
isFlying |
Implements OpenSim.Region.PhysicsModules.SharedBase.PhysicsScene.
Definition at line 1243 of file ODEScene.cs.
|
inlinevirtual |
Reimplemented from OpenSim.Region.PhysicsModules.SharedBase.PhysicsScene.
Definition at line 1248 of file ODEScene.cs.
|
inline |
Called to queue a change to a actor to use in place of old taint mechanism so changes do have a time sequence
Definition at line 1526 of file ODEScene.cs.
|
inline |
Definition at line 1258 of file ODEScene.cs.
|
inline |
Add actor to the list that should receive collision events in the simulate loop.
obj |
Definition at line 1215 of file ODEScene.cs.
|
inlinevirtual |
Called after our prim properties are set Scale, position etc. We use this event queue like method to keep changes to the physical scene occuring in the threadlocked mutex This assures us that we have no race conditions
prim |
Implements OpenSim.Region.PhysicsModules.SharedBase.PhysicsScene.
Definition at line 1541 of file ODEScene.cs.
|
inlinevirtual |
Reimplemented from OpenSim.Region.PhysicsModules.SharedBase.PhysicsScene.
Definition at line 1335 of file ODEScene.cs.
|
inlinevirtual |
Implements OpenSim.Region.PhysicsModules.SharedBase.PhysicsScene.
Definition at line 1342 of file ODEScene.cs.
|
inlinevirtual |
Reimplemented from OpenSim.Region.PhysicsModules.SharedBase.PhysicsScene.
Definition at line 1348 of file ODEScene.cs.
|
inline |
Definition at line 1282 of file ODEScene.cs.
|
inlinevirtual |
Reimplemented from OpenSim.Region.PhysicsModules.SharedBase.PhysicsScene.
Definition at line 2723 of file ODEScene.cs.
|
inline |
Calculates the space the prim should be in by its position
pos |
Definition at line 1497 of file ODEScene.cs.
|
inlinevirtual |
Reimplemented from OpenSim.Region.PhysicsModules.SharedBase.PhysicsScene.
Definition at line 2196 of file ODEScene.cs.
|
inlinevirtual |
Implements OpenSim.Region.PhysicsModules.SharedBase.PhysicsScene.
Definition at line 2442 of file ODEScene.cs.
|
inlinevirtual |
Implements OpenSim.Region.PhysicsModules.SharedBase.PhysicsScene.
Definition at line 2461 of file ODEScene.cs.
|
inlinevirtual |
Implements OpenSim.Region.PhysicsModules.SharedBase.PhysicsScene.
Definition at line 1894 of file ODEScene.cs.
|
inline |
|
inline |
Definition at line 2043 of file ODEScene.cs.
|
inlinevirtual |
Implements OpenSim.Region.PhysicsModules.SharedBase.PhysicsScene.
Definition at line 2540 of file ODEScene.cs.
|
inline |
Definition at line 2446 of file ODEScene.cs.
|
inline |
Definition at line 1403 of file ODEScene.cs.
|
inline |
Definition at line 1397 of file ODEScene.cs.
|
inline |
Called when a static prim moves or becomes static Places the prim in a space one the static sub-spaces grid
geom | the pointer to the geom that moved |
pos | the position that the geom moved to |
currentspace | a pointer to the space it was in before it was moved. |
Definition at line 1430 of file ODEScene.cs.
|
inline |
Definition at line 2210 of file ODEScene.cs.
|
inline |
Definition at line 2332 of file ODEScene.cs.
|
inlinevirtual |
Reimplemented from OpenSim.Region.PhysicsModules.SharedBase.PhysicsScene.
Definition at line 2790 of file ODEScene.cs.
|
inlinevirtual |
Reimplemented from OpenSim.Region.PhysicsModules.SharedBase.PhysicsScene.
Definition at line 1546 of file ODEScene.cs.
|
inlinevirtual |
Reimplemented from OpenSim.Region.PhysicsModules.SharedBase.PhysicsScene.
Definition at line 2674 of file ODEScene.cs.
|
inlinevirtual |
Queue a raycast against the physics scene. The provided callback method will be called when the raycast is complete
Many physics engines don't support collision testing at the same time as manipulating the physics scene, so we queue the request up and callback a custom method when the raycast is complete. This allows physics engines that give an immediate result to callback immediately and ones that don't, to callback when it gets a result back.
ODE for example will not allow you to change the scene while collision testing or it asserts, 'opteration not valid for locked space'. This includes adding a ray to the scene.
This is named RayCastWorld to not conflict with modrex's Raycast method.
position | Origin of the ray |
direction | Direction of the ray |
length | Length of ray in meters |
retMethod | Method to call when the raycast is complete |
Reimplemented from OpenSim.Region.PhysicsModules.SharedBase.PhysicsScene.
Definition at line 2568 of file ODEScene.cs.
|
inlinevirtual |
Reimplemented from OpenSim.Region.PhysicsModules.SharedBase.PhysicsScene.
Definition at line 2585 of file ODEScene.cs.
|
inlinevirtual |
Reimplemented from OpenSim.Region.PhysicsModules.SharedBase.PhysicsScene.
Definition at line 2603 of file ODEScene.cs.
|
inlinevirtual |
Reimplemented from OpenSim.Region.PhysicsModules.SharedBase.PhysicsScene.
Definition at line 2641 of file ODEScene.cs.
|
inline |
Definition at line 350 of file ODEScene.cs.
|
inline |
Definition at line 1362 of file ODEScene.cs.
|
inline |
Definition at line 1355 of file ODEScene.cs.
|
inlinevirtual |
Remove an avatar.
actor |
Implements OpenSim.Region.PhysicsModules.SharedBase.PhysicsScene.
Definition at line 1291 of file ODEScene.cs.
|
inline |
Definition at line 1271 of file ODEScene.cs.
|
inline |
Remove actor from the list that should receive collision events in the simulate loop.
obj |
Definition at line 1225 of file ODEScene.cs.
|
inlinevirtual |
Remove a prim.
prim |
Implements OpenSim.Region.PhysicsModules.SharedBase.PhysicsScene.
Definition at line 1370 of file ODEScene.cs.
|
inline |
Definition at line 1385 of file ODEScene.cs.
|
inlinevirtual |
Implements OpenSim.Region.PhysicsModules.SharedBase.PhysicsScene.
Definition at line 2181 of file ODEScene.cs.
|
inline |
Definition at line 2202 of file ODEScene.cs.
|
inlinevirtual |
Implements OpenSim.Region.PhysicsModules.SharedBase.PhysicsScene.
Definition at line 2456 of file ODEScene.cs.
|
inlinevirtual |
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)
timeStep |
Implements OpenSim.Region.PhysicsModules.SharedBase.PhysicsScene.
Definition at line 1601 of file ODEScene.cs.
|
inlinevirtual |
Reimplemented from OpenSim.Region.PhysicsModules.SharedBase.PhysicsScene.
Definition at line 2833 of file ODEScene.cs.
|
inlinevirtual |
Reimplemented from OpenSim.Region.PhysicsModules.SharedBase.PhysicsScene.
Definition at line 2758 of file ODEScene.cs.
|
inlinevirtual |
Reimplemented from OpenSim.Region.PhysicsModules.SharedBase.PhysicsScene.
Definition at line 2451 of file ODEScene.cs.
|
inlinevirtual |
True if the physics plugin supports raycasting against the physics scene
Reimplemented from OpenSim.Region.PhysicsModules.SharedBase.PhysicsScene.
Definition at line 2563 of file ODEScene.cs.
|
inlinevirtual |
Reimplemented from OpenSim.Region.PhysicsModules.SharedBase.PhysicsScene.
Definition at line 2636 of file ODEScene.cs.
IntPtr OpenSim.Region.PhysicsModule.ubOde.ODEScene.ActiveSpace |
Definition at line 279 of file ODEScene.cs.
Dictionary<IntPtr, PhysicsActor> OpenSim.Region.PhysicsModule.ubOde.ODEScene.actor_name_map = new Dictionary<IntPtr, PhysicsActor>() |
Definition at line 245 of file ODEScene.cs.
float OpenSim.Region.PhysicsModule.ubOde.ODEScene.AvatarFriction = 0 |
Definition at line 190 of file ODEScene.cs.
int OpenSim.Region.PhysicsModule.ubOde.ODEScene.bodyFramesAutoDisable = 5 |
Definition at line 227 of file ODEScene.cs.
float OpenSim.Region.PhysicsModule.ubOde.ODEScene.bodyPIDD = 35f |
Definition at line 224 of file ODEScene.cs.
float OpenSim.Region.PhysicsModule.ubOde.ODEScene.bodyPIDG = 25 |
Definition at line 225 of file ODEScene.cs.
OpenSim.Framework.LocklessQueue<ODEchangeitem> OpenSim.Region.PhysicsModule.ubOde.ODEScene.ChangesQueue = new OpenSim.Framework.LocklessQueue<ODEchangeitem>() |
Definition at line 236 of file ODEScene.cs.
IntPtr OpenSim.Region.PhysicsModule.ubOde.ODEScene.CharsSpace |
Definition at line 280 of file ODEScene.cs.
float OpenSim.Region.PhysicsModule.ubOde.ODEScene.geomDefaultDensity = 10.0f |
Definition at line 219 of file ODEScene.cs.
float OpenSim.Region.PhysicsModule.ubOde.ODEScene.gravityx = 0f |
Definition at line 207 of file ODEScene.cs.
float OpenSim.Region.PhysicsModule.ubOde.ODEScene.gravityy = 0f |
Definition at line 208 of file ODEScene.cs.
float OpenSim.Region.PhysicsModule.ubOde.ODEScene.gravityz = -9.8f |
Definition at line 209 of file ODEScene.cs.
IntPtr OpenSim.Region.PhysicsModule.ubOde.ODEScene.GroundSpace |
Definition at line 282 of file ODEScene.cs.
float OpenSim.Region.PhysicsModule.ubOde.ODEScene.HalfOdeStep = 0.01f |
Definition at line 199 of file ODEScene.cs.
IConfigSource OpenSim.Region.PhysicsModule.ubOde.ODEScene.m_config |
Definition at line 299 of file ODEScene.cs.
Scene OpenSim.Region.PhysicsModule.ubOde.ODEScene.m_frameWorkScene = null |
Definition at line 174 of file ODEScene.cs.
ContactData [] OpenSim.Region.PhysicsModule.ubOde.ODEScene.m_materialContactsData = new ContactData[8] |
Definition at line 259 of file ODEScene.cs.
ODEMeshWorker OpenSim.Region.PhysicsModule.ubOde.ODEScene.m_meshWorker |
Definition at line 310 of file ODEScene.cs.
bool OpenSim.Region.PhysicsModule.ubOde.ODEScene.m_OSOdeLib = false |
Definition at line 172 of file ODEScene.cs.
bool OpenSim.Region.PhysicsModule.ubOde.ODEScene.m_suportCombine = false |
Definition at line 173 of file ODEScene.cs.
float OpenSim.Region.PhysicsModule.ubOde.ODEScene.maxAngVelocitySQ = 144f |
Definition at line 222 of file ODEScene.cs.
float OpenSim.Region.PhysicsModule.ubOde.ODEScene.maximumAngularVelocity = 12.0f |
Definition at line 221 of file ODEScene.cs.
float OpenSim.Region.PhysicsModule.ubOde.ODEScene.maximumMassObject = 10000.01f |
Definition at line 218 of file ODEScene.cs.
IMesher OpenSim.Region.PhysicsModule.ubOde.ODEScene.mesher |
Definition at line 297 of file ODEScene.cs.
float OpenSim.Region.PhysicsModule.ubOde.ODEScene.ODE_STEPSIZE = 0.020f |
Definition at line 198 of file ODEScene.cs.
Object OpenSim.Region.PhysicsModule.ubOde.ODEScene.OdeLock |
Definition at line 294 of file ODEScene.cs.
int OpenSim.Region.PhysicsModule.ubOde.ODEScene.odetimestepMS = 20 |
Definition at line 200 of file ODEScene.cs.
bool OpenSim.Region.PhysicsModule.ubOde.ODEScene.physics_logging = false |
Definition at line 301 of file ODEScene.cs.
bool OpenSim.Region.PhysicsModule.ubOde.ODEScene.physics_logging_append_existing_logfile = false |
Definition at line 303 of file ODEScene.cs.
int OpenSim.Region.PhysicsModule.ubOde.ODEScene.physics_logging_interval = 0 |
Definition at line 302 of file ODEScene.cs.
|
static |
Definition at line 295 of file ODEScene.cs.
IntPtr OpenSim.Region.PhysicsModule.ubOde.ODEScene.StaticSpace |
Definition at line 281 of file ODEScene.cs.
IntPtr OpenSim.Region.PhysicsModule.ubOde.ODEScene.TopSpace |
Definition at line 278 of file ODEScene.cs.
IntPtr OpenSim.Region.PhysicsModule.ubOde.ODEScene.world |
Definition at line 270 of file ODEScene.cs.
Vector2 OpenSim.Region.PhysicsModule.ubOde.ODEScene.WorldExtents = new Vector2((int)Constants.RegionSize, (int)Constants.RegionSize) |
Definition at line 306 of file ODEScene.cs.
|
get |
Definition at line 1899 of file ODEScene.cs.
|
get |
Definition at line 1237 of file ODEScene.cs.
|
get |
Definition at line 1232 of file ODEScene.cs.