if (rod_height_)
{
rod_height_ += line.tallness_;
+ spring_len_ += last_line_.spring_length (line);
+
}
else
{
first_line_ = line;
}
- // line.space_ measures the spring which goes from the bottom refpoint
- // of one system to the top refpoint of the next. spring_len_ measures
- // how much of that is stretchable.
- Real refpoint_dist = last_line_.tallness_
- + last_line_.refpoint_extent_[DOWN]
- - line.refpoint_extent_[UP];
- spring_len_ += max (0.0, line.space_ - refpoint_dist);
inverse_spring_k_ += line.inverse_hooke_;
last_line_ = line;
void
Page_spacing::prepend_system (const Line_details &line)
{
- if (!rod_height_)
+ if (rod_height_)
+ spring_len_ += line.spring_length (first_line_);
+ else
last_line_ = line;
rod_height_ -= first_line_.full_height ();
rod_height_ += first_line_.tallness_;
rod_height_ += line.full_height();
- Real refpoint_dist = line.tallness_
- + line.refpoint_extent_[DOWN]
- - first_line_.refpoint_extent_[UP];
- spring_len_ += max (0.0, line.space_ - refpoint_dist);
inverse_spring_k_ += line.inverse_hooke_;
first_line_ = line;