void Layer::grand() {
    CURSEUR->gerer(sprite);

    if (INPUT->again(Qt::LeftButton)) {
        CURSEUR->init(sprite);
        posf = VECTOR2F(INPUT->getPixel());
    }

    if (INPUT->pressed(Qt::LeftButton)) {
        if (INPUT->pressed(Qt::Key_Control)) {
            int max_size = std::max(sprite.getTextureRect().width, sprite.getTextureRect().height);
            sf::Vector2f pos_mouse = Fonction::selecPointRect(posf, VECTOR2F(INPUT->getPixel())).distance;
            setScale(sf::Vector2f(1.f + pos_mouse.x / max_size, 1.f + pos_mouse.y / max_size));
        }
        else
            setScale(sf::Vector2f(1.f + (INPUT->getPixel().x - posf.x) / this->getSize().x, 1.f + (INPUT->getPixel().y - posf.y) / this->getSize().y));
    }
    else if (INPUT->released(Qt::LeftButton)) {
        sf::Vector2f scale = sprite.getScale();
        sf::Texture text = renderTexture.getTexture();
        sf::Sprite spr(text);

        renderTexture.create(sprite.getGlobalBounds().width, sprite.getGlobalBounds().height);
        renderTexture.clear(sf::Color::Transparent);

        spr.setPosition(sprite.getPosition().x - sprite.getGlobalBounds().left, sprite.getPosition().y - sprite.getGlobalBounds().top);
        spr.setScale(scale);
        spr.setOrigin(sprite.getOrigin());

        renderTexture.draw(spr, sf::BlendNone);
        renderTexture.display();
        sprite.setTexture(renderTexture.getTexture(), true);

        UNDO->beginMacro();
        update();
        UNDO->push(*new LayerMoved(this, sf::Vector2f(0, 0)));
        UNDO->endMacro();

        sprite.setOrigin(0, 0);
        sprite.setPosition(0, 0);
        sprite.setScale(1, 1);

        sf::FloatRect bounds = sprite.getGlobalBounds();
        emit layerMoved(sf::Vector2f(bounds.left, bounds.top));
        emit layerScaled(sf::Vector2f(bounds.width, bounds.height));
    }
}
void Layer::move() {
    if (INPUT->again(Qt::RightButton)) {
        posi = INPUT->getPixel();
        posf = getPosition();
    }

    if (INPUT->pressed(Qt::RightButton)) {
        sf::Vector2f move;
        if (INPUT->pressed(Qt::Key_Control)) {
            sf::Vector2f pos_mouse = Fonction::selecPointRect(VECTOR2F(posi), VECTOR2F(INPUT->getDeltaPixel())).distance;
            pos_mouse = CALL_VECTOR2F(pos_mouse, floor);
            move = pos_mouse + posf;
            setPosition(move);
        }
        else
            translate(VECTOR2F(INPUT->getDeltaPixel()));
    }
    else if (INPUT->released(Qt::RightButton))
        if (getPosition() != posf)
            UNDO->push(*new LayerMoved(this, getPosition()));
}
void SelectionController::move() {
	if (INPUT->again(Qt::RightButton)) {
		pos_init = INPUT->getPixel();
		pos_selec = getPosition();
	}

	if (INPUT->pressed(Qt::RightButton)) {
		sf::Vector2f final_pos;
		if (INPUT->pressed(Qt::Key_Control)) {
			sf::Vector2f pos_mouse = Fonction::selecPointRect(VECTOR2F(pos_init), VECTOR2F(INPUT->getPixel())).distance;
			pos_mouse.x = floor(pos_mouse.x);
			pos_mouse.y = floor(pos_mouse.y);
			final_pos.x = pos_mouse.x + pos_selec.x;
			final_pos.y = pos_mouse.y + pos_selec.y;
			setPosition(final_pos);
		}
		else
			translate(VECTOR2F(INPUT->getDeltaPixel()));
	}
	else if (INPUT->released(Qt::RightButton))
		if (getPosition() != pos_selec)
			UNDO->push(*new SelecMoved(this, getPosition()));
}
sf::Vector2f Fonction::bottomRightCorner(const sf::Vector2f& size)		{ return VECTOR2F(size); }
sf::Vector2f Fonction::bottomRightCorner(const sf::Image& image)		{ return VECTOR2F(image.getSize()); }
sf::Vector2f Fonction::bottomRightCorner(const sf::Texture& texture)	{ return VECTOR2F(texture.getSize()); }
Exemple #7
0
VECTOR2F TPlayer::GetPosition()
{
	return VECTOR2F(this->_x, this->_y);
}