1 // Copyright (C) 2014-2020 CEA/DEN, EDF R&D
3 // This library is free software; you can redistribute it and/or
4 // modify it under the terms of the GNU Lesser General Public
5 // License as published by the Free Software Foundation; either
6 // version 2.1 of the License, or (at your option) any later version.
8 // This library is distributed in the hope that it will be useful,
9 // but WITHOUT ANY WARRANTY; without even the implied warranty of
10 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
11 // Lesser General Public License for more details.
13 // You should have received a copy of the GNU Lesser General Public
14 // License along with this library; if not, write to the Free Software
15 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
17 // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
20 #ifndef ModelAPI_ResultConstruction_H_
21 #define ModelAPI_ResultConstruction_H_
23 #include "ModelAPI_Result.h"
24 #include <GeomAPI_Shape.h>
25 #include <GeomAPI_Face.h>
29 /**\class ModelAPI_ResultConstruction
31 * \brief The construction element result of a feature.
33 * Provides a shape that may be displayed in the viewer.
34 * Intermediate, light result that in many cases produces a result on the fly.
36 MODELAPI_EXPORT class ModelAPI_ResultConstruction : public ModelAPI_Result
39 MODELAPI_EXPORT ModelAPI_ResultConstruction();
41 /// Returns the group identifier of this result
42 MODELAPI_EXPORT virtual std::string groupName();
44 /// Returns the group identifier of this result
45 inline static std::string group()
47 static std::string MY_GROUP = "Construction";
51 /// default color for a result construction
52 inline static const std::string& DEFAULT_COLOR()
54 static const std::string RESULT_CONSTRUCTION_COLOR("120,120,120");
55 return RESULT_CONSTRUCTION_COLOR;
58 /// default deflection for a result construction
59 inline static const std::string DEFAULT_DEFLECTION()
65 virtual void setShape(std::shared_ptr<GeomAPI_Shape> theShape) = 0;
67 /// Updates the shape taking the current value from the data structure, returns true
68 /// if update has been correctly done
69 virtual bool updateShape() = 0;
71 /// Sets the flag that it must be displayed in history (default is true)
72 virtual void setIsInHistory(const bool isInHistory) = 0;
74 /// if the construction result may be used as faces, this method returns not zero number of faces
75 /// \param theUpdateNaming is false of keeping the naming structure untouched (on load)
76 virtual int facesNum(const bool theUpdateNaming = true) = 0;
77 /// if the construction result may be used as faces, this method returns face by zero based index
78 virtual std::shared_ptr<GeomAPI_Face> face(const int theIndex) = 0;
79 /// Change the order of faces
80 virtual void setFacesOrder(const std::list<std::shared_ptr<GeomAPI_Face> >& theFaces) = 0;
82 /// By default object is not infinite.
83 virtual bool isInfinite() = 0;
84 /// Sets the flag that it is infinite
85 virtual void setInfinite(const bool theInfinite) = 0;
87 /*************************************************************************/
88 /// Changes for custom point color
90 inline static const std::string& DEFAULT_COLOR_CONFIG_NAME()
92 static const std::string RESULT_CONSTRUCTION_COLOR_CONFIG_NAME("result_construction_color");
93 return RESULT_CONSTRUCTION_COLOR_CONFIG_NAME;
96 inline void setColor(const std::string myColor, const std::string & myColorConfigName)
99 colorConfigName = myColorConfigName;
102 inline const std::string & getColor() const
107 inline const std::string & getColorConfigName() const
109 return colorConfigName;
114 std::string colorConfigName;
118 /// Specific properties for point
119 class ModelApi_PointColor
122 /// default color for a point construction
123 inline static const std::string& DEFAULT_COLOR()
125 static const std::string POINT_CONSTRUCTION_COLOR("85,85,0");
126 return POINT_CONSTRUCTION_COLOR;
129 inline static const std::string COLOR_CONFIG_NAME()
131 static const std::string POINT_CONFIG_COLOR_NAME("result_point_color");
132 return POINT_CONFIG_COLOR_NAME;
135 /*************************************************************************/
138 //! Pointer on feature object
139 typedef std::shared_ptr<ModelAPI_ResultConstruction> ResultConstructionPtr;