Property | Type | Description | |
---|---|---|---|
MeshSculptphysicalLOD | float | ||
OdeLock | Object | ||
WorldExtents | System.Vector2 | ||
actor_name_map | PhysicsActor>.Dictionary | ||
bodyFramesAutoDisable | int | ||
bodyMotorJointMaxforceTensor | float | ||
bodyPIDD | float | ||
bodyPIDG | float | ||
forceSimplePrimMeshing | bool | ||
geomContactPointsStartthrottle | int | ||
geomCrossingFailuresBeforeOutofbounds | int | ||
geomDefaultDensity | float | ||
geomUpdatesPerThrottledUpdate | int | ||
geom_name_map | String>.Dictionary | ||
gravityx | float | ||
gravityy | float | ||
gravityz | float | ||
hpr | Ode.NET.d.Vector3 | ||
maximumMassObject | float | ||
meshSculptLOD | float | ||
meshSculptedPrim | bool | ||
mesher | IMesher | ||
physics_logging | bool | ||
physics_logging_append_existing_logfile | bool | ||
physics_logging_interval | int | ||
space | IntPtr | ||
staticPrimspace | ].IntPtr[ | ||
triArrayCallback | d.TriArrayCallback | ||
triCallback | d.TriCallback | ||
voxmesher | IVoxelMesher | ||
world | IntPtr | ||
xyz | d.Vector3 |
Method | Description | |
---|---|---|
AddAvatar ( string avName, System.Vector3 position, System.Vector3 size, bool isFlying ) : PhysicsActor | ||
AddCharacter ( OpenSim.Region.Physics.OdePlugin.OdeCharacter chr ) : void | ||
AddPhysicsActorTaint ( PhysicsActor prim ) : void |
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
|
|
AddPrimShape ( string primName, OpenSim.Framework.PrimitiveBaseShape pbs, System.Vector3 position, System.Vector3 size, Quaternion rotation ) : PhysicsActor | ||
AddPrimShape ( string primName, OpenSim.Framework.PrimitiveBaseShape pbs, System.Vector3 position, System.Vector3 size, Quaternion rotation, bool isPhysical ) : PhysicsActor | ||
BadCharacter ( OpenSim.Region.Physics.OdePlugin.OdeCharacter chr ) : void | ||
Combine ( PhysicsScene pScene, System.Vector3 offset, System.Vector3 extents ) : void | ||
DeleteTerrain ( ) : void | ||
Dispose ( ) : void | ||
DumpJointInfo ( ) : void | ||
GetJointAnchor ( OpenSim.Region.Physics.Manager.PhysicsJoint joint ) : System.Vector3 | ||
GetJointAxis ( OpenSim.Region.Physics.Manager.PhysicsJoint joint ) : System.Vector3 | ||
GetResults ( ) : void | ||
GetTerrainHeightAtXY ( float x, float y ) : float | ||
GetTopColliders ( ) : float>.Dictionary |
||
GetWaterLevel ( ) : float | ||
Initialise ( IMesher meshmerizer, IVoxelMesher voxmesh, IConfigSource config ) : void | ||
OdeScene ( OpenSim.Region.Physics.Manager.CollisionLocker dode, string sceneIdentifier ) : System |
Initiailizes the scene Sets many properties that ODE requires to be stable These settings need to be tweaked 'exactly' right or weird stuff happens.
|
|
RaycastWorld ( System.Vector3 position, System.Vector3 direction, float length, RaycastCallback retMethod ) : void | ||
RemoveAllJointsConnectedToActorThreadLocked ( PhysicsActor actor ) : void | ||
RemoveAvatar ( PhysicsActor actor ) : void | ||
RemoveCharacter ( OpenSim.Region.Physics.OdePlugin.OdeCharacter chr ) : void | ||
RemovePrim ( PhysicsActor prim ) : void | ||
RemovePrimThreadLocked ( OpenSim.Region.Physics.OdePlugin.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.
|
|
RequestJointCreation ( string objectNameInScene, PhysicsJointType jointType, System.Vector3 position, Quaternion rotation, string parms, List |
||
RequestJointDeletion ( string ObjectNameInScene ) : void | ||
ResizeTerrain512Interpolation ( float heightMap ) : float[] | ||
ResizeTerrain512NearestNeighbour ( float heightMap ) : float[] | ||
SetTerrain ( bool voxmap ) : void | ||
SetTerrain ( bool voxmap, System.Vector3 pOffset ) : void | ||
SetWaterLevel ( float baseheight ) : void | ||
Simulate ( float timeStep ) : float |
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)
|
|
SupportsCombining ( ) : bool | ||
SupportsRayCast ( ) : bool | ||
TriArrayCallback ( |
||
TriCallback ( |
||
UnCombine ( PhysicsScene pScene ) : void | ||
addActivePrim ( OpenSim.Region.Physics.OdePlugin.OdePrim activatePrim ) : void | ||
addCollisionEventReporting ( PhysicsActor obj ) : void | ||
calculateSpaceArrayItemFromPos ( System.Vector3 pos ) : int[] |
Holds the space allocation logic
|
|
calculateSpaceForGeom ( System.Vector3 pos ) : |
Calculates the space the prim should be in by its position
|
|
command ( int cmd ) : void | ||
createprimspace ( int iprimspaceArrItemX, int iprimspaceArrItemY ) : |
Creates a new space at X Y
|
|
needsMeshing ( OpenSim.Framework.PrimitiveBaseShape pbs ) : bool |
Routine to figure out if we need to mesh this prim with our mesher
|
|
randomizeWater ( float baseheight ) : void | ||
recalculateSpaceForGeom ( IntPtr geom, Vector3 pos, IntPtr currentspace ) : IntPtr |
Called when a static prim moves. Allocates a space for the prim based on its position
|
|
remActivePrim ( OdePrim deactivatePrim ) : void | ||
remCollisionEventReporting ( PhysicsActor obj ) : void | ||
resetSpaceArrayItemToZero ( IntPtr pSpace ) : void |
Takes a space pointer and zeros out the array we're using to hold the spaces
|
|
resetSpaceArrayItemToZero ( int arrayitemX, int arrayitemY ) : void | ||
start ( int unused ) : void | ||
startvisualization ( object o ) : void | ||
step ( int pause ) : void | ||
whichspaceamIin ( Vector3 pos ) : string |
Debug space message for printing the space that a prim/avatar is in.
|
Method | Description | |
---|---|---|
AddPrim ( String name, System.Vector3 position, System.Vector3 size, Quaternion rotation, IMesh mesh, OpenSim.Framework.PrimitiveBaseShape pbs, bool isphysical ) : PhysicsActor | ||
CreateRequestedJoints ( ) : void | ||
DeleteRequestedJoints ( ) : void | ||
InternalAddActiveJoint ( OpenSim.Region.Physics.Manager.PhysicsJoint joint ) : void | ||
InternalAddPendingJoint ( OpenSim.Region.Physics.OdePlugin.OdePhysicsJoint joint ) : void | ||
InternalRemoveActiveJoint ( OpenSim.Region.Physics.Manager.PhysicsJoint joint ) : void | ||
InternalRemovePendingJoint ( OpenSim.Region.Physics.Manager.PhysicsJoint joint ) : void | ||
RemoveAllJointsConnectedToActor ( PhysicsActor actor ) : void | ||
checkDupe ( Ode.NET.d contactGeom, int atype ) : bool | ||
collision_accounting_events ( PhysicsActor p1, PhysicsActor p2, ContactPoint contact ) : void | ||
collision_optimized ( float timeStep ) : void |
This is our collision testing routine in ODE
|
|
near ( |
This is our near callback. A geometry is near a body
|
|
waitForSpaceUnlock ( IntPtr space ) : void |
public AddAvatar ( string avName, System.Vector3 position, System.Vector3 size, bool isFlying ) : PhysicsActor | ||
avName | string | |
position | System.Vector3 | |
size | System.Vector3 | |
isFlying | bool | |
return | PhysicsActor |
public AddCharacter ( OpenSim.Region.Physics.OdePlugin.OdeCharacter chr ) : void | ||
chr | OpenSim.Region.Physics.OdePlugin.OdeCharacter | |
return | void |
public AddPhysicsActorTaint ( PhysicsActor prim ) : void | ||
prim | PhysicsActor | |
return | void |
public AddPrimShape ( string primName, OpenSim.Framework.PrimitiveBaseShape pbs, System.Vector3 position, System.Vector3 size, Quaternion rotation ) : PhysicsActor | ||
primName | string | |
pbs | OpenSim.Framework.PrimitiveBaseShape | |
position | System.Vector3 | |
size | System.Vector3 | |
rotation | Quaternion | |
return | PhysicsActor |
public AddPrimShape ( string primName, OpenSim.Framework.PrimitiveBaseShape pbs, System.Vector3 position, System.Vector3 size, Quaternion rotation, bool isPhysical ) : PhysicsActor | ||
primName | string | |
pbs | OpenSim.Framework.PrimitiveBaseShape | |
position | System.Vector3 | |
size | System.Vector3 | |
rotation | Quaternion | |
isPhysical | bool | |
return | PhysicsActor |
public BadCharacter ( OpenSim.Region.Physics.OdePlugin.OdeCharacter chr ) : void | ||
chr | OpenSim.Region.Physics.OdePlugin.OdeCharacter | |
return | void |
public Combine ( PhysicsScene pScene, System.Vector3 offset, System.Vector3 extents ) : void | ||
pScene | PhysicsScene | |
offset | System.Vector3 | |
extents | System.Vector3 | |
return | void |
public GetJointAnchor ( OpenSim.Region.Physics.Manager.PhysicsJoint joint ) : System.Vector3 | ||
joint | OpenSim.Region.Physics.Manager.PhysicsJoint | |
return | System.Vector3 |
public GetJointAxis ( OpenSim.Region.Physics.Manager.PhysicsJoint joint ) : System.Vector3 | ||
joint | OpenSim.Region.Physics.Manager.PhysicsJoint | |
return | System.Vector3 |
public GetTerrainHeightAtXY ( float x, float y ) : float | ||
x | float | |
y | float | |
return | float |
public GetTopColliders ( ) : float>.Dictionary |
||
return | float>.Dictionary |
public Initialise ( IMesher meshmerizer, IVoxelMesher voxmesh, IConfigSource config ) : void | ||
meshmerizer | IMesher | |
voxmesh | IVoxelMesher | |
config | IConfigSource | |
return | void |
public OdeScene ( OpenSim.Region.Physics.Manager.CollisionLocker dode, string sceneIdentifier ) : System | ||
dode | OpenSim.Region.Physics.Manager.CollisionLocker | |
sceneIdentifier | string | |
return | System |
public RaycastWorld ( System.Vector3 position, System.Vector3 direction, float length, RaycastCallback retMethod ) : void | ||
position | System.Vector3 | |
direction | System.Vector3 | |
length | float | |
retMethod | RaycastCallback | |
return | void |
public RemoveAllJointsConnectedToActorThreadLocked ( PhysicsActor actor ) : void | ||
actor | PhysicsActor | |
return | void |
public RemoveAvatar ( PhysicsActor actor ) : void | ||
actor | PhysicsActor | |
return | void |
public RemoveCharacter ( OpenSim.Region.Physics.OdePlugin.OdeCharacter chr ) : void | ||
chr | OpenSim.Region.Physics.OdePlugin.OdeCharacter | |
return | void |
public RemovePrim ( PhysicsActor prim ) : void | ||
prim | PhysicsActor | |
return | void |
public RemovePrimThreadLocked ( OpenSim.Region.Physics.OdePlugin.OdePrim prim ) : void | ||
prim | OpenSim.Region.Physics.OdePlugin.OdePrim | |
return | void |
public RequestJointCreation ( string objectNameInScene, PhysicsJointType jointType, System.Vector3 position, Quaternion rotation, string parms, List |
||
objectNameInScene | string | |
jointType | PhysicsJointType | |
position | System.Vector3 | |
rotation | Quaternion | |
parms | string | |
bodyNames | List |
|
trackedBodyName | string | |
localRotation | Quaternion | |
return | OpenSim.Region.Physics.Manager.PhysicsJoint |
public RequestJointDeletion ( string ObjectNameInScene ) : void | ||
ObjectNameInScene | string | |
return | void |
public ResizeTerrain512Interpolation ( float heightMap ) : float[] | ||
heightMap | float | |
return | float[] |
public ResizeTerrain512NearestNeighbour ( float heightMap ) : float[] | ||
heightMap | float | |
return | float[] |
public SetTerrain ( bool voxmap, System.Vector3 pOffset ) : void | ||
voxmap | bool | |
pOffset | System.Vector3 | |
return | void |
public SetWaterLevel ( float baseheight ) : void | ||
baseheight | float | |
return | void |
public TriArrayCallback ( |
||
trimesh | ||
refObject | ||
triangleIndex | int | |
triCount | int | |
return | int |
public TriCallback ( |
||
trimesh | ||
refObject | ||
triangleIndex | int | |
return | int |
public UnCombine ( PhysicsScene pScene ) : void | ||
pScene | PhysicsScene | |
return | void |
public addActivePrim ( OpenSim.Region.Physics.OdePlugin.OdePrim activatePrim ) : void | ||
activatePrim | OpenSim.Region.Physics.OdePlugin.OdePrim | |
return | void |
public addCollisionEventReporting ( PhysicsActor obj ) : void | ||
obj | PhysicsActor | |
return | void |
public calculateSpaceArrayItemFromPos ( System.Vector3 pos ) : int[] | ||
pos | System.Vector3 | |
return | int[] |
public calculateSpaceForGeom ( System.Vector3 pos ) : |
||
pos | System.Vector3 | |
return |
public createprimspace ( int iprimspaceArrItemX, int iprimspaceArrItemY ) : |
||
iprimspaceArrItemX | int | |
iprimspaceArrItemY | int | |
return |
public needsMeshing ( OpenSim.Framework.PrimitiveBaseShape pbs ) : bool | ||
pbs | OpenSim.Framework.PrimitiveBaseShape | |
return | bool |
public randomizeWater ( float baseheight ) : void | ||
baseheight | float | |
return | void |
public recalculateSpaceForGeom ( IntPtr geom, Vector3 pos, IntPtr currentspace ) : IntPtr | ||
geom | IntPtr | the pointer to the geom that moved |
pos | Vector3 | the position that the geom moved to |
currentspace | IntPtr | a pointer to the space it was in before it was moved. |
return | IntPtr |
public remActivePrim ( OdePrim deactivatePrim ) : void | ||
deactivatePrim | OdePrim | |
return | void |
public remCollisionEventReporting ( PhysicsActor obj ) : void | ||
obj | PhysicsActor | |
return | void |
public resetSpaceArrayItemToZero ( IntPtr pSpace ) : void | ||
pSpace | IntPtr | |
return | void |
public resetSpaceArrayItemToZero ( int arrayitemX, int arrayitemY ) : void | ||
arrayitemX | int | |
arrayitemY | int | |
return | void |
public startvisualization ( object o ) : void | ||
o | object | |
return | void |
public whichspaceamIin ( Vector3 pos ) : string | ||
pos | Vector3 | |
return | string |
public float bodyMotorJointMaxforceTensor | ||
return | float |
public int geomContactPointsStartthrottle | ||
return | int |
public int geomCrossingFailuresBeforeOutofbounds | ||
return | int |
public int geomUpdatesPerThrottledUpdate | ||
return | int |
public bool physics_logging_append_existing_logfile | ||
return | bool |
public d.TriArrayCallback triArrayCallback | ||
return | d.TriArrayCallback |