Merge branch 'master' into careminster

avinationmerge
Melanie 2012-11-22 14:47:57 +00:00
commit 2bdd3eb918
11 changed files with 54 additions and 54 deletions

View File

@ -208,9 +208,9 @@ public sealed class BSCharacter : BSPhysObject
set { BaseShape = value; }
}
// I want the physics engine to make an avatar capsule
public override PhysicsShapeType PreferredPhysicalShape
public override BSPhysicsShapeType PreferredPhysicalShape
{
get {return PhysicsShapeType.SHAPE_CAPSULE; }
get {return BSPhysicsShapeType.SHAPE_CAPSULE; }
}
public override bool Grabbed {

View File

@ -82,9 +82,9 @@ public abstract class BSLinkset
// Some linksets have a preferred physical shape.
// Returns SHAPE_UNKNOWN if there is no preference. Causes the correct shape to be selected.
public virtual PhysicsShapeType PreferredPhysicalShape(BSPhysObject requestor)
public virtual BSPhysicsShapeType PreferredPhysicalShape(BSPhysObject requestor)
{
return PhysicsShapeType.SHAPE_UNKNOWN;
return BSPhysicsShapeType.SHAPE_UNKNOWN;
}
// Linksets move around the children so the linkset might need to compute the child position

View File

@ -42,12 +42,12 @@ public sealed class BSLinksetCompound : BSLinkset
}
// For compound implimented linksets, if there are children, use compound shape for the root.
public override PhysicsShapeType PreferredPhysicalShape(BSPhysObject requestor)
public override BSPhysicsShapeType PreferredPhysicalShape(BSPhysObject requestor)
{
PhysicsShapeType ret = PhysicsShapeType.SHAPE_UNKNOWN;
BSPhysicsShapeType ret = BSPhysicsShapeType.SHAPE_UNKNOWN;
if (IsRoot(requestor) && HasAnyChildren)
{
ret = PhysicsShapeType.SHAPE_COMPOUND;
ret = BSPhysicsShapeType.SHAPE_COMPOUND;
}
// DetailLog("{0},BSLinksetCompound.PreferredPhysicalShape,call,shape={1}", LinksetRoot.LocalID, ret);
return ret;

View File

@ -94,9 +94,9 @@ public abstract class BSPhysObject : PhysicsActor
public PrimitiveBaseShape BaseShape { get; protected set; }
// Some types of objects have preferred physical representations.
// Returns SHAPE_UNKNOWN if there is no preference.
public virtual PhysicsShapeType PreferredPhysicalShape
public virtual BSPhysicsShapeType PreferredPhysicalShape
{
get { return PhysicsShapeType.SHAPE_UNKNOWN; }
get { return BSPhysicsShapeType.SHAPE_UNKNOWN; }
}
// When the physical properties are updated, an EntityProperty holds the update values.

View File

@ -171,7 +171,7 @@ public sealed class BSPrim : BSPhysObject
}
}
// Whatever the linkset wants is what I want.
public override PhysicsShapeType PreferredPhysicalShape
public override BSPhysicsShapeType PreferredPhysicalShape
{ get { return Linkset.PreferredPhysicalShape(this); } }
public override bool ForceBodyShapeRebuild(bool inTaintTime)

View File

@ -178,7 +178,7 @@ public sealed class BSShapeCollection : IDisposable
bool ret = false;
switch (shape.type)
{
case PhysicsShapeType.SHAPE_MESH:
case BSPhysicsShapeType.SHAPE_MESH:
MeshDesc meshDesc;
if (Meshes.TryGetValue(shape.shapeKey, out meshDesc))
{
@ -201,7 +201,7 @@ public sealed class BSShapeCollection : IDisposable
meshDesc.lastReferenced = System.DateTime.Now;
Meshes[shape.shapeKey] = meshDesc;
break;
case PhysicsShapeType.SHAPE_HULL:
case BSPhysicsShapeType.SHAPE_HULL:
HullDesc hullDesc;
if (Hulls.TryGetValue(shape.shapeKey, out hullDesc))
{
@ -224,7 +224,7 @@ public sealed class BSShapeCollection : IDisposable
hullDesc.lastReferenced = System.DateTime.Now;
Hulls[shape.shapeKey] = hullDesc;
break;
case PhysicsShapeType.SHAPE_UNKNOWN:
case BSPhysicsShapeType.SHAPE_UNKNOWN:
break;
default:
// Native shapes are not tracked and they don't go into any list
@ -255,16 +255,16 @@ public sealed class BSShapeCollection : IDisposable
{
switch (shape.type)
{
case PhysicsShapeType.SHAPE_HULL:
case BSPhysicsShapeType.SHAPE_HULL:
DereferenceHull(shape, shapeCallback);
break;
case PhysicsShapeType.SHAPE_MESH:
case BSPhysicsShapeType.SHAPE_MESH:
DereferenceMesh(shape, shapeCallback);
break;
case PhysicsShapeType.SHAPE_COMPOUND:
case BSPhysicsShapeType.SHAPE_COMPOUND:
DereferenceCompound(shape, shapeCallback);
break;
case PhysicsShapeType.SHAPE_UNKNOWN:
case BSPhysicsShapeType.SHAPE_UNKNOWN:
break;
default:
break;
@ -352,28 +352,28 @@ public sealed class BSShapeCollection : IDisposable
BulletShape shapeInfo = new BulletShape(cShape);
if (TryGetMeshByPtr(cShape, out meshDesc))
{
shapeInfo.type = PhysicsShapeType.SHAPE_MESH;
shapeInfo.type = BSPhysicsShapeType.SHAPE_MESH;
shapeInfo.shapeKey = meshDesc.shapeKey;
}
else
{
if (TryGetHullByPtr(cShape, out hullDesc))
{
shapeInfo.type = PhysicsShapeType.SHAPE_HULL;
shapeInfo.type = BSPhysicsShapeType.SHAPE_HULL;
shapeInfo.shapeKey = hullDesc.shapeKey;
}
else
{
if (BulletSimAPI.IsCompound2(cShape))
{
shapeInfo.type = PhysicsShapeType.SHAPE_COMPOUND;
shapeInfo.type = BSPhysicsShapeType.SHAPE_COMPOUND;
}
else
{
if (BulletSimAPI.IsNativeShape2(cShape))
{
shapeInfo.isNativeShape = true;
shapeInfo.type = PhysicsShapeType.SHAPE_BOX; // (technically, type doesn't matter)
shapeInfo.type = BSPhysicsShapeType.SHAPE_BOX; // (technically, type doesn't matter)
}
}
}
@ -381,7 +381,7 @@ public sealed class BSShapeCollection : IDisposable
DetailLog("{0},BSShapeCollection.DereferenceAnonCollisionShape,shape={1}", BSScene.DetailLogZero, shapeInfo);
if (shapeInfo.type != PhysicsShapeType.SHAPE_UNKNOWN)
if (shapeInfo.type != BSPhysicsShapeType.SHAPE_UNKNOWN)
{
DereferenceShape(shapeInfo, true, null);
}
@ -405,10 +405,10 @@ public sealed class BSShapeCollection : IDisposable
bool ret = false;
bool haveShape = false;
if (!haveShape && prim.PreferredPhysicalShape == PhysicsShapeType.SHAPE_CAPSULE)
if (!haveShape && prim.PreferredPhysicalShape == BSPhysicsShapeType.SHAPE_CAPSULE)
{
// an avatar capsule is close to a native shape (it is not shared)
ret = GetReferenceToNativeShape(prim, PhysicsShapeType.SHAPE_CAPSULE,
ret = GetReferenceToNativeShape(prim, BSPhysicsShapeType.SHAPE_CAPSULE,
FixedShapeKey.KEY_CAPSULE, shapeCallback);
DetailLog("{0},BSShapeCollection.CreateGeom,avatarCapsule,shape={1}", prim.LocalID, prim.PhysShape);
ret = true;
@ -417,7 +417,7 @@ public sealed class BSShapeCollection : IDisposable
// Compound shapes are handled special as they are rebuilt from scratch.
// This isn't too great a hardship since most of the child shapes will already been created.
if (!haveShape && prim.PreferredPhysicalShape == PhysicsShapeType.SHAPE_COMPOUND)
if (!haveShape && prim.PreferredPhysicalShape == BSPhysicsShapeType.SHAPE_COMPOUND)
{
ret = GetReferenceToCompoundShape(prim, shapeCallback);
DetailLog("{0},BSShapeCollection.CreateGeom,compoundShape,shape={1}", prim.LocalID, prim.PhysShape);
@ -460,10 +460,10 @@ public sealed class BSShapeCollection : IDisposable
haveShape = true;
if (forceRebuild
|| prim.Scale != prim.Size
|| prim.PhysShape.type != PhysicsShapeType.SHAPE_SPHERE
|| prim.PhysShape.type != BSPhysicsShapeType.SHAPE_SPHERE
)
{
ret = GetReferenceToNativeShape(prim, PhysicsShapeType.SHAPE_SPHERE,
ret = GetReferenceToNativeShape(prim, BSPhysicsShapeType.SHAPE_SPHERE,
FixedShapeKey.KEY_SPHERE, shapeCallback);
DetailLog("{0},BSShapeCollection.CreateGeom,sphere,force={1},shape={2}",
prim.LocalID, forceRebuild, prim.PhysShape);
@ -474,10 +474,10 @@ public sealed class BSShapeCollection : IDisposable
haveShape = true;
if (forceRebuild
|| prim.Scale != prim.Size
|| prim.PhysShape.type != PhysicsShapeType.SHAPE_BOX
|| prim.PhysShape.type != BSPhysicsShapeType.SHAPE_BOX
)
{
ret = GetReferenceToNativeShape( prim, PhysicsShapeType.SHAPE_BOX,
ret = GetReferenceToNativeShape( prim, BSPhysicsShapeType.SHAPE_BOX,
FixedShapeKey.KEY_BOX, shapeCallback);
DetailLog("{0},BSShapeCollection.CreateGeom,box,force={1},shape={2}",
prim.LocalID, forceRebuild, prim.PhysShape);
@ -519,7 +519,7 @@ public sealed class BSShapeCollection : IDisposable
// Creates a native shape and assignes it to prim.BSShape.
// "Native" shapes are never shared. they are created here and destroyed in DereferenceShape().
private bool GetReferenceToNativeShape(BSPhysObject prim,
PhysicsShapeType shapeType, FixedShapeKey shapeKey,
BSPhysicsShapeType shapeType, FixedShapeKey shapeKey,
ShapeDestructionCallback shapeCallback)
{
// release any previous shape
@ -535,7 +535,7 @@ public sealed class BSShapeCollection : IDisposable
return true;
}
private BulletShape BuildPhysicalNativeShape(BSPhysObject prim, PhysicsShapeType shapeType,
private BulletShape BuildPhysicalNativeShape(BSPhysObject prim, BSPhysicsShapeType shapeType,
FixedShapeKey shapeKey)
{
BulletShape newShape;
@ -548,7 +548,7 @@ public sealed class BSShapeCollection : IDisposable
nativeShapeData.MeshKey = (ulong)shapeKey;
nativeShapeData.HullKey = (ulong)shapeKey;
if (shapeType == PhysicsShapeType.SHAPE_CAPSULE)
if (shapeType == BSPhysicsShapeType.SHAPE_CAPSULE)
{
// The proper scale has been calculated in the prim.
newShape = new BulletShape(
@ -586,7 +586,7 @@ public sealed class BSShapeCollection : IDisposable
System.UInt64 newMeshKey = ComputeShapeKey(prim.Size, prim.BaseShape, out lod);
// if this new shape is the same as last time, don't recreate the mesh
if (newMeshKey == prim.PhysShape.shapeKey && prim.PhysShape.type == PhysicsShapeType.SHAPE_MESH)
if (newMeshKey == prim.PhysShape.shapeKey && prim.PhysShape.type == BSPhysicsShapeType.SHAPE_MESH)
return false;
DetailLog("{0},BSShapeCollection.GetReferenceToMesh,create,oldKey={1},newKey={2}",
@ -644,7 +644,7 @@ public sealed class BSShapeCollection : IDisposable
indices.GetLength(0), indices, vertices.Count, verticesAsFloats);
}
}
BulletShape newShape = new BulletShape(meshPtr, PhysicsShapeType.SHAPE_MESH);
BulletShape newShape = new BulletShape(meshPtr, BSPhysicsShapeType.SHAPE_MESH);
newShape.shapeKey = newMeshKey;
return newShape;
@ -660,7 +660,7 @@ public sealed class BSShapeCollection : IDisposable
System.UInt64 newHullKey = ComputeShapeKey(prim.Size, prim.BaseShape, out lod);
// if the hull hasn't changed, don't rebuild it
if (newHullKey == prim.PhysShape.shapeKey && prim.PhysShape.type == PhysicsShapeType.SHAPE_HULL)
if (newHullKey == prim.PhysShape.shapeKey && prim.PhysShape.type == BSPhysicsShapeType.SHAPE_HULL)
return false;
DetailLog("{0},BSShapeCollection.GetReferenceToHull,create,oldKey={1},newKey={2}",
@ -781,7 +781,7 @@ public sealed class BSShapeCollection : IDisposable
}
}
BulletShape newShape = new BulletShape(hullPtr, PhysicsShapeType.SHAPE_HULL);
BulletShape newShape = new BulletShape(hullPtr, BSPhysicsShapeType.SHAPE_HULL);
newShape.shapeKey = newHullKey;
return newShape; // 'true' means a new shape has been added to this prim
@ -804,7 +804,7 @@ public sealed class BSShapeCollection : IDisposable
// DereferenceShape(prim.PhysShape, true, shapeCallback);
BulletShape cShape = new BulletShape(
BulletSimAPI.CreateCompoundShape2(PhysicsScene.World.ptr, false), PhysicsShapeType.SHAPE_COMPOUND);
BulletSimAPI.CreateCompoundShape2(PhysicsScene.World.ptr, false), BSPhysicsShapeType.SHAPE_COMPOUND);
// Create the shape for the root prim and add it to the compound shape. Cannot be a native shape.
CreateGeomMeshOrHull(prim, shapeCallback);
@ -895,7 +895,7 @@ public sealed class BSShapeCollection : IDisposable
// While we figure out the real problem, stick a simple native shape on the object.
BulletShape fillinShape =
BuildPhysicalNativeShape(prim, PhysicsShapeType.SHAPE_BOX, FixedShapeKey.KEY_BOX);
BuildPhysicalNativeShape(prim, BSPhysicsShapeType.SHAPE_BOX, FixedShapeKey.KEY_BOX);
return fillinShape;
}

View File

@ -35,7 +35,7 @@ namespace OpenSim.Region.Physics.BulletSPlugin
public abstract class BSShape
{
public IntPtr ptr { get; set; }
public PhysicsShapeType type { get; set; }
public BSPhysicsShapeType type { get; set; }
public System.UInt64 key { get; set; }
public int referenceCount { get; set; }
public DateTime lastReferenced { get; set; }
@ -43,7 +43,7 @@ public abstract class BSShape
public BSShape()
{
ptr = IntPtr.Zero;
type = PhysicsShapeType.SHAPE_UNKNOWN;
type = BSPhysicsShapeType.SHAPE_UNKNOWN;
key = 0;
referenceCount = 0;
lastReferenced = DateTime.Now;
@ -54,17 +54,17 @@ public abstract class BSShape
{
BSShape ret = null;
if (prim.PreferredPhysicalShape == PhysicsShapeType.SHAPE_CAPSULE)
if (prim.PreferredPhysicalShape == BSPhysicsShapeType.SHAPE_CAPSULE)
{
// an avatar capsule is close to a native shape (it is not shared)
ret = BSShapeNative.GetReference(physicsScene, prim, PhysicsShapeType.SHAPE_CAPSULE,
ret = BSShapeNative.GetReference(physicsScene, prim, BSPhysicsShapeType.SHAPE_CAPSULE,
FixedShapeKey.KEY_CAPSULE);
physicsScene.DetailLog("{0},BSShape.GetShapeReference,avatarCapsule,shape={1}", prim.LocalID, ret);
}
// Compound shapes are handled special as they are rebuilt from scratch.
// This isn't too great a hardship since most of the child shapes will already been created.
if (ret == null && prim.PreferredPhysicalShape == PhysicsShapeType.SHAPE_COMPOUND)
if (ret == null && prim.PreferredPhysicalShape == BSPhysicsShapeType.SHAPE_COMPOUND)
{
// Getting a reference to a compound shape gets you the compound shape with the root prim shape added
ret = BSShapeCompound.GetReference(prim);
@ -123,14 +123,14 @@ public class BSShapeNative : BSShape
{
}
public static BSShape GetReference(BSScene physicsScene, BSPhysObject prim,
PhysicsShapeType shapeType, FixedShapeKey shapeKey)
BSPhysicsShapeType shapeType, FixedShapeKey shapeKey)
{
// Native shapes are not shared and are always built anew.
return new BSShapeNative(physicsScene, prim, shapeType, shapeKey);
}
private BSShapeNative(BSScene physicsScene, BSPhysObject prim,
PhysicsShapeType shapeType, FixedShapeKey shapeKey)
BSPhysicsShapeType shapeType, FixedShapeKey shapeKey)
{
ShapeData nativeShapeData = new ShapeData();
nativeShapeData.Type = shapeType;
@ -141,7 +141,7 @@ public class BSShapeNative : BSShape
nativeShapeData.HullKey = (ulong)shapeKey;
if (shapeType == PhysicsShapeType.SHAPE_CAPSULE)
if (shapeType == BSPhysicsShapeType.SHAPE_CAPSULE)
{
ptr = BulletSimAPI.BuildCapsuleShape2(physicsScene.World.ptr, 1f, 1f, prim.Scale);
physicsScene.DetailLog("{0},BSShapeCollection.BuiletPhysicalNativeShape,capsule,scale={1}", prim.LocalID, prim.Scale);

View File

@ -97,7 +97,7 @@ public sealed class BSTerrainHeightmap : BSTerrainPhys
// Create the terrain shape from the mapInfo
m_mapInfo.terrainShape = new BulletShape(BulletSimAPI.CreateTerrainShape2(m_mapInfo.Ptr),
PhysicsShapeType.SHAPE_TERRAIN);
BSPhysicsShapeType.SHAPE_TERRAIN);
// The terrain object initial position is at the center of the object
Vector3 centerPos;

View File

@ -130,7 +130,7 @@ public sealed class BSTerrainManager
// The ground plane is here to catch things that are trying to drop to negative infinity
BulletShape groundPlaneShape = new BulletShape(
BulletSimAPI.CreateGroundPlaneShape2(BSScene.GROUNDPLANE_ID, 1f, TERRAIN_COLLISION_MARGIN),
PhysicsShapeType.SHAPE_GROUNDPLANE);
BSPhysicsShapeType.SHAPE_GROUNDPLANE);
m_groundPlane = new BulletBody(BSScene.GROUNDPLANE_ID,
BulletSimAPI.CreateBodyWithDefaultMotionState2(groundPlaneShape.ptr, BSScene.GROUNDPLANE_ID,
Vector3.Zero, Quaternion.Identity));

View File

@ -91,7 +91,7 @@ public sealed class BSTerrainMesh : BSTerrainPhys
m_terrainShape = new BulletShape(BulletSimAPI.CreateMeshShape2(PhysicsScene.World.ptr,
indicesCount, indices, verticesCount, vertices),
PhysicsShapeType.SHAPE_MESH);
BSPhysicsShapeType.SHAPE_MESH);
if (m_terrainShape.ptr == IntPtr.Zero)
{
// DISASTER!!

View File

@ -88,11 +88,11 @@ public struct BulletShape
public BulletShape(IntPtr xx)
{
ptr = xx;
type=PhysicsShapeType.SHAPE_UNKNOWN;
type=BSPhysicsShapeType.SHAPE_UNKNOWN;
shapeKey = (System.UInt64)FixedShapeKey.KEY_NONE;
isNativeShape = false;
}
public BulletShape(IntPtr xx, PhysicsShapeType typ)
public BulletShape(IntPtr xx, BSPhysicsShapeType typ)
{
ptr = xx;
type = typ;
@ -100,7 +100,7 @@ public struct BulletShape
isNativeShape = false;
}
public IntPtr ptr;
public PhysicsShapeType type;
public BSPhysicsShapeType type;
public System.UInt64 shapeKey;
public bool isNativeShape;
public override string ToString()
@ -178,7 +178,7 @@ public struct ConvexHull
int VertexCount;
Vector3[] Vertices;
}
public enum PhysicsShapeType
public enum BSPhysicsShapeType
{
SHAPE_UNKNOWN = 0,
SHAPE_CAPSULE = 1,
@ -210,7 +210,7 @@ public enum FixedShapeKey : ulong
public struct ShapeData
{
public uint ID;
public PhysicsShapeType Type;
public BSPhysicsShapeType Type;
public Vector3 Position;
public Quaternion Rotation;
public Vector3 Velocity;