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; }
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(); }