void SignalHandle::updateTransform() { bool tmp = moveItem_; moveItem_ = false; // set false so itemChange doesn't interrupt RSystemElementRoad *road = parentSignalRoadItem_->getRoad(); setPos(road->getGlobalPoint(0.0)); setRotation(road->getGlobalHeading(0.0)); moveItem_ = tmp; // reset }
void SignalHandle::updatePos(SignalRoadItem *signalRoadItem, const QPointF &position, double sStartHint, double sEndHint) { RSystemElementRoad *road = signalRoadItem->getRoad(); // Calculate road coordinate // // double s = road->getSFromGlobalPoint(position, sStartHint, sEndHint); // Set Item Pose // // setPos(road->getGlobalPoint(s, 0.0)); setRotation(road->getGlobalHeading(s)); // Line that spans the whole road // // QPainterPath path; path.moveTo(0.0, road->getMinWidth(s)); path.lineTo(0.0, road->getMaxWidth(s)); path.addPath(*pathTemplate_); setPath(path); }