public List <CCPoint> GetPoints() { List <CCPoint> outPoints = new List <CCPoint>(); // int i = 0; foreach (var shape in _info.getShapes()) { outPoints.Add(PhysicsHelper.cpVectToCCPoint(((cpSegmentShape)shape).a)); } return(outPoints); }
public List <CCPoint> GetPoints() { List <CCPoint> outPoints = new List <CCPoint>(); foreach (var shape in _info.getShapes()) { outPoints.Add(PhysicsHelper.cpVectToCCPoint(((cpSegmentShape)shape).a)); } outPoints.Add(PhysicsHelper.cpVectToCCPoint(((cpSegmentShape)_info.getShapes().LastOrDefault()).a)); return(outPoints); }
public override CCPoint GetCenter() { var shapes = _info.getShapes(); int count = (int)shapes.Count; cpVect[] points = new cpVect[count]; int i = 0; foreach (var shape in shapes) { points[i++] = ((cpSegmentShape)shape).a; } cpVect center = cp.CentroidForPoly(count, points); return(PhysicsHelper.cpVectToCCPoint(center)); }
public void GenerateContactData() { if (_contactInfo == null) { return; } cpArbiter arb = (cpArbiter)_contactInfo; _preContactData = _contactData; _contactData = new CCPhysicsContactData(); for (int i = 0; i < _contactData.count && i < CCPhysicsContactData.POINT_MAX; ++i) { _contactData.points[i] = PhysicsHelper.cpVectToCCPoint(arb.GetPointA(i)); } _contactData.normal = _contactData.count > 0 ? PhysicsHelper.cpVectToCCPoint(arb.GetNormal()) : CCPoint.Zero; }
public CCPoint GetPoint(int i) { return(PhysicsHelper.cpVectToCCPoint(((cpPolyShape)_info.GetShapes().FirstOrDefault()).GetVert(i))); }
/** get center of the polyon points */ public static CCPoint GetPolygonCenter(CCPoint[] points, int count) { return(PhysicsHelper.cpVectToCCPoint(cp.CentroidForPoly(count, PhysicsHelper.CCPointsTocpVects(points)))); }
public CCPoint GetPointB() { return(PhysicsHelper.cpVectToCCPoint(((cpSegmentShape)(_info.getShapes().FirstOrDefault())).tb)); }
public override CCPoint GetOffset() { return(PhysicsHelper.cpVectToCCPoint((_info.getShapes().FirstOrDefault() as cpCircleShape).GetOffset())); }
public CCPoint GetAnchr2() { return(PhysicsHelper.cpVectToCCPoint(_info.getJoints().FirstOrDefault().GetAnchorB())); }
public CCPoint GetGrooveA() { return(PhysicsHelper.cpVectToCCPoint(_info.getJoints().FirstOrDefault().GetGrooveA())); }
/** get surface velocity between two bodies*/ public CCPoint GetSurfaceVelocity() { return(PhysicsHelper.cpVectToCCPoint((_contactInfo as cpArbiter).surface_vr)); }
/** Get phsyics shapes that contains the point. */ public List <CCPhysicsShape> GetShapes(CCPoint point) { List <CCPhysicsShape> arr = new List <CCPhysicsShape>(); this._info.getSpace().PointQuery( PhysicsHelper.CCPointToCpVect(point), 0, new cpShapeFilter(cp.NO_GROUP, cp.ALL_LAYERS, cp.ALL_LAYERS), (s, v1, f, v2, o) => CCPhysicsWorldCallback.GetShapesAtPointFunc(s, f, PhysicsHelper.cpVectToCCPoint(v1), ref arr), null ); return(arr); }
/** Searches for physics shapes that intersects the ray. */ public void RayCast(Func <CCPhysicsWorld, CCPhysicsRayCastInfo, object, bool> func, CCPoint point1, CCPoint point2, object data) { cp.AssertWarn(func != null, "func shouldn't be nullptr"); if (func != null) { CCRayCastCallbackInfo info = new CCRayCastCallbackInfo(this, func, point1, point2, data); //Action<cpShape, cpVect, cpVect, float, object> func CCPhysicsWorldCallback.continues = true; this._info.getSpace().SegmentQuery( PhysicsHelper.CCPointToCpVect(point1), PhysicsHelper.CCPointToCpVect(point2), 1f, new cpShapeFilter(cp.NO_GROUP, cp.ALL_LAYERS, cp.ALL_LAYERS), (shape, v1, v2, f, o) => CCPhysicsWorldCallback.RayCastCallbackFunc(shape, f, PhysicsHelper.cpVectToCCPoint(v1), ref info), data ); } }