How to recognize that some surface point is degenerated?

I need a tool to recognize that some surface point is degenerated.
For example, I would recognize that some vertex of a curve loop (surface boundary) is degenerated. Namely, to recognize poles of a sphere and a cone.
Thank you very much in advance.

Mikhail Sazonov's picture

In order to recognize degeneracy in a face boundary you need to find a degenerated edge. Such edge has no 3d curve. It has only 2d curve, and usually it is a line segment. In 3d space only one vertex represents such edge, and this vertex belongs to both ends of the edge. Such edge has a special degenerated flag. See the method BRep_Tool::Degenerated().

Michael Ermakov's picture

Thank you for your prompt reply, Mikhail!

I have some doubt, concerning your recipe. Consider 1/8th regular part of a sphere (body) with a pole as one vertex. It has one spherical surface and three plane surfaces. There are three edges that contain the pole and there are three surfaces to which the pole is belonged. However, even all these three surfaces contains degenerated edges, only spherical surface has degenerated point (the pole of the sphere). And, from my point of view, the pole of the sphere for the plane surfaces should not be a degenerated one. Am I wrong? Or common edges of spherical and plane surfaces are not mathematically the same?

Mikhail Sazonov's picture

The degenerated edge cannot be shared between faces. It can belong to only one face. In this case it is spherical face. The planar faces contain only general vertex in the place of the pole.