コード例 #1
0
EntityPtr SelectionPlugin::createRectangle()
{
	Overlay* overlay = AllocateThis(Overlay);
	overlay->setPositionMode( PositionMode::Absolute );
	overlay->setOpacity(0.3f);
	overlay->setBorderWidth(1);
	overlay->setBorderColor( Color::White );
	overlay->setBackgroundColor( Color::White );

	Entity* dragRectangle = EntityCreate( AllocatorGetHeap() );
	dragRectangle->addTransform();
	dragRectangle->addComponent(overlay);

	return dragRectangle;
}
コード例 #2
0
void SelectionPlugin::updateRectangle( const MouseDragEvent& event, Entity* dragRectangle )
{
	Vector2 dragPoint = Vector2(event.x, event.y);
	
	Vector2 dragMin;
	dragMin.x = std::min(dragOrigin.x, dragPoint.x);
	dragMin.y = std::min(dragOrigin.y, dragPoint.y);

	Vector2 dragMax;
	dragMax.x = std::max(dragOrigin.x, dragPoint.x);
	dragMax.y = std::max(dragOrigin.y, dragPoint.y);

	Overlay* overlay = dragRectangle->getComponent<Overlay>().get();
	overlay->setPositionMode(PositionMode::Absolute);
	overlay->setOffset(dragMin);
	overlay->setSize( dragMax - dragMin );

	editor->getDocument()->getWindow()->flagRedraw();
}