#include "painter.h"
-Dimension::Dimension(Vector p1, Vector p2, DimensionType dt/*= DTLinear*/ ,Object * p/*= NULL*/):
+Dimension::Dimension(Vector p1, Vector p2, DimensionType dt/*= DTLinear*/, Object * p/*= NULL*/):
Object(p1, p), endpoint(p2),
dragging(false), draggingHandle1(false), draggingHandle2(false),
length(p2.Magnitude()), dimensionType(dt), size(0.25), point1(NULL), point2(NULL)
// This is bad, p1 & p2 could be NULL, causing much consternation...
-Dimension::Dimension(Connection p1, Connection p2, DimensionType dt/*= DTLinear*/ , Object * p/*= NULL*/):
+Dimension::Dimension(Connection p1, Connection p2, DimensionType dt/*= DTLinear*/, Object * p/*= NULL*/):
dragging(false), draggingHandle1(false), draggingHandle2(false),
length(0), dimensionType(dt), size(0.25), point1(p1), point2(p2)
{
/*virtual*/ void Dimension::Draw(Painter * painter)
{
+#if 0
// If there are valid Vector pointers in here, use them to update the internal
// positions. Otherwise, we just use the internal positions by default.
if (point1.object)
if (point2.object)
endpoint = point2.object->GetPointAtParameter(point2.t);
+#endif
painter->SetPen(QPen(Qt::magenta, 2.0, Qt::DotLine));
}
+/*virtual*/ void Dimension::MovePointAtParameter(double parameter, Vector v)
+{
+ if (parameter == 0)
+ position += v;
+ else if (parameter == 1.0)
+ endpoint += v;
+ else
+ {} // Not sure how to handle this case :-P
+}
+
+
/*virtual*/ void Dimension::Connect(Object * obj, double param)
{
// There are four possibilities here...