SHAPER 9.16.0
PlaneGCSSolver_EdgeWrapper.h
1// Copyright (C) 2014-2026 CEA, EDF
2//
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.
7//
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.
12//
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
16//
17// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
18//
19
20#ifndef PlaneGCSSolver_EdgeWrapper_H_
21#define PlaneGCSSolver_EdgeWrapper_H_
22
23#include <PlaneGCSSolver_Defs.h>
24#include <PlaneGCSSolver_BooleanWrapper.h>
25#include <PlaneGCSSolver_EntityWrapper.h>
26
31{
32public:
33 PlaneGCSSolver_EdgeWrapper(const GCSCurvePtr theEntity);
34
36 const GCSCurvePtr& entity() const
37 { return myEntity; }
39 GCSCurvePtr& changeEntity()
40 { return myEntity; }
41
43 virtual SketchSolver_EntityType type() const
44 { return myType; }
45
46 bool isDegenerated() const;
47
48 void setReversed(BooleanWrapperPtr theReversed)
49 { myReversed = theReversed; }
50
51 bool isReversed() const
52 { return myReversed ? myReversed->value() : false; }
53
54private:
55 SketchSolver_EntityType myType;
56 GCSCurvePtr myEntity;
57 BooleanWrapperPtr myReversed; // preferably used to control arc orientation
58};
59
60typedef std::shared_ptr<PlaneGCSSolver_EdgeWrapper> EdgeWrapperPtr;
61
62#endif
Wrapper providing operations with PlaneGCS entities (lines, circles and arcs).
Definition: PlaneGCSSolver_EdgeWrapper.h:31
GCSCurvePtr & changeEntity()
Return PlaneGCS geometric entity to change.
Definition: PlaneGCSSolver_EdgeWrapper.h:39
virtual SketchSolver_EntityType type() const
Return type of current entity.
Definition: PlaneGCSSolver_EdgeWrapper.h:43
const GCSCurvePtr & entity() const
Return PlaneGCS geometric entity.
Definition: PlaneGCSSolver_EdgeWrapper.h:36
Wrapper providing operations with entities regardless the solver.
Definition: PlaneGCSSolver_EntityWrapper.h:37