// For 'by'. bool SVGMotionSMILPathUtils::PathGenerator:: LineToRelative(const nsAString& aCoordPairStr, double& aSegmentDistance) { mHaveReceivedCommands = true; float xVal, yVal; if (!ParseCoordinatePair(aCoordPairStr, xVal, yVal)) { return false; } mPathBuilder->LineTo(mPathBuilder->CurrentPoint() + Point(xVal, yVal)); aSegmentDistance = NS_hypot(xVal, yVal); return true; }
// For 'from' and the first entry in 'values'. bool SVGMotionSMILPathUtils::PathGenerator:: MoveToAbsolute(const nsAString& aCoordPairStr) { MOZ_ASSERT(!mHaveReceivedCommands, "Not expecting requests for mid-path MoveTo commands"); mHaveReceivedCommands = true; float xVal, yVal; if (!ParseCoordinatePair(aCoordPairStr, xVal, yVal)) { return false; } mPathBuilder->MoveTo(Point(xVal, yVal)); return true; }
// For 'from' and the first entry in 'values'. bool SVGMotionSMILPathUtils::PathGenerator:: MoveToAbsolute(const nsAString& aCoordPairStr) { NS_ABORT_IF_FALSE(!mHaveReceivedCommands, "Not expecting requests for mid-path MoveTo commands"); mHaveReceivedCommands = true; float xVal, yVal; if (!ParseCoordinatePair(aCoordPairStr, xVal, yVal)) { return false; } mGfxContext.MoveTo(gfxPoint(xVal, yVal)); return true; }
// For 'to' and every entry in 'values' except the first. bool SVGMotionSMILPathUtils::PathGenerator:: LineToAbsolute(const nsAString& aCoordPairStr, double& aSegmentDistance) { mHaveReceivedCommands = true; float xVal, yVal; if (!ParseCoordinatePair(aCoordPairStr, xVal, yVal)) { return false; } gfxPoint initialPoint = mGfxContext.CurrentPoint(); mGfxContext.LineTo(gfxPoint(xVal, yVal)); aSegmentDistance = NS_hypot(initialPoint.x - xVal, initialPoint.y -yVal); return true; }