Constraint.h
Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024 #ifndef SKETCHER_CONSTRAINT_H
00025 #define SKETCHER_CONSTRAINT_H
00026
00027
00028 #include <Base/Persistence.h>
00029
00030 namespace Sketcher
00031 {
00032
00033 enum ConstraintType {
00034 None,
00035 Coincident,
00036 Horizontal,
00037 Vertical,
00038 Parallel,
00039 Tangent,
00040 Distance,
00041 DistanceX,
00042 DistanceY,
00043 Angle,
00044 Perpendicular,
00045 Radius,
00046 Equal,
00047 PointOnObject,
00048 Symmetric
00049 };
00050
00052 enum PointPos { none, start, end, mid };
00053
00054 class SketcherExport Constraint :public Base::Persistence
00055 {
00056 TYPESYSTEM_HEADER();
00057
00058 public:
00059 ~Constraint();
00060 Constraint();
00061 Constraint(const Constraint&);
00062 virtual Constraint *clone(void)const;
00063
00064 static const int GeoUndef;
00065
00066
00067 virtual unsigned int getMemSize(void) const;
00068 virtual void Save(Base::Writer &) const;
00069 virtual void Restore(Base::XMLReader &);
00070
00071 virtual PyObject *getPyObject(void);
00072
00073 friend class Sketch;
00074
00075 public:
00076 ConstraintType Type;
00077 std::string Name;
00078 double Value;
00079 int First;
00080 PointPos FirstPos;
00081 int Second;
00082 PointPos SecondPos;
00083 int Third;
00084 PointPos ThirdPos;
00085 float LabelDistance;
00086 };
00087
00088 }
00089
00090
00091 #endif // SKETCHER_CONSTRAINT_H