Our Solutions

Need professional assistance?
Consider our:

Support Offerings


Need to speed up your development?
Have a look at our:

Samples & Tools


Need some functionality extending standard OCCT capabilities?
Check out our:

Adv. Components

trimming a cylinder from PI to 3*PI (Geom_RectangularTrimmedSurface)

Mauro Mariotti's picture

It seems to me there is an inconsistency in the Geom_RectangularTrimmedSurface class.

It allows to trim the basis surface along both U and V parameters, or just along one of them.

Suppose I want to trim a Geom_CylindricalSurface with these parameters:
PI, 3*PI, 0, 100.
It is a closed cylinder, trimmed just along V from 0 to 100, but the U interval starts from PI instead of 0.
Which constructor should I use?
If I trim along both U and V, the internal flag isutrimmed is set to true.
Then the method IsUClosed returns Standard_False!
If I trim along V only, isutrimmed is set to false.
Then the method VIso creates a Geom_Circle which goes from 0 to 2*PI, not from PI to 3*PI

In my opinion the first option is correct (otherwise no information is kept about PI and
3*PI), but Geom_RectangularTrimmedSurface::IsUClosed, when isutrimmed is true, should
check if utrim1 and utrim2 are coincident and return Standard_True.
I wonder if this could give troubles to some OCC algorithms.