Draw a very long line from one of the vertices and collect the intersections with the green line. If the number of intersections is an odd number, it is inside. 0 or even intersection points, means outside.
Uhm, never mind. There is also a Containment Test node, so after the intersection you can check for one vertice to be inside the polygon of the other object.
FYI: The containment test node is slower than patching the larger surface and checking to see if the point intersects the surface with a Geometry.DoesIntersect node. Why? I don’t know… but if you sequentially add points to the base polygon you’re checking for containment with you can start to see the impact on speed.
Beyond the area test which can have issues with floating point comparison, you can take the difference of the object and the container; if the resulting surface has a “NO FACES IN BODY” error you are entirely enclosed.
Function Compose with Surface.Difference (and the larger surface plugged into the other input) and an IsNull’ node as the two functions then connected to a Function Apply` node would help prevent the warning.