Les API Geometry vous permettent de créer des outils interactifs comme des gommes et mécanismes de sélection.
Pour illustrer une application pratique des API Geometry, explorez les ressources suivantes : exemple d'implémentation de la gomme.
Gomme complète
fun eraseWholeStrokes(
eraserBox: ImmutableBox,
finishedStrokesState: MutableState<Set<Stroke>>,
) {
val threshold = 0.1f
val strokesToErase = finishedStrokesState.value.filter { stroke ->
stroke.shape.computeCoverageIsGreaterThan(
box = eraserBox,
coverageThreshold = threshold,
)
}
if (strokesToErase.isNotEmpty()) {
Snapshot.withMutableSnapshot {
finishedStrokesState.value -= strokesToErase
}
}
}
Pour une implémentation Compose, veillez à déclencher une recomposition afin que les traits soient effectivement supprimés. Par exemple, vous pouvez utiliser
rememberCoroutineScope
dans votre composable et transmettez le champ d'application de coroutine à votre
écouteur tactile, qui vous permet de modifier finishedStrokesState
dans le champ d'application
de Compose.