+ /// Returns whether the shape is a shell
+ GEOMAPI_EXPORT
+ virtual bool isShell() const;
+
+ /// Returns whether the shape is a compound
+ GEOMAPI_EXPORT
+ virtual bool isCompound() const;
+
+ /// Returns whether the shape is a compound of solids
+ GEOMAPI_EXPORT
+ virtual bool isCompoundOfSolids() const;
+
+ /// Returns whether the shape is a compound where all elements are topologically connected
+ GEOMAPI_EXPORT
+ virtual bool isConnectedTopology() const;
+
+ /// Returns whether the shape is a solid
+ GEOMAPI_EXPORT
+ virtual bool isSolid() const;
+
+ /// Returns whether the shape is a compsolid
+ GEOMAPI_EXPORT
+ virtual bool isCompSolid() const;
+
+ /// Returns whether the shape is planar
+ GEOMAPI_EXPORT
+ virtual bool isPlanar() const;
+
+ /// Returns vertex or empty shape
+ GEOMAPI_EXPORT
+ std::shared_ptr<GeomAPI_Vertex> vertex() const;
+
+ /// Returns edge or empty shape
+ GEOMAPI_EXPORT
+ std::shared_ptr<GeomAPI_Edge> edge() const;
+
+ /// Returns wire or empty shape
+ GEOMAPI_EXPORT
+ std::shared_ptr<GeomAPI_Wire> wire() const;
+
+ /// Returns face or empty shape
+ GEOMAPI_EXPORT
+ std::shared_ptr<GeomAPI_Face> face() const;
+
+ /// Returns shell or empty shape
+ GEOMAPI_EXPORT
+ std::shared_ptr<GeomAPI_Shell> shell() const;
+
+ /// Returns solid or empty shape
+ GEOMAPI_EXPORT
+ std::shared_ptr<GeomAPI_Solid> solid() const;
+
+ /// Returns list of sub-shapes of the given type
+ GEOMAPI_EXPORT
+ std::list<std::shared_ptr<GeomAPI_Shape> > subShapes(ShapeType theSubShapeType) const;
+
+ /// Returns the shape type
+ GEOMAPI_EXPORT
+ virtual ShapeType shapeType() const;
+
+ /// Returns the type enumeration by the string-type
+ GEOMAPI_EXPORT static ShapeType shapeTypeByStr(std::string theType);
+
+ /// \return the shape type as string.
+ GEOMAPI_EXPORT
+ virtual std::string shapeTypeStr() const;
+
+ /// \return the shape orientation.
+ GEOMAPI_EXPORT virtual Orientation orientation() const;
+
+ /// Sets the shape orientation.
+ GEOMAPI_EXPORT virtual void setOrientation(const Orientation theOrientation);
+
+ /// Reverse shape
+ GEOMAPI_EXPORT virtual void reverse();
+
+ /// \return true if passed shape is a sub-shape of this shape.
+ /// \param theShape shape to search.
+ /// \param theCheckOrientation if false, returns true even if orientation of shape differs
+ GEOMAPI_EXPORT virtual bool isSubShape(const std::shared_ptr<GeomAPI_Shape> theShape,
+ const bool theCheckOrientation = true) const;
+