Thank you for reaching out to us. Unfortunately, your question is a bit ambiguous, especially regarding how you register your plugin and what you would consider to be "to be completely ignored", and finally the code you have written.
ObjectData example plugin Rounded Tube does overwrite
::GetDimension and it does what I would expect it to do.
ObjectData::GetDimension is called when
BaseObject::GetDimension is invoked (or its Python counter parts
.GetRad()). The call chain from
BaseObject::GetDimension goes through our core and visits during this also
ObjectData::GetDimension. There are of course fallback methods in place which take over when
ObjectData::GetDimension is not implemented, but I neither see any general conditions which would suppress the output from
ObjectData::GetDimension nor is there a difference when I inspect the values.
- The only central exit conditions are:
a. The plugin interface is the null pointer.
b. The plugin is
SplineObject.GetDimension will be called on the cache of the Spline object generator your plugin is implementing.
ObjectData::GetDimension will be called with the bounding box values which have been calculated so far.
- Other events and entities are also calling this same chain, and from what I can see, they all work properly.
BaseObject::GetDimension indirectly from Python, the returned value
250, 50, 250 lines up with the value
500, 100, 500 in the Coordinate Manager. Note that
GetDimension asks for the 'radii' of the bounding box, not its diameters. So, you must return half the value for each bounding box axis.
RoundedTube::GetDimension being called, setting these values, the break point is on the method scope exit, and shown are the returned values for