- // Getting base shape and path.
- TopoDS_Shape aBaseShape;
- TopAbs_ShapeEnum aBaseShapeType;
- TopoDS_Wire aPathWire;
- if (!getBase(aBaseShape, aBaseShapeType, theBaseShape) ||
- !getPath(aPathWire, thePathShape)) {
+ // Getting base shape.
+ if(!theBaseShape.get()) {
+ return;
+ }
+ TopoDS_Shape aBaseShape = theBaseShape->impl<TopoDS_Shape>();
+ if(aBaseShape.IsNull()) {
+ return;
+ }
+ TopAbs_ShapeEnum aBaseShapeType = aBaseShape.ShapeType();
+ if(aBaseShapeType != TopAbs_VERTEX && aBaseShapeType != TopAbs_EDGE &&
+ aBaseShapeType != TopAbs_WIRE && aBaseShapeType != TopAbs_FACE &&
+ aBaseShapeType != TopAbs_SHELL && aBaseShapeType != TopAbs_COMPOUND) {