public override PShape2D CreateShape(GameObject root) { Fix64 radius = CalculateRadius(); Fix64 height = CalculateHeight(); CalculatePoints(height, radius, ref v1, ref v2); if (v1 == Fix64Vec2.zero || v2 == Fix64Vec2.zero) { return(null); } else { Fix64 angle = Fix64.zero; Fix64Vec2 center = Fix64Vec2.zero; if (gameObject != root) { angle = Fix64.DegToRad(_pTransform.localEulerAngles.z); center = (Fix64Vec2)_pTransform.localPosition; } return(Parallel2D.CreateCapsule(v1, v2, radius, center, angle)); } }