SDLPP: LineRenderer - use new features

This commit is contained in:
2021-03-15 14:30:01 +01:00
parent 8b3eee0673
commit aaae85a932
2 changed files with 9 additions and 31 deletions
+8 -29
View File
@@ -22,14 +22,12 @@ LineRenderer::LineRenderer( const Line< double > &line,
setColor( color );
}
void LineRenderer::setColor( const std::string &color ) {
_color = getColorsHEX( color );
_color = getSDLColorHEX( color );
}
void LineRenderer::render() {
if ( !getHidden() ) {
SDL_SetRenderDrawColor(
renderer->getRendererPtr(), std::get< 0 >( _color ),
std::get< 1 >( _color ), std::get< 2 >( _color ),
std::get< 3 >( _color ) );
SDL_SetRenderDrawColor( renderer->getRendererPtr(), _color.r, _color.g,
_color.b, _color.a );
SDL_RenderDrawLine(
renderer->getRendererPtr(), pixel_line.getStart().getX(),
pixel_line.getStart().getY(), pixel_line.getEnd().getX(),
@@ -40,35 +38,16 @@ void LineRenderer::render() {
col->render( *renderer, colider_color );
}
}
void LineRenderer::move( int ticks ) {
if ( permanent )
return;
auto addx =
static_cast< double >( movementSpeed * movementDirection.first ) *
( static_cast< double >( ticks ) / 1000 );
auto addy =
static_cast< double >( movementSpeed * movementDirection.second ) *
( static_cast< double >( ticks ) / 1000 );
if ( std::isnan( addx ) || std::isnan( addy ) )
return;
original.add( { addx, addy } );
custom_move( ticks );
updateSizeAndPosition();
}
void LineRenderer::setPos( double x, double y ) {
auto diffx = original.getEnd().getX() - original.getStart().getX();
auto diffy = original.getEnd().getY() - original.getStart().getY();
original = { { x, y }, { x + diffx, y + diffy } };
updateSizeAndPosition();
setPos( Vec2D< double >( x, y ) );
}
void LineRenderer::setPos( const std::pair< double, double > &pos ) {
setPos( pos.first, pos.second );
setPos( Vec2D< double >( pos.first, pos.second ) );
}
void LineRenderer::setPos( const Vec2D< double > &vec ) {
setPos( vec.getX(), vec.getY() );
auto diff = original.getEnd() - original.getStart();
original = { vec, vec + diff };
updateSizeAndPosition();
}
Vec2D< double > LineRenderer::getPos() const {
return original.getStart();