public static IPhysicsShape Unwrap(BasePhysicsShapeRemoteData data) { var collisionGroup = CollisionGroups.GetCollisionGroup(data.CollisionGroupId); return(data switch { CircleShapeRemoteData circleData => new CircleShape(circleData.Center, circleData.Radius, collisionGroup), RectangleShapeRemoteData rectangleData => new RectangleShape(rectangleData.Position, rectangleData.Size, collisionGroup), LineShapeRemoteData lineData => new LineShape(lineData.BasePosition, lineData.Direction, collisionGroup), LineSegmentShapeRemoteData lineSegmentData => new LineSegmentShape(lineSegmentData.Point1, lineSegmentData.Point2, collisionGroup), PointShapeRemoteData pointData => new PointShape(pointData.Point, collisionGroup), _ => throw new ArgumentOutOfRangeException("Unknown shape type: " + data.GetType().Name) });
private void ClientRemote_ProcessServerDebugPhysicsTesting(BasePhysicsShapeRemoteData wrappedShape) { var shape = PhysicsShapeRemoteDataHelper.Unwrap(wrappedShape); ClientComponentPhysicsSpaceVisualizer.ProcessServerDebugPhysicsTesting(shape); }