Brep is invalid after transforming

I am using Rhino5 c++ SDK, and have situation where after transforming the brep with ON_Xform the brep becomes invalid - IsValid returns false, although the brep is valid before the transformation. Also , the ON_Xform matrix that is used to transform the mandrel is valid and well formed - checked with the function xForm.IsValid() it returns true.
The log from the ON_Brep::IsValid method returns the following string for the reason why the brep is not valid : “ON_Brep.m_T[0].m_bRev3d = false, but closed curve directions are opposite”.

Unfortunately I cant send you the example brep for testing, so question is : is this possible valid brep to become invalid after transformation and why?

It sounds like a bug to me. If you are able to share the geometry with McNeel you can consider sending it to them so they can take a look.

Meanwhile, you can maybe use ON_Brep::Standardize() in case that the BRep is not valid.

Unfortunately it does not help, I added Standardize and Compact call before and after the transformation of the brep, brep is still not valid after the transformation.

Hi @Elizabeta,

For us to provide any help, we’re going to need to reproduce what you are seeing. Feel free to email me directly if needed.


– Dale