For any measurement types that are not supported already by an existing markup, you can create your own custom markup by a little Python scripting. The idea is that you use markups to position models. You can add an observer to the markup so that if a control point position is changed then you get notified and you update the model.
There are a few simple examples in the script repository, as this. There is a more complex example here:
I would recommend using a vtkSphereSource for drawing a circle because then you don’t need to worry about orientation.