Свойство | Тип | Описание | |
---|---|---|---|
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 |
Метод | Описание | |
---|---|---|
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.
|
Метод | Описание | |
---|---|---|
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 | |
Результат | PhysicsActor |
public AddCharacter ( OpenSim.Region.Physics.OdePlugin.OdeCharacter chr ) : void | ||
chr | OpenSim.Region.Physics.OdePlugin.OdeCharacter | |
Результат | void |
public AddPhysicsActorTaint ( PhysicsActor prim ) : void | ||
prim | PhysicsActor | |
Результат | 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 | |
Результат | 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 | |
Результат | PhysicsActor |
public BadCharacter ( OpenSim.Region.Physics.OdePlugin.OdeCharacter chr ) : void | ||
chr | OpenSim.Region.Physics.OdePlugin.OdeCharacter | |
Результат | void |
public Combine ( PhysicsScene pScene, System.Vector3 offset, System.Vector3 extents ) : void | ||
pScene | PhysicsScene | |
offset | System.Vector3 | |
extents | System.Vector3 | |
Результат | void |
public GetJointAnchor ( OpenSim.Region.Physics.Manager.PhysicsJoint joint ) : System.Vector3 | ||
joint | OpenSim.Region.Physics.Manager.PhysicsJoint | |
Результат | System.Vector3 |
public GetJointAxis ( OpenSim.Region.Physics.Manager.PhysicsJoint joint ) : System.Vector3 | ||
joint | OpenSim.Region.Physics.Manager.PhysicsJoint | |
Результат | System.Vector3 |
public GetTerrainHeightAtXY ( float x, float y ) : float | ||
x | float | |
y | float | |
Результат | float |
public GetTopColliders ( ) : float>.Dictionary |
||
Результат | float>.Dictionary |
public Initialise ( IMesher meshmerizer, IVoxelMesher voxmesh, IConfigSource config ) : void | ||
meshmerizer | IMesher | |
voxmesh | IVoxelMesher | |
config | IConfigSource | |
Результат | void |
public OdeScene ( OpenSim.Region.Physics.Manager.CollisionLocker dode, string sceneIdentifier ) : System | ||
dode | OpenSim.Region.Physics.Manager.CollisionLocker | |
sceneIdentifier | string | |
Результат | System |
public RaycastWorld ( System.Vector3 position, System.Vector3 direction, float length, RaycastCallback retMethod ) : void | ||
position | System.Vector3 | |
direction | System.Vector3 | |
length | float | |
retMethod | RaycastCallback | |
Результат | void |
public RemoveAllJointsConnectedToActorThreadLocked ( PhysicsActor actor ) : void | ||
actor | PhysicsActor | |
Результат | void |
public RemoveAvatar ( PhysicsActor actor ) : void | ||
actor | PhysicsActor | |
Результат | void |
public RemoveCharacter ( OpenSim.Region.Physics.OdePlugin.OdeCharacter chr ) : void | ||
chr | OpenSim.Region.Physics.OdePlugin.OdeCharacter | |
Результат | void |
public RemovePrim ( PhysicsActor prim ) : void | ||
prim | PhysicsActor | |
Результат | void |
public RemovePrimThreadLocked ( OpenSim.Region.Physics.OdePlugin.OdePrim prim ) : void | ||
prim | OpenSim.Region.Physics.OdePlugin.OdePrim | |
Результат | 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 | |
Результат | OpenSim.Region.Physics.Manager.PhysicsJoint |
public RequestJointDeletion ( string ObjectNameInScene ) : void | ||
ObjectNameInScene | string | |
Результат | void |
public ResizeTerrain512Interpolation ( float heightMap ) : float[] | ||
heightMap | float | |
Результат | float[] |
public ResizeTerrain512NearestNeighbour ( float heightMap ) : float[] | ||
heightMap | float | |
Результат | float[] |
public SetTerrain ( bool voxmap, System.Vector3 pOffset ) : void | ||
voxmap | bool | |
pOffset | System.Vector3 | |
Результат | void |
public SetWaterLevel ( float baseheight ) : void | ||
baseheight | float | |
Результат | void |
public Simulate ( float timeStep ) : float | ||
timeStep | float | |
Результат | float |
public TriArrayCallback ( |
||
trimesh | ||
refObject | ||
triangleIndex | int | |
triCount | int | |
Результат | int |
public TriCallback ( |
||
trimesh | ||
refObject | ||
triangleIndex | int | |
Результат | int |
public UnCombine ( PhysicsScene pScene ) : void | ||
pScene | PhysicsScene | |
Результат | void |
public addActivePrim ( OpenSim.Region.Physics.OdePlugin.OdePrim activatePrim ) : void | ||
activatePrim | OpenSim.Region.Physics.OdePlugin.OdePrim | |
Результат | void |
public addCollisionEventReporting ( PhysicsActor obj ) : void | ||
obj | PhysicsActor | |
Результат | void |
public calculateSpaceArrayItemFromPos ( System.Vector3 pos ) : int[] | ||
pos | System.Vector3 | |
Результат | int[] |
public calculateSpaceForGeom ( System.Vector3 pos ) : |
||
pos | System.Vector3 | |
Результат |
public createprimspace ( int iprimspaceArrItemX, int iprimspaceArrItemY ) : |
||
iprimspaceArrItemX | int | |
iprimspaceArrItemY | int | |
Результат |
public needsMeshing ( OpenSim.Framework.PrimitiveBaseShape pbs ) : bool | ||
pbs | OpenSim.Framework.PrimitiveBaseShape | |
Результат | bool |
public randomizeWater ( float baseheight ) : void | ||
baseheight | float | |
Результат | 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. |
Результат | IntPtr |
public remActivePrim ( OdePrim deactivatePrim ) : void | ||
deactivatePrim | OdePrim | |
Результат | void |
public remCollisionEventReporting ( PhysicsActor obj ) : void | ||
obj | PhysicsActor | |
Результат | void |
public resetSpaceArrayItemToZero ( IntPtr pSpace ) : void | ||
pSpace | IntPtr | |
Результат | void |
public resetSpaceArrayItemToZero ( int arrayitemX, int arrayitemY ) : void | ||
arrayitemX | int | |
arrayitemY | int | |
Результат | void |
public startvisualization ( object o ) : void | ||
o | object | |
Результат | void |
public whichspaceamIin ( Vector3 pos ) : string | ||
pos | Vector3 | |
Результат | string |
public Dictionary |
||
Результат | PhysicsActor>.Dictionary |
public float bodyMotorJointMaxforceTensor | ||
Результат | float |
public int geomContactPointsStartthrottle | ||
Результат | int |
public int geomCrossingFailuresBeforeOutofbounds | ||
Результат | int |
public int geomUpdatesPerThrottledUpdate | ||
Результат | int |
public bool physics_logging_append_existing_logfile | ||
Результат | bool |
public d.TriArrayCallback triArrayCallback | ||
Результат | d.TriArrayCallback |