You could have a look at the
Boost.Geometry library. It's very powerful and supports loads of geometric operations -- in your case, you can use use the
model::polygon class template to model the cone, and the
intersects() algorithm to check whether the object is contained. It's well possible that Boost.Geometry comes in handy in many other places of your application.
In case you already use Thor, it would also be possible to
triangulate the concave shape and check if one of the resulting triangles contains the point. Thor is simpler to get into, but more limited regarding geometry operations.