return seq_x;
}
+GLfloat GlSequence::right() const
+{
+ return length()-seq_x;
+}
+
void GlSequence::setY(GLfloat value)
{
seq_y = value;
Sequence::size_type GlSequence::leftbase(GLfloat left) const
{
- assert (seq_x == 0);
- left = ceil(left);
- if (left < seq_x)
+ left = ceil(left) - seq_x;
+ if (left < 0)
return 0;
else if (left > seq.size() )
return seq.size();
Sequence::size_type GlSequence::rightbase(GLfloat right) const
{
- assert (seq_x == 0);
- right = floor(right);
+ right = floor(right) - seq_x;
if (right > seq.size())
return seq.size();
- else
+ else if ( right < 0)
+ return 0;
+ else
return (Sequence::size_type)right;
}
Sequence::const_iterator
GlSequence::sequence_begin(GLfloat left, GLfloat right) const
{
- // the following code will be wrong when sequences can be slid around
- // so make sure we break.
- assert (seq_x == 0);
-
if ( leftbase(left) > seq.size() or left > right )
return seq.end();
else
Sequence::const_iterator
GlSequence::sequence_end(GLfloat left, GLfloat right) const
{
- // the following code will be wrong when sequences can be slid around
- // so make sure we break.
- assert (seq_x == 0);
-
if ( rightbase(right) > seq.size() or left > right )
return seq.end();
else