File indexing completed on 2026-09-13 09:15:31
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017 #ifndef _AIS_Circle_HeaderFile
0018 #define _AIS_Circle_HeaderFile
0019
0020 #include <AIS_InteractiveObject.hxx>
0021
0022 class Geom_Circle;
0023
0024
0025
0026 class AIS_Circle : public AIS_InteractiveObject
0027 {
0028 DEFINE_STANDARD_RTTIEXT(AIS_Circle, AIS_InteractiveObject)
0029 public:
0030
0031
0032 Standard_EXPORT AIS_Circle(const occ::handle<Geom_Circle>& aCircle);
0033
0034
0035
0036
0037
0038 Standard_EXPORT AIS_Circle(const occ::handle<Geom_Circle>& theCircle,
0039 const double theUStart,
0040 const double theUEnd,
0041 const bool theIsFilledCircleSens = false);
0042
0043
0044 int Signature() const override { return 6; }
0045
0046
0047 AIS_KindOfInteractive Type() const override { return AIS_KindOfInteractive_Datum; }
0048
0049
0050 const occ::handle<Geom_Circle>& Circle() const { return myComponent; }
0051
0052
0053
0054 void Parameters(double& theU1, double& theU2) const
0055 {
0056 theU1 = myUStart;
0057 theU2 = myUEnd;
0058 }
0059
0060
0061 void SetCircle(const occ::handle<Geom_Circle>& theCircle) { myComponent = theCircle; }
0062
0063
0064 void SetFirstParam(const double theU)
0065 {
0066 myUStart = theU;
0067 myCircleIsArc = true;
0068 }
0069
0070
0071 void SetLastParam(const double theU)
0072 {
0073 myUEnd = theU;
0074 myCircleIsArc = true;
0075 }
0076
0077 Standard_EXPORT void SetColor(const Quantity_Color& aColor) override;
0078
0079
0080 Standard_EXPORT void SetWidth(const double aValue) override;
0081
0082
0083 Standard_EXPORT void UnsetColor() override;
0084
0085
0086 Standard_EXPORT void UnsetWidth() override;
0087
0088
0089 bool IsFilledCircleSens() const { return myIsFilledCircleSens; }
0090
0091
0092
0093 void SetFilledCircleSens(const bool theIsFilledCircleSens)
0094 {
0095 myIsFilledCircleSens = theIsFilledCircleSens;
0096 }
0097
0098 private:
0099 Standard_EXPORT void Compute(const occ::handle<PrsMgr_PresentationManager>& thePrsMgr,
0100 const occ::handle<Prs3d_Presentation>& theprs,
0101 const int theMode) override;
0102
0103 Standard_EXPORT void ComputeSelection(const occ::handle<SelectMgr_Selection>& theSel,
0104 const int theMode) override;
0105
0106 Standard_EXPORT void ComputeCircle(const occ::handle<Prs3d_Presentation>& aPresentation);
0107
0108 Standard_EXPORT void ComputeArc(const occ::handle<Prs3d_Presentation>& aPresentation);
0109
0110 Standard_EXPORT void ComputeCircleSelection(const occ::handle<SelectMgr_Selection>& aSelection);
0111
0112 Standard_EXPORT void ComputeArcSelection(const occ::handle<SelectMgr_Selection>& aSelection);
0113
0114
0115 void replaceWithNewLineAspect(const occ::handle<Prs3d_LineAspect>& theAspect);
0116
0117 private:
0118 occ::handle<Geom_Circle> myComponent;
0119 double myUStart;
0120 double myUEnd;
0121 bool myCircleIsArc;
0122 bool myIsFilledCircleSens;
0123 };
0124
0125 #endif