]> Shamusworld >> Repos - architektonas/blobdiff - src/structs.h
Added base units & display style to drawing.
[architektonas] / src / structs.h
index 62366adaca188179d705dfe97e6c76f4819b1ab6..47d8d85a50795519943efebfea49879502c303e2 100644 (file)
@@ -60,6 +60,9 @@ struct Line {
        Line(Vector pt1, Vector pt2, float th = 1.0, uint32_t c = 0, int l = LSSolid):
                type(OTLine), id(Global::objectID++), layer(0), color(c), thickness(th),
                style(l), selected(false), hovered(false), hitObject(false) { p[0] = pt1; p[1] = pt2; hitPoint[0] = hitPoint[1] = false; }
+       Vector Vect(void) { return Vector(p[0], p[1]); }
+       Vector Unit(void) { return Vector(p[0], p[1]).Unit(); }
+       double Length(void) { return Vector(p[0], p[1]).Magnitude(); }
 };
 
 struct Circle {
@@ -116,7 +119,7 @@ struct Text {
        std::string s;
 
        Text(): type(OTText), id(Global::objectID++) {}
-       Text(Vector pt1, char * str, float th = 10.0, uint32_t c = 0):
+       Text(Vector pt1, const char * str, float th = 10.0, uint32_t c = 0):
                type(OTText), id(Global::objectID++), layer(0), color(c), thickness(th),
                style(LSSolid), selected(false), hovered(false), hitObject(false),
                measured(false), s(str) { p[0] = pt1; angle[0] = 0; }
@@ -153,7 +156,12 @@ struct Container {
        bool topLevel;
        Object * clicked;
 
-       Container(bool tl = false): type(OTContainer), id(Global::objectID++), selected(false), hovered(false), hitObject(false), topLevel(tl), clicked(NULL) {}
+       int baseUnit;            // Type of BasicUnit as seen above
+       int unitStyle;           // 0 = decimal, 1 = fractional
+       int decimalPrecision;    // 0-5, which, +1, is # of decimal places
+       int fractionalPrecision; // 0-5, which, +1, is 1/(2^n)
+
+       Container(bool tl = false): type(OTContainer), id(Global::objectID++), selected(false), hovered(false), hitObject(false), topLevel(tl), clicked(NULL), baseUnit(0), unitStyle(0), decimalPrecision(3), fractionalPrecision(4) {}
        void Add(void * obj) { objects.push_back(obj); }
        void Add(VPVector objs) { objects.insert(objects.end(), objs.begin(), objs.end()); }
 //     void DeleteContents(void) {}