TP1: indices
- rajouter à la classe MyShape une méthode
boolean isShapeInsideRectangle( AlignedRectangle2D r /* in world space */ ) {
if ( type == POLYGON ) {
...
}
else if ( type == CIRCLE )
{
...
}
}
- rajouter dans MyCanvas
boolean
isSelectionRectangleBeingDragged
- chercher dans SimplePaint.java les endroits où on
utilise
isHilitedShapeBeingMoved
et
TOOL_SELECT_AND_MOVE
- rajouter dans MyCanvas.paintComponent() du code pour dessiner
le rectangle
if ( isSelectionRectangleBeingDragged ) {
gw.setColor( ... );
gw.drawRectangle( ... );
}
- Attention de bien convertir entre les systèmes de
coordonnées monde et pixel
- Rajouter à MyShape
boolean isSelected
- s'arranger pour que le MyShape.isSelected soit mis à
vrai/faux au relâchement pour chaque forme à
l'intérieur/extérieur du rectangle
- modifier MyCanvas.paintComponent() :
for ( int i = 0; i <
shapes.size(); ++i ) {
MyShape
shape = shapes.get(i);
shape.draw( gw, true, i == currentlyHilitedShape || shape.isSelected );
}
- modifier mouseDragged() :
if ( isHilitedShapeBeingMoved &&
currentlyHilitedShape > -1 ) {
...
rajouter une boucle pour déplacer toutes les
formes sélectionnées
}
- etc. (voir l'énoncé)