protected override void CopyTo(JointInfo target) { base.CopyTo(target); WeldJointInfo c = target as WeldJointInfo; c.localAnchorA = this.localAnchorA; c.localAnchorB = this.localAnchorB; c.refAngle = this.refAngle; }
private void DrawJoint(Canvas canvas, WeldJointInfo joint) { float angularCircleRadA = joint.BodyA.BoundRadius * 0.25f; float angularCircleRadB = joint.BodyB.BoundRadius * 0.25f; float anchorDist = this.GetAnchorDist(joint.BodyA, joint.BodyB, joint.LocalAnchorA, joint.LocalAnchorB); bool displaySecondCollider = anchorDist >= angularCircleRadA + angularCircleRadB; this.DrawLocalPosConstraint(canvas, joint.BodyA, joint.BodyB, joint.LocalAnchorA, joint.LocalAnchorB); this.DrawLocalAnchor(canvas, joint.BodyA, joint.LocalAnchorA); this.DrawLocalAnchor(canvas, joint.BodyB, joint.LocalAnchorB); this.DrawLocalAngleConstraint(canvas, joint.BodyA, joint.LocalAnchorA, joint.BodyB.GameObj.Transform.Angle - joint.RefAngle, joint.BodyA.GameObj.Transform.Angle, angularCircleRadA); if (displaySecondCollider) { this.DrawLocalAngleConstraint(canvas, joint.BodyB, joint.LocalAnchorB, joint.BodyA.GameObj.Transform.Angle + joint.RefAngle, joint.BodyB.GameObj.Transform.Angle, angularCircleRadB); } }