fixed broken automation-drawing for floatModels
git-svn-id: https://lmms.svn.sf.net/svnroot/lmms/trunk/lmms@1062 0778d3d1-df1d-0410-868b-ea421aaaa00d
This commit is contained in:
@@ -2,7 +2,7 @@
|
||||
* automation_editor.h - declaration of class automationEditor which is a window
|
||||
* where you can edit dynamic values in an easy way
|
||||
*
|
||||
* Copyright (c) 2006-2007 Javier Serrano Polo <jasp00/at/users.sourceforge.net>
|
||||
* Copyright (c) 2006-2008 Javier Serrano Polo <jasp00/at/users.sourceforge.net>
|
||||
*
|
||||
* This file is part of Linux MultiMedia Studio - http://lmms.sourceforge.net
|
||||
*
|
||||
@@ -49,7 +49,7 @@ class automationEditor : public QWidget, public journallingObject
|
||||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
void FASTCALL setCurrentPattern( automationPattern * _new_pattern );
|
||||
void setCurrentPattern( automationPattern * _new_pattern );
|
||||
|
||||
inline const automationPattern * currentPattern( void ) const
|
||||
{
|
||||
@@ -64,9 +64,8 @@ public:
|
||||
int quantization( void ) const;
|
||||
|
||||
|
||||
virtual void FASTCALL saveSettings( QDomDocument & _doc,
|
||||
QDomElement & _parent );
|
||||
virtual void FASTCALL loadSettings( const QDomElement & _this );
|
||||
virtual void saveSettings( QDomDocument & _doc, QDomElement & _parent );
|
||||
virtual void loadSettings( const QDomElement & _this );
|
||||
inline virtual QString nodeName( void ) const
|
||||
{
|
||||
return( "automation-editor" );
|
||||
@@ -90,13 +89,13 @@ protected:
|
||||
virtual void resizeEvent( QResizeEvent * _re );
|
||||
virtual void wheelEvent( QWheelEvent * _we );
|
||||
|
||||
int FASTCALL getLevel( int _y );
|
||||
float getLevel( int _y );
|
||||
static inline void drawValueRect( QPainter & _p, int _x, int _y,
|
||||
int _width, int _height,
|
||||
const bool _is_selected );
|
||||
void removeSelection( void );
|
||||
void selectAll( void );
|
||||
void FASTCALL getSelectedValues( timeMap & _selected_values );
|
||||
void getSelectedValues( timeMap & _selected_values );
|
||||
|
||||
|
||||
protected slots:
|
||||
@@ -187,11 +186,12 @@ private:
|
||||
comboBoxModel m_quantizeModel;
|
||||
|
||||
automationPattern * m_pattern;
|
||||
int m_min_level;
|
||||
int m_max_level;
|
||||
int m_scroll_level;
|
||||
int m_bottom_level;
|
||||
int m_top_level;
|
||||
float m_minLevel;
|
||||
float m_maxLevel;
|
||||
float m_step;
|
||||
float m_scrollLevel;
|
||||
float m_bottomLevel;
|
||||
float m_topLevel;
|
||||
|
||||
void updateTopBottomLevels( void );
|
||||
|
||||
|
||||
@@ -79,11 +79,12 @@ automationEditor::automationEditor( void ) :
|
||||
m_zoomingYModel(),
|
||||
m_quantizeModel(),
|
||||
m_pattern( NULL ),
|
||||
m_min_level( 0 ),
|
||||
m_max_level( 0 ),
|
||||
m_scroll_level( 0 ),
|
||||
m_bottom_level( 0 ),
|
||||
m_top_level( 0 ),
|
||||
m_minLevel( 0 ),
|
||||
m_maxLevel( 0 ),
|
||||
m_step( 1 ),
|
||||
m_scrollLevel( 0 ),
|
||||
m_bottomLevel( 0 ),
|
||||
m_topLevel( 0 ),
|
||||
m_currentPosition(),
|
||||
m_action( NONE ),
|
||||
m_moveStartLevel( 0 ),
|
||||
@@ -384,14 +385,16 @@ void automationEditor::setCurrentPattern( automationPattern * _new_pattern )
|
||||
if( validPattern() == FALSE )
|
||||
{
|
||||
setWindowTitle( tr( "Automation Editor - no pattern" ) );
|
||||
m_min_level = m_max_level = m_scroll_level = 0;
|
||||
m_minLevel = m_maxLevel = m_scrollLevel = 0;
|
||||
m_step = 1;
|
||||
resizeEvent( NULL );
|
||||
return;
|
||||
}
|
||||
|
||||
m_min_level = m_pattern->object()->minValue<float>();
|
||||
m_max_level = m_pattern->object()->maxValue<float>();
|
||||
m_scroll_level = ( m_min_level + m_max_level ) / 2;
|
||||
m_minLevel = m_pattern->object()->minValue<float>();
|
||||
m_maxLevel = m_pattern->object()->maxValue<float>();
|
||||
m_step = m_pattern->object()->step<float>();
|
||||
m_scrollLevel = ( m_minLevel + m_maxLevel ) / 2;
|
||||
|
||||
timeMap & time_map = m_pattern->getTimeMap();
|
||||
//TODO: This is currently unused
|
||||
@@ -659,7 +662,7 @@ void automationEditor::mousePressEvent( QMouseEvent * _me )
|
||||
|
||||
if( _me->y() > TOP_MARGIN )
|
||||
{
|
||||
int level = getLevel( _me->y() );
|
||||
float level = getLevel( _me->y() );
|
||||
|
||||
int x = _me->x();
|
||||
|
||||
@@ -814,7 +817,7 @@ void automationEditor::mouseMoveEvent( QMouseEvent * _me )
|
||||
|
||||
if( _me->y() > TOP_MARGIN )
|
||||
{
|
||||
int level = getLevel( _me->y() );
|
||||
float level = getLevel( _me->y() );
|
||||
int x = _me->x();
|
||||
|
||||
if( _me->x() <= VALUES_WIDTH )
|
||||
@@ -1006,15 +1009,15 @@ void automationEditor::mouseMoveEvent( QMouseEvent * _me )
|
||||
if( m_selectedLevels > 0 )
|
||||
{
|
||||
if( m_selectStartLevel + level_diff
|
||||
< m_min_level )
|
||||
< m_minLevel )
|
||||
{
|
||||
level_diff = m_min_level -
|
||||
level_diff = m_minLevel -
|
||||
m_selectStartLevel;
|
||||
}
|
||||
else if( m_selectStartLevel + m_selectedLevels +
|
||||
level_diff > m_max_level )
|
||||
level_diff > m_maxLevel )
|
||||
{
|
||||
level_diff = m_max_level -
|
||||
level_diff = m_maxLevel -
|
||||
m_selectStartLevel -
|
||||
m_selectedLevels;
|
||||
}
|
||||
@@ -1022,16 +1025,16 @@ void automationEditor::mouseMoveEvent( QMouseEvent * _me )
|
||||
else
|
||||
{
|
||||
if( m_selectStartLevel + m_selectedLevels +
|
||||
level_diff < m_min_level )
|
||||
level_diff < m_minLevel )
|
||||
{
|
||||
level_diff = m_min_level -
|
||||
level_diff = m_minLevel -
|
||||
m_selectStartLevel -
|
||||
m_selectedLevels;
|
||||
}
|
||||
else if( m_selectStartLevel + level_diff >
|
||||
m_max_level )
|
||||
m_maxLevel )
|
||||
{
|
||||
level_diff = m_max_level -
|
||||
level_diff = m_maxLevel -
|
||||
m_selectStartLevel;
|
||||
}
|
||||
}
|
||||
@@ -1117,24 +1120,24 @@ void automationEditor::mouseMoveEvent( QMouseEvent * _me )
|
||||
m_selectStartTick );
|
||||
}
|
||||
|
||||
int level = getLevel( _me->y() );
|
||||
float level = getLevel( _me->y() );
|
||||
|
||||
if( level <= m_bottom_level )
|
||||
if( level <= m_bottomLevel )
|
||||
{
|
||||
QCursor::setPos( mapToGlobal( QPoint( _me->x(),
|
||||
height() -
|
||||
SCROLLBAR_SIZE ) ) );
|
||||
m_topBottomScroll->setValue(
|
||||
m_topBottomScroll->value() + 1 );
|
||||
level = m_bottom_level;
|
||||
level = m_bottomLevel;
|
||||
}
|
||||
else if( level >= m_top_level )
|
||||
else if( level >= m_topLevel )
|
||||
{
|
||||
QCursor::setPos( mapToGlobal( QPoint( _me->x(),
|
||||
TOP_MARGIN ) ) );
|
||||
m_topBottomScroll->setValue(
|
||||
m_topBottomScroll->value() - 1 );
|
||||
level = m_top_level;
|
||||
level = m_topLevel;
|
||||
}
|
||||
m_selectedLevels = level - m_selectStartLevel;
|
||||
if( level <= m_selectStartLevel )
|
||||
@@ -1154,13 +1157,13 @@ void automationEditor::mouseMoveEvent( QMouseEvent * _me )
|
||||
inline void automationEditor::drawCross( QPainter & _p )
|
||||
{
|
||||
QPoint mouse_pos = mapFromGlobal( QCursor::pos() );
|
||||
int level = getLevel( mouse_pos.y() );
|
||||
float level = getLevel( mouse_pos.y() );
|
||||
int grid_bottom = height() - SCROLLBAR_SIZE - 1;
|
||||
int cross_y = m_y_auto ?
|
||||
grid_bottom - (int)roundf( ( grid_bottom - TOP_MARGIN )
|
||||
* ( level - m_min_level )
|
||||
/ (float)( m_max_level - m_min_level ) ) :
|
||||
grid_bottom - ( level - m_bottom_level ) * m_y_delta;
|
||||
float cross_y = m_y_auto ?
|
||||
grid_bottom - ( ( grid_bottom - TOP_MARGIN )
|
||||
* ( level - m_minLevel )
|
||||
/ (float)( m_maxLevel - m_minLevel ) ) :
|
||||
grid_bottom - ( level - m_bottomLevel ) * m_y_delta;
|
||||
|
||||
_p.setPen( QColor( 0xFF, 0x33, 0x33 ) );
|
||||
_p.drawLine( VALUES_WIDTH, cross_y, width(), cross_y );
|
||||
@@ -1199,7 +1202,7 @@ void automationEditor::paintEvent( QPaintEvent * _pe )
|
||||
if( m_y_auto )
|
||||
{
|
||||
int y[] = { grid_bottom, TOP_MARGIN + font_height / 2 };
|
||||
int level[] = { m_min_level, m_max_level };
|
||||
float level[] = { m_minLevel, m_maxLevel };
|
||||
for( int i = 0; i < 2; ++i )
|
||||
{
|
||||
const QString & label = m_pattern->object()
|
||||
@@ -1217,7 +1220,7 @@ void automationEditor::paintEvent( QPaintEvent * _pe )
|
||||
else
|
||||
{
|
||||
int y = grid_bottom;
|
||||
int level = m_bottom_level;
|
||||
int level = m_bottomLevel;
|
||||
int printable = tMax( 1, 5 * DEFAULT_Y_DELTA
|
||||
/ m_y_delta );
|
||||
int module = level % printable;
|
||||
@@ -1228,7 +1231,7 @@ void automationEditor::paintEvent( QPaintEvent * _pe )
|
||||
y -= inv_module * m_y_delta;
|
||||
level += inv_module;
|
||||
}
|
||||
for( ; y >= TOP_MARGIN && level <= m_top_level;
|
||||
for( ; y >= TOP_MARGIN && level <= m_topLevel;
|
||||
y -= printable * m_y_delta, level += printable )
|
||||
{
|
||||
const QString & label = m_pattern->object()
|
||||
@@ -1257,9 +1260,9 @@ void automationEditor::paintEvent( QPaintEvent * _pe )
|
||||
|
||||
if( m_pattern )
|
||||
{
|
||||
int x_line_end = m_y_auto || m_top_level < m_max_level ?
|
||||
int x_line_end = m_y_auto || m_topLevel < m_maxLevel ?
|
||||
TOP_MARGIN :
|
||||
grid_bottom - ( m_top_level - m_bottom_level )
|
||||
grid_bottom - ( m_topLevel - m_bottomLevel )
|
||||
* m_y_delta;
|
||||
|
||||
for( int x = VALUES_WIDTH - offset; x < width();
|
||||
@@ -1304,8 +1307,8 @@ void automationEditor::paintEvent( QPaintEvent * _pe )
|
||||
}
|
||||
else
|
||||
{
|
||||
for( int y = grid_bottom, level = m_bottom_level;
|
||||
y >= TOP_MARGIN && level <= m_top_level;
|
||||
for( int y = grid_bottom, level = m_bottomLevel;
|
||||
y >= TOP_MARGIN && level <= m_topLevel;
|
||||
y -= m_y_delta, ++level )
|
||||
{
|
||||
if( level % 5 == 0 )
|
||||
@@ -1335,11 +1338,11 @@ void automationEditor::paintEvent( QPaintEvent * _pe )
|
||||
qSwap<int>( sel_pos_start, sel_pos_end );
|
||||
}
|
||||
|
||||
int sel_level_start = m_selectStartLevel;
|
||||
int sel_level_end = sel_level_start + m_selectedLevels;
|
||||
if( sel_level_start > sel_level_end )
|
||||
int selLevel_start = m_selectStartLevel;
|
||||
int selLevel_end = selLevel_start + m_selectedLevels;
|
||||
if( selLevel_start > selLevel_end )
|
||||
{
|
||||
qSwap<int>( sel_level_start, sel_level_end );
|
||||
qSwap<int>( selLevel_start, selLevel_end );
|
||||
}
|
||||
|
||||
if( validPattern() == TRUE )
|
||||
@@ -1351,7 +1354,7 @@ void automationEditor::paintEvent( QPaintEvent * _pe )
|
||||
--it;
|
||||
Sint32 len_ticks = 4;
|
||||
|
||||
const int level = it.value();
|
||||
const float level = it.value();
|
||||
|
||||
Sint32 pos_ticks = -it.key();
|
||||
|
||||
@@ -1384,10 +1387,10 @@ void automationEditor::paintEvent( QPaintEvent * _pe )
|
||||
}
|
||||
|
||||
// is the value in visible area?
|
||||
if( ( level >= m_bottom_level && level <= m_top_level )
|
||||
|| ( level > m_top_level && m_top_level >= 0 )
|
||||
|| ( level < m_bottom_level
|
||||
&& m_bottom_level <= 0 ) )
|
||||
if( ( level >= m_bottomLevel && level <= m_topLevel )
|
||||
|| ( level > m_topLevel && m_topLevel >= 0 )
|
||||
|| ( level < m_bottomLevel
|
||||
&& m_bottomLevel <= 0 ) )
|
||||
{
|
||||
bool is_selected = FALSE;
|
||||
// if we're in move-mode, we may only draw
|
||||
@@ -1402,8 +1405,8 @@ void automationEditor::paintEvent( QPaintEvent * _pe )
|
||||
is_selected = TRUE;
|
||||
}
|
||||
}
|
||||
else if( level >= sel_level_start &&
|
||||
level <= sel_level_end &&
|
||||
else if( level >= selLevel_start &&
|
||||
level <= selLevel_end &&
|
||||
pos_ticks >= sel_pos_start &&
|
||||
pos_ticks + len_ticks <=
|
||||
sel_pos_end )
|
||||
@@ -1419,18 +1422,18 @@ void automationEditor::paintEvent( QPaintEvent * _pe )
|
||||
{
|
||||
y_start = grid_bottom
|
||||
- ( grid_bottom - TOP_MARGIN )
|
||||
* ( level - m_min_level )
|
||||
/ ( m_max_level - m_min_level );
|
||||
* ( level - m_minLevel )
|
||||
/ ( m_maxLevel - m_minLevel );
|
||||
int y_end = grid_bottom
|
||||
+ ( grid_bottom - TOP_MARGIN )
|
||||
* m_min_level
|
||||
/ ( m_max_level - m_min_level );
|
||||
* m_minLevel
|
||||
/ ( m_maxLevel - m_minLevel );
|
||||
rect_height = y_end - y_start;
|
||||
}
|
||||
else
|
||||
{
|
||||
y_start = grid_bottom - ( level
|
||||
- m_bottom_level )
|
||||
- m_bottomLevel )
|
||||
* m_y_delta;
|
||||
rect_height = level * m_y_delta;
|
||||
}
|
||||
@@ -1461,18 +1464,18 @@ void automationEditor::paintEvent( QPaintEvent * _pe )
|
||||
int y, h;
|
||||
if( m_y_auto )
|
||||
{
|
||||
y = grid_bottom - (int)roundf( ( grid_bottom - TOP_MARGIN )
|
||||
* ( sel_level_start - m_min_level )
|
||||
/ (float)( m_max_level - m_min_level ) );
|
||||
h = grid_bottom - (int)roundf( ( grid_bottom - TOP_MARGIN )
|
||||
* ( sel_level_end - m_min_level )
|
||||
/ (float)( m_max_level - m_min_level ) ) - y;
|
||||
y = grid_bottom - ( ( grid_bottom - TOP_MARGIN )
|
||||
* ( selLevel_start - m_minLevel )
|
||||
/ (float)( m_maxLevel - m_minLevel ) );
|
||||
h = grid_bottom - ( ( grid_bottom - TOP_MARGIN )
|
||||
* ( selLevel_end - m_minLevel )
|
||||
/ (float)( m_maxLevel - m_minLevel ) ) - y;
|
||||
}
|
||||
else
|
||||
{
|
||||
y = grid_bottom - ( sel_level_start - m_bottom_level )
|
||||
y = grid_bottom - ( selLevel_start - m_bottomLevel )
|
||||
* m_y_delta;
|
||||
h = ( sel_level_start - sel_level_end ) * m_y_delta;
|
||||
h = ( selLevel_start - selLevel_end ) * m_y_delta;
|
||||
}
|
||||
p.setPen( QColor( 0, 64, 192 ) );
|
||||
p.drawRect( x + VALUES_WIDTH, y, w, h );
|
||||
@@ -1520,21 +1523,21 @@ void automationEditor::resizeEvent( QResizeEvent * )
|
||||
SCROLLBAR_SIZE, grid_height );
|
||||
|
||||
int half_grid = grid_height / 2;
|
||||
int total_pixels = ( m_max_level - m_min_level ) * m_y_delta + 1;
|
||||
int total_pixels = ( m_maxLevel - m_minLevel ) * m_y_delta + 1;
|
||||
if( !m_y_auto && grid_height < total_pixels )
|
||||
{
|
||||
int min_scroll = m_min_level + (int)floorf( half_grid
|
||||
int min_scroll = m_minLevel + (int)floorf( half_grid
|
||||
/ (float)m_y_delta );
|
||||
int max_scroll = m_max_level - (int)floorf( ( grid_height
|
||||
int max_scroll = m_maxLevel - (int)floorf( ( grid_height
|
||||
- half_grid ) / (float)m_y_delta );
|
||||
m_topBottomScroll->setRange( min_scroll, max_scroll );
|
||||
}
|
||||
else
|
||||
{
|
||||
m_topBottomScroll->setRange( m_scroll_level, m_scroll_level );
|
||||
m_topBottomScroll->setRange( m_scrollLevel, m_scrollLevel );
|
||||
}
|
||||
|
||||
m_topBottomScroll->setValue( m_scroll_level );
|
||||
m_topBottomScroll->setValue( m_scrollLevel );
|
||||
|
||||
if( engine::getSong() )
|
||||
{
|
||||
@@ -1588,23 +1591,22 @@ void automationEditor::wheelEvent( QWheelEvent * _we )
|
||||
|
||||
|
||||
|
||||
int automationEditor::getLevel( int _y )
|
||||
float automationEditor::getLevel( int _y )
|
||||
{
|
||||
int level_line_y = height() - SCROLLBAR_SIZE - 1;
|
||||
// pressed level
|
||||
int level = m_bottom_level + (int)roundf( m_y_auto ?
|
||||
( m_max_level - m_min_level ) * ( level_line_y - _y )
|
||||
float level = roundf( ( m_bottomLevel + ( m_y_auto ?
|
||||
( m_maxLevel - m_minLevel ) * ( level_line_y - _y )
|
||||
/ (float)( level_line_y - TOP_MARGIN ) :
|
||||
( level_line_y - _y ) / (float)m_y_delta );
|
||||
|
||||
( level_line_y - _y ) / (float)m_y_delta ) ) / m_step ) * m_step;
|
||||
// some range-checking-stuff
|
||||
if( level < m_bottom_level )
|
||||
if( level < m_bottomLevel )
|
||||
{
|
||||
level = m_bottom_level;
|
||||
level = m_bottomLevel;
|
||||
}
|
||||
else if( level > m_top_level )
|
||||
else if( level > m_topLevel )
|
||||
{
|
||||
level = m_top_level;
|
||||
level = m_topLevel;
|
||||
}
|
||||
|
||||
return( level );
|
||||
@@ -1730,7 +1732,7 @@ void automationEditor::horScrolled( int _new_pos )
|
||||
|
||||
void automationEditor::verScrolled( int _new_pos )
|
||||
{
|
||||
m_scroll_level = _new_pos;
|
||||
m_scrollLevel = _new_pos;
|
||||
updateTopBottomLevels();
|
||||
update();
|
||||
}
|
||||
@@ -1834,11 +1836,11 @@ void automationEditor::getSelectedValues( timeMap & _selected_values )
|
||||
qSwap<int>( sel_pos_start, sel_pos_end );
|
||||
}
|
||||
|
||||
int sel_level_start = m_selectStartLevel;
|
||||
int sel_level_end = sel_level_start + m_selectedLevels;
|
||||
if( sel_level_start > sel_level_end )
|
||||
int selLevel_start = m_selectStartLevel;
|
||||
int selLevel_end = selLevel_start + m_selectedLevels;
|
||||
if( selLevel_start > selLevel_end )
|
||||
{
|
||||
qSwap<int>( sel_level_start, sel_level_end );
|
||||
qSwap<int>( selLevel_start, selLevel_end );
|
||||
}
|
||||
|
||||
timeMap & time_map = m_pattern->getTimeMap();
|
||||
@@ -1852,7 +1854,7 @@ void automationEditor::getSelectedValues( timeMap & _selected_values )
|
||||
int level = it.value();
|
||||
Sint32 pos_ticks = -it.key();
|
||||
|
||||
if( level >= sel_level_start && level <= sel_level_end &&
|
||||
if( level >= selLevel_start && level <= selLevel_end &&
|
||||
pos_ticks >= sel_pos_start &&
|
||||
pos_ticks + len_ticks <= sel_pos_end )
|
||||
{
|
||||
@@ -2049,43 +2051,43 @@ void automationEditor::updateTopBottomLevels( void )
|
||||
{
|
||||
if( m_y_auto )
|
||||
{
|
||||
m_bottom_level = m_min_level;
|
||||
m_top_level = m_max_level;
|
||||
m_bottomLevel = m_minLevel;
|
||||
m_topLevel = m_maxLevel;
|
||||
return;
|
||||
}
|
||||
|
||||
int total_pixels = ( m_max_level - m_min_level ) * m_y_delta + 1;
|
||||
int total_pixels = ( m_maxLevel - m_minLevel ) * m_y_delta + 1;
|
||||
int grid_height = height() - TOP_MARGIN - SCROLLBAR_SIZE;
|
||||
int half_grid = grid_height / 2;
|
||||
|
||||
if( total_pixels > grid_height )
|
||||
{
|
||||
int central_level = m_min_level + m_max_level - m_scroll_level;
|
||||
int centralLevel = m_minLevel + m_maxLevel - m_scrollLevel;
|
||||
|
||||
m_bottom_level = central_level - (int)roundf( half_grid
|
||||
m_bottomLevel = centralLevel - ( half_grid
|
||||
/ (float)m_y_delta );
|
||||
if( m_bottom_level < m_min_level )
|
||||
if( m_bottomLevel < m_minLevel )
|
||||
{
|
||||
m_bottom_level = m_min_level;
|
||||
m_top_level = m_min_level + (int)floorf( grid_height
|
||||
m_bottomLevel = m_minLevel;
|
||||
m_topLevel = m_minLevel + (int)floorf( grid_height
|
||||
/ (float)m_y_delta );
|
||||
}
|
||||
else
|
||||
{
|
||||
m_top_level = m_bottom_level + (int)floorf( grid_height
|
||||
m_topLevel = m_bottomLevel + (int)floorf( grid_height
|
||||
/ (float)m_y_delta );
|
||||
if( m_top_level > m_max_level )
|
||||
if( m_topLevel > m_maxLevel )
|
||||
{
|
||||
m_top_level = m_max_level;
|
||||
m_bottom_level = m_max_level - (int)floorf(
|
||||
m_topLevel = m_maxLevel;
|
||||
m_bottomLevel = m_maxLevel - (int)floorf(
|
||||
grid_height / (float)m_y_delta );
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
m_bottom_level = m_min_level;
|
||||
m_top_level = m_max_level;
|
||||
m_bottomLevel = m_minLevel;
|
||||
m_topLevel = m_maxLevel;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user