BEPUphysics.CollisionShapes.ConvexShapes.ConvexShape.GetSweptBoundingBox C# (CSharp) Метод

GetSweptBoundingBox() публичный Метод

Computes a bounding box for the shape and expands it.
public GetSweptBoundingBox ( RigidTransform &transform, Vector3 &sweep, BoundingBox &boundingBox ) : void
transform BEPUutilities.RigidTransform Transform to use to position the shape.
sweep Vector3 Extra to add to the bounding box.
boundingBox BoundingBox Expanded bounding box.
Результат void
        public void GetSweptBoundingBox(ref RigidTransform transform, ref Vector3 sweep, out BoundingBox boundingBox)
        {
            GetBoundingBox(ref transform, out boundingBox);
            Toolbox.ExpandBoundingBox(ref boundingBox, ref sweep);

        }

Usage Example

Пример #1
0
        /// <summary>
        /// Casts a convex shape against the collidable.
        /// </summary>
        /// <param name="castShape">Shape to cast.</param>
        /// <param name="startingTransform">Initial transform of the shape.</param>
        /// <param name="sweep">Sweep to apply to the shape.</param>
        /// <param name="filter">Test to apply to the entry. If it returns true, the entry is processed, otherwise the entry is ignored. If a collidable hierarchy is present
        /// in the entry, this filter will be passed into inner ray casts.</param>
        /// <param name="result">Hit data, if any.</param>
        /// <returns>Whether or not the cast hit anything.</returns>
        public bool ConvexCast(ConvexShapes.ConvexShape castShape, ref RigidTransform startingTransform, ref Vector3 sweep, Func <BroadPhaseEntry, bool> filter, out RayCastResult result)
        {
            var         outputOverlappedElements = PhysicsResources.GetCollidableList();
            BoundingBox boundingBox;

            castShape.GetSweptBoundingBox(ref startingTransform, ref sweep, out boundingBox);

            CollidableTree.GetOverlaps(boundingBox, outputOverlappedElements);
            result           = new RayCastResult();
            result.HitData.T = Fix64.MaxValue;
            for (int i = 0; i < outputOverlappedElements.Count; ++i)
            {
                RayHit hit;
                if (outputOverlappedElements.Elements[i].ConvexCast(castShape, ref startingTransform, ref sweep, filter, out hit))
                {
                    if (hit.T < result.HitData.T)
                    {
                        result.HitData   = hit;
                        result.HitObject = outputOverlappedElements.Elements[i];
                    }
                }
            }
            PhysicsResources.GiveBack(outputOverlappedElements);
            return(result.HitData.T < Fix64.MaxValue);
        }
All Usage Examples Of BEPUphysics.CollisionShapes.ConvexShapes.ConvexShape::GetSweptBoundingBox