Math question: Line intersecting a shape

I don’t know how many responses I’ll get to this, but any help would be appreciated. Since I’m terrible at explaining things, I’ll post a picture:

Basically, I have a shape, made up of an arbitrary number of points (4 in the example). The points are joined into a shape by constraints, which keep them a certain distance from each other. The shape will always be concave. The shape itself is an object, and is subject to the physics of the world. I already have this set up, so I’m not bothered with it.

What I want to be able to do is to cut the object into slices, creating two new objects dynamically, which would then react to the physics of the world. The division line should be arbitrary as well, because eventually I would like to be able to allow the user to control the devision with a mouse, by drawing the line (it would always be a straight line, regardless).

Obviously, I need to find the points where the cutting line intercepts the lines of the shape. From there I can re-arrange my points and constraints to create two new objects. However, I’m not sure of the math behind finding:
-if the line intersects a line on the shape
-if it goes straight through (half cut shapes could cause problems)
-where exactly the intersection occurs

I remember simple intersection tests from early high school, but they had lines with infinite length (whereas mine are finite), and involved finding equations of the lines which I don’t really want to do. However, I do have a nice vector class that I wrote that I don’t mind using. Any solution I can come up with ends up being complex, and I have a feeling this is a simple problem to solve.

My game doesn’t hinge around this, but it would be a nice feature to have if I can get it solved. If one of you could point me in the right direction, that would be great.