X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FModelAPI%2FModelAPI_Events.h;h=20d90f09cd551802a603c90e0b1e3c44ebd8da4a;hb=4d9c9b53936a9235a30588d1811d91efef81e1f2;hp=0547252dc1805f84529f2d1f6b2e12e6759c593f;hpb=1dfcab3d738e427bea678317e167c587dfbff195;p=modules%2Fshaper.git diff --git a/src/ModelAPI/ModelAPI_Events.h b/src/ModelAPI/ModelAPI_Events.h index 0547252dc..20d90f09c 100644 --- a/src/ModelAPI/ModelAPI_Events.h +++ b/src/ModelAPI/ModelAPI_Events.h @@ -1,4 +1,4 @@ -// Copyright (C) 2014-2020 CEA/DEN, EDF R&D +// Copyright (C) 2014-2022 CEA/DEN, EDF R&D // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public @@ -36,6 +36,7 @@ class ModelAPI_Document; class ModelAPI_ResultParameter; class GeomAPI_Pnt2d; +class GeomAPI_Shape; #if defined __GNUC__ || defined __clang__ #define MAYBE_UNUSED __attribute__((unused)) @@ -85,9 +86,11 @@ MAYBE_UNUSED static const char * EVENT_PREVIEW_BLOCKED = "PreviewBlocked"; /// To preview the current feature in the viewer (to compute the result) MAYBE_UNUSED static const char * EVENT_PREVIEW_REQUESTED = "PreviewRequested"; /// To block automatic recomputation of any feature (by the GUI button press) -MAYBE_UNUSED static const char * EVENT_AUTOMATIC_RECOMPUTATION_DISABLE = "DisableAutomaticRecomputation"; +MAYBE_UNUSED static const char * EVENT_AUTOMATIC_RECOMPUTATION_DISABLE + = "DisableAutomaticRecomputation"; /// To unblock block automatic recomputation (default state: the GUI button unpressed) -MAYBE_UNUSED static const char * EVENT_AUTOMATIC_RECOMPUTATION_ENABLE = "EnableAutomaticRecomputation"; +MAYBE_UNUSED static const char * EVENT_AUTOMATIC_RECOMPUTATION_ENABLE + = "EnableAutomaticRecomputation"; /// Event ID that solver has conflicting constraints (comes with ModelAPI_SolverFailedMessage) MAYBE_UNUSED static const char * EVENT_SOLVER_FAILED = "SolverFailed"; @@ -116,6 +119,19 @@ MAYBE_UNUSED static const char * EVENT_DOF_OBJECTS = "DoFObjects"; /// Event ID that requests updates visual attributes for presentations MAYBE_UNUSED static const char * EVENT_VISUAL_ATTRIBUTES = "UpdateVisualAttributes"; +/// Event ID that 1D-fillet failed (comes with ModelAPI_ShapesFailedMessage) +MAYBE_UNUSED static const char * EVENT_OPERATION_SHAPES_FAILED = "OperationShapesFailed"; + +MAYBE_UNUSED static const char * EVENT_CHECK_CONSTRAINTS = "CheckConstrains"; + +MAYBE_UNUSED static const char * EVENT_REMOVE_CONSTRAINTS = "RemoveConstrains"; + +/// Event ID that license of specified features is checked and valid +MAYBE_UNUSED static const char * EVENT_FEATURE_LICENSE_VALID = "FeaturesLicenseValid"; + +/// To send preferences information: create part on init or not +MAYBE_UNUSED static const char * EVENT_CREATE_PART_ON_START = "CreatePartOnStart"; + /// Message that feature was changed (used for Object Browser update): moved, updated and deleted class MODELAPI_EXPORT ModelAPI_ObjectUpdatedMessage : public Events_MessageGroup @@ -346,12 +362,102 @@ class ModelAPI_ParameterEvalMessage : public Events_Message MODELAPI_EXPORT const std::string& error() const; }; +class ModelAPI_ImportParametersMessage : public Events_Message +{ + std::string myFilename; ///< filename where where parameters are stored + std::string myError; ///< error of processing, empty if there is no error + +public: + /// Static. Returns EventID of the message. + MODELAPI_EXPORT static Events_ID& eventId() + { + static const char* MY_PARAMETER_EVALUATION_EVENT_ID("ImportParametersMessage"); + static Events_ID anId = Events_Loop::eventByName(MY_PARAMETER_EVALUATION_EVENT_ID); + return anId; + } + + /// Useful method that creates and sends the event. + /// Returns the message, processed, with the resulting fields filled. + MODELAPI_EXPORT static std::shared_ptr + send(std::string theParameter, const void* theSender) + { + std::shared_ptr aMessage = + std::shared_ptr( + new ModelAPI_ImportParametersMessage(eventId(), theSender)); + aMessage->setFilename(theParameter); + Events_Loop::loop()->send(aMessage); + return aMessage; + } + + /// Creates an empty message + MODELAPI_EXPORT ModelAPI_ImportParametersMessage(const Events_ID theID, + const void* theSender = 0); + /// The virtual destructor + MODELAPI_EXPORT virtual ~ModelAPI_ImportParametersMessage(); + + /// Returns a filename stored in the message + MODELAPI_EXPORT std::string filename() const; + /// Sets a filename to the message + MODELAPI_EXPORT void setFilename(std::string theFilename); +}; + +class ModelAPI_BuildEvalMessage : public Events_Message +{ + FeaturePtr myParam; ///< parameters that should be evaluated + bool myIsProcessed; ///< true if results were set + std::string myError; ///< error of processing, empty if there is no error + /// result of processing, list of parameters in expression found + std::list > myParamsList; + + public: + /// Static. Returns EventID of the message. + MODELAPI_EXPORT static Events_ID& eventId() + { + static const char * MY_BUILD_EVALUATION_EVENT_ID("BuildEvaluationRequest"); + static Events_ID anId = Events_Loop::eventByName(MY_BUILD_EVALUATION_EVENT_ID); + return anId; + } + + /// Useful method that creates and sends the event. + /// Returns the message, processed, with the resulting fields filled. + MODELAPI_EXPORT static std::shared_ptr + send(FeaturePtr theParameter, const void* theSender) + { + std::shared_ptr aMessage = + std::shared_ptr( + new ModelAPI_BuildEvalMessage(eventId(), theSender)); + aMessage->setParameter(theParameter); + Events_Loop::loop()->send(aMessage); + return aMessage; + } + + /// Creates an empty message + MODELAPI_EXPORT ModelAPI_BuildEvalMessage(const Events_ID theID, const void* theSender = 0); + /// The virtual destructor + MODELAPI_EXPORT virtual ~ModelAPI_BuildEvalMessage(); + + /// Returns a parameter stored in the message + MODELAPI_EXPORT FeaturePtr parameter() const; + /// Sets a parameter to the message + MODELAPI_EXPORT void setParameter(FeaturePtr theParam); + /// Sets the results of processing + MODELAPI_EXPORT void setResults( + const std::list >& theParamsList, + const std::string& theError); + /// Returns the results of processing: list of parameters found in the expression + MODELAPI_EXPORT const std::list >& params() const; + /// Returns true if the expression is processed + MODELAPI_EXPORT bool isProcessed(); + + /// Returns the interpreter error (empty if no error) + MODELAPI_EXPORT const std::string& error() const; +}; /// Message to ask compute the positions of parameters in the expression class ModelAPI_ComputePositionsMessage : public Events_Message { - std::string myExpression; ///< the expression string - std::string myParamName; ///< name of the parameter to be searched + std::wstring myExpression; ///< the expression string + std::wstring myParamName; ///< name of the parameter to be searched std::list > myPositions; ///< computation result: start-end position indices public: @@ -366,7 +472,7 @@ public: /// Useful method that creates and sends the AttributeEvalMessage event /// Returns the message, processed, with the resulting fields filled MODELAPI_EXPORT static std::shared_ptr - send(const std::string& theExpression, const std::string& theParameter, const void* theSender) + send(const std::wstring& theExpression, const std::wstring& theParameter, const void* theSender) { std::shared_ptr aMessage = std::shared_ptr( @@ -383,11 +489,11 @@ public: MODELAPI_EXPORT virtual ~ModelAPI_ComputePositionsMessage(); /// Returns an expression stored in the message - MODELAPI_EXPORT const std::string& expression() const; + MODELAPI_EXPORT const std::wstring& expression() const; /// Returns a parameter name stored in the message - MODELAPI_EXPORT const std::string& parameter() const; + MODELAPI_EXPORT const std::wstring& parameter() const; /// Sets an expression and parameter needed for computation - MODELAPI_EXPORT void set(const std::string& theExpression, const std::string& theParameter); + MODELAPI_EXPORT void set(const std::wstring& theExpression, const std::wstring& theParameter); /// Sets the results of processing MODELAPI_EXPORT void setPositions(const std::list >& thePositions); /// Returns the results of processing: position start and end indices @@ -398,8 +504,8 @@ public: class ModelAPI_ObjectRenamedMessage : public Events_Message { ObjectPtr myObject; - std::string myOldName; - std::string myNewName; + std::wstring myOldName; + std::wstring myNewName; public: /// Static. Returns EventID of the message. @@ -412,8 +518,8 @@ class ModelAPI_ObjectRenamedMessage : public Events_Message /// Useful method that creates and sends the AttributeEvalMessage event MODELAPI_EXPORT static void send(ObjectPtr theObject, - const std::string& theOldName, - const std::string& theNewName, + const std::wstring& theOldName, + const std::wstring& theNewName, const void* theSender); /// Creates an empty message @@ -426,13 +532,13 @@ class ModelAPI_ObjectRenamedMessage : public Events_Message /// Sets an object MODELAPI_EXPORT void setObject(ObjectPtr theObject); /// Returns an old name - MODELAPI_EXPORT std::string oldName() const; + MODELAPI_EXPORT std::wstring oldName() const; /// Sets an old name - MODELAPI_EXPORT void setOldName(const std::string& theOldName); + MODELAPI_EXPORT void setOldName(const std::wstring& theOldName); /// Returns a new name - MODELAPI_EXPORT std::string newName() const; + MODELAPI_EXPORT std::wstring newName() const; /// Sets a new name - MODELAPI_EXPORT void setNewName(const std::string& theNewName); + MODELAPI_EXPORT void setNewName(const std::wstring& theNewName); }; /// Message that the parameter should be replaced with its value @@ -538,4 +644,72 @@ public: { return myCurrentPosition; } }; +/// Message that sends the failed vertices of 1D-fillet to highlight them in 3D viewer +class ModelAPI_ShapesFailedMessage : public Events_Message +{ +public: + /// Creates an message + MODELAPI_EXPORT ModelAPI_ShapesFailedMessage(const Events_ID theID, const void* theSender = 0); + /// Default destructor + MODELAPI_EXPORT virtual ~ModelAPI_ShapesFailedMessage(); + /// Static. Returns EventID of the message. + MODELAPI_EXPORT static Events_ID eventId() + { + return Events_Loop::eventByName(EVENT_OPERATION_SHAPES_FAILED); + } + + /// Sets list of failed vertices + MODELAPI_EXPORT void setShapes(const std::list< std::shared_ptr >& theVertices); + /// Returns list of failed vertices + MODELAPI_EXPORT const std::list< std::shared_ptr >& shapes() const; + +private: + std::list< std::shared_ptr > myShapes; +}; + +///Message that sends the constraints to check or remove +class ModelAPI_CheckConstraintsMessage : public Events_Message +{ +public: + /// Creates an empty message + MODELAPI_EXPORT ModelAPI_CheckConstraintsMessage( + const Events_ID theID, const void* theSender = 0); + /// The virtual destructor + MODELAPI_EXPORT virtual ~ModelAPI_CheckConstraintsMessage(); + + ///Get list of constrains + MODELAPI_EXPORT const std::set& constraints() const; + + ///Set list of constrains + MODELAPI_EXPORT void setConstraints(const std::set& theConstraints); + +private: + std::set myConstraints; +}; + + +/// Message that sends the features which license is checked and valid +class ModelAPI_FeaturesLicenseValidMessage : public Events_Message +{ +public: + /// Creates an message + MODELAPI_EXPORT + ModelAPI_FeaturesLicenseValidMessage(const Events_ID theID, const void* theSender = 0); + /// Default destructor + MODELAPI_EXPORT virtual ~ModelAPI_FeaturesLicenseValidMessage(); + /// Static. Returns EventID of the message. + MODELAPI_EXPORT static Events_ID eventId() + { + return Events_Loop::eventByName(EVENT_FEATURE_LICENSE_VALID); + } + + /// Sets list of features with valid license + MODELAPI_EXPORT void setFeatures(const std::set& theFeatures); + /// Returns list of features with valid license + MODELAPI_EXPORT const std::set& features() const; + +private: + std::set myFeatures; +}; + #endif