/// <summary> /// The AddPrimShape calls are pseudo synchronous by default. /// </summary> /// <param name="primName"></param> /// <param name="pbs"></param> /// <param name="position"></param> /// <param name="size"></param> /// <param name="rotation"></param> /// <returns></returns> public override PhysicsActor AddPrimShape(string primName, AddPrimShapeFlags flags, BulkShapeData shapeData) { Commands.CreateObjectCmd createObj = new Commands.CreateObjectCmd( null, primName, shapeData.Pbs, shapeData.Position, shapeData.Size, shapeData.Rotation, shapeData.Velocity, shapeData.AngularVelocity, Meshing.MeshingStage.SCULPT_MESH_LOD, flags, (Material)shapeData.Material, shapeData.PhysicsProperties, shapeData.SerializedShapes, shapeData.ObjectReceivedOn); this.QueueCommand(createObj); createObj.FinshedEvent.Wait(); //wait for meshing and all prerequisites to complete createObj.Dispose(); return(createObj.FinalPrim); }
public override void BulkAddPrimShapes(ICollection<BulkShapeData> shapeData, AddPrimShapeFlags flags) { // Called on restore of objects when region boots up. Other times as well, but that's the critical. AddPrimShapeFlags _flags = flags; ICollection<BulkShapeData> _shapes = shapeData; int _totalNumShapes = _shapes.Count; bool _rootHasVdSet = false; bool isPhysical = (_flags & PhysicsScene.AddPrimShapeFlags.Physical) != 0; //we have all the shapes for the parent and all children, time to construct the group bool first = true; BasicPrim rootPrim = null; //CollisionGroupFlag collisionGroup = (_flags & PhysicsScene.AddPrimShapeFlags.Phantom) == 0 ? CollisionGroupFlag.Normal : CollisionGroupFlag.PhysicalPhantom; foreach (BulkShapeData shape in _shapes) { if (first) { BasicPhysicsProperties properties = BasicPhysicsProperties.DeserializeOrCreateNew(this, shape.Material, shape.PhysicsProperties); _rootHasVdSet = properties.VolumeDetectActive; if (_rootHasVdSet) { isPhysical = false; } rootPrim = new BasicPrim(this, shape.Pbs, shape.Position, shape.Rotation, /*_newPrimaryShape, actor, */ isPhysical, properties/*, collisionGroup*/); shape.OutActor = rootPrim; first = false; } else { BasicPhysicsProperties properties = BasicPhysicsProperties.DeserializeOrCreateNew(this, shape.Material, shape.PhysicsProperties); BasicPrim childPrim = new BasicPrim(rootPrim, this, shape.Pbs, shape.Position, shape.Rotation, /*phyShape, null,*/ isPhysical, properties/*, collisionGroup*/); rootPrim.LinkPrimAsChildSync(/*phyShape, */childPrim, shape.Position, shape.Rotation, true); shape.OutActor = childPrim; } } }
public override void BulkAddPrimShapes(ICollection<BulkShapeData> shapeData, AddPrimShapeFlags flags) { Commands.BulkCreateObjectCmd createObjs = new Commands.BulkCreateObjectCmd(flags, shapeData); this.QueueCommand(createObjs); createObjs.FinishedEvent.Wait(); //wait for meshing and all prerequisites to complete createObjs.Dispose(); }
/// <summary> /// The AddPrimShape calls are pseudo synchronous by default. /// </summary> /// <param name="primName"></param> /// <param name="pbs"></param> /// <param name="position"></param> /// <param name="size"></param> /// <param name="rotation"></param> /// <returns></returns> public override PhysicsActor AddPrimShape(string primName, AddPrimShapeFlags flags, BulkShapeData shapeData) { Commands.CreateObjectCmd createObj = new Commands.CreateObjectCmd( null, primName, shapeData.Pbs, shapeData.Position, shapeData.Size, shapeData.Rotation, shapeData.Velocity, shapeData.AngularVelocity, Meshing.MeshingStage.SCULPT_MESH_LOD, flags, (Material)shapeData.Material, shapeData.PhysicsProperties, shapeData.SerializedShapes, shapeData.ObjectReceivedOn); this.QueueCommand(createObj); createObj.FinshedEvent.Wait(); //wait for meshing and all prerequisites to complete createObj.Dispose(); return createObj.FinalPrim; }
public override void BulkAddPrimShapes(ICollection <BulkShapeData> shapeData, AddPrimShapeFlags flags) { Commands.BulkCreateObjectCmd createObjs = new Commands.BulkCreateObjectCmd(flags, shapeData); this.QueueCommand(createObjs); createObjs.FinishedEvent.Wait(); //wait for meshing and all prerequisites to complete createObjs.Dispose(); }
public override void BulkAddPrimShapes(ICollection <BulkShapeData> shapeData, AddPrimShapeFlags flags) { // TODO maybe }
/* * public override PhysicsActor AddPrim(OpenMetaverse.Vector3 position, OpenMetaverse.Vector3 size, Quaternion rotation) * { * return null; * } */ public override PhysicsActor AddPrimShape(string primName, AddPrimShapeFlags flags, BulkShapeData shapeData) { return(null); }
public override void BulkAddPrimShapes(ICollection<BulkShapeData> shapeData, AddPrimShapeFlags flags) { // TODO maybe }
/* public override PhysicsActor AddPrim(OpenMetaverse.Vector3 position, OpenMetaverse.Vector3 size, Quaternion rotation) { return null; } */ public override PhysicsActor AddPrimShape(string primName, AddPrimShapeFlags flags, BulkShapeData shapeData) { return null; }
/// <summary> /// Adds all the shapes for a prim and its children /// </summary> /// <param name="parent"></param> /// <param name="primName"></param> /// <param name="shapeData"></param> /// <param name="flags"></param> /// <returns></returns> public abstract void BulkAddPrimShapes(ICollection <BulkShapeData> shapeData, AddPrimShapeFlags flags);
public abstract PhysicsActor AddPrimShape(string primName, AddPrimShapeFlags flags, BulkShapeData shapeData);
/// <summary> /// Adds all the shapes for a prim and its children /// </summary> /// <param name="parent"></param> /// <param name="primName"></param> /// <param name="shapeData"></param> /// <param name="flags"></param> /// <returns></returns> public abstract void BulkAddPrimShapes(ICollection<BulkShapeData> shapeData, AddPrimShapeFlags flags);
public override PhysicsActor AddPrimShape(string primName, AddPrimShapeFlags flags, BulkShapeData shapeData) { byte[] serializedPhysicsProperties = shapeData.PhysicsProperties; BasicPhysicsProperties properties = BasicPhysicsProperties.DeserializeOrCreateNew(this, shapeData.Material, serializedPhysicsProperties); bool isPhysical = (flags & PhysicsScene.AddPrimShapeFlags.Physical) != 0; return new BasicPrim(this, shapeData.Pbs, shapeData.Position, shapeData.Rotation, /*Shape, Actor,*/ isPhysical, properties/*, collisionGroup*/); }