public PDragJoint(PBody b_0, float px, float py) { this.b = b_0; dragPoint = new Vector2f(px, py); localAnchor = new Vector2f(px - b_0.pos.x, py - b_0.pos.y); b_0.mAng.Transpose().MulEqual(localAnchor); anchor = b_0.mAng.Mul(localAnchor); anchor.AddLocal(b_0.pos); type = Physics.PJointType.DRAG_JOINT; mass = new PTransformer(); }
public PHingeJoint(PBody b1_0, PBody b2_1, float rel1x, float rel1y, float rel2x, float rel2y) { this.b1 = b1_0; this.b2 = b2_1; localAngle = b2_1.ang - b1_0.ang; localAnchor1 = new Vector2f(rel1x, rel1y); localAnchor2 = new Vector2f(rel2x, rel2y); b1_0.mAng.Transpose().MulEqual(localAnchor1); b2_1.mAng.Transpose().MulEqual(localAnchor2); anchor1 = b1_0.mAng.Mul(localAnchor1); anchor1.AddLocal(b1_0.pos); anchor2 = b2_1.mAng.Mul(localAnchor2); anchor2.AddLocal(b2_1.pos); type = Physics.PJointType.HINGE_JOINT; mass = new PTransformer(); impulse = new Vector2f(); }