* have a name (type) listed in the algorithm. Hypothesis associated to
* father shape -are not- taken into account (see GetUsedHypothesis)
*/
- const list <const SMESHDS_Hypothesis *> &
+ const std::list <const SMESHDS_Hypothesis *> &
GetAppliedHypothesis(SMESH_Mesh & aMesh,
const TopoDS_Shape & aShape,
const bool ignoreAuxiliary=true);
bool NeedShape() const { return _requireShape; }
// 4 - is shape existance required
+ bool SupportSubmeshes() const { return _supportSubmeshes; }
+ // 5 - whether supports submeshes if !NeedDescretBoundary()
+
+
public:
// ==================================================================
// Methods to track non hierarchical dependencies between submeshes
* \brief store error and return error->IsOK()
*/
bool error(SMESH_ComputeErrorPtr error);
+ /*!
+ * \brief store a bad input element preventing computation,
+ * which may be a temporary one i.e. not residing the mesh,
+ * then it will be deleted by InitComputeError()
+ */
+ void addBadInputElement(const SMDS_MeshElement* elem);
protected:
std::list<const SMESHDS_Hypothesis *> _appliedHypList;
std::list<const SMESHDS_Hypothesis *> _usedHypList;
- bool _onlyUnaryInput;
- bool _requireDescretBoundary;
- bool _requireShape;
+ // Algo features influencing which Compute() and how is called:
+ // in what turn and with what input shape.
+ // This fields must be redefined if necessary by each descendant at constructor.
+ bool _onlyUnaryInput; // mesh one shape of GetDim() at once. Default TRUE
+ bool _requireDescretBoundary; // GetDim()-1 mesh must be present. Default TRUE
+ bool _requireShape; // work with GetDim()-1 mesh bound to geom only. Default TRUE
+ bool _supportSubmeshes; // if !_requireDescretBoundary. Default FALSE
// quadratic mesh creation required,
// is usually set trough SMESH_MesherHelper::IsQuadraticSubMesh()
int _error; //!< SMESH_ComputeErrorName or anything algo specific
std::string _comment; //!< any text explaining what is wrong in Compute()
+ std::list<const SMDS_MeshElement*> _badInputElements; //!< to explain COMPERR_BAD_INPUT_MESH
};
#endif