FeatureGroup
data class FeatureGroup<T : Any>(val space: CoordinateSpace<T>, val featureMap: SnapshotStateMap<String, Feature<T>> = mutableStateMapOf()) : CoordinateSpace<T> , Feature<T>
A group of other features
Constructors
Link copied to clipboard
constructor(space: CoordinateSpace<T>, featureMap: SnapshotStateMap<String, Feature<T>> = mutableStateMapOf())
Properties
Functions
Link copied to clipboard
fun <T : Any> FeatureGroup<T>.arc(oval: Rectangle<T>, startAngle: Angle, arcLength: Angle, attributes: Attributes = Attributes.EMPTY, id: String? = null): FeatureRef<T, ArcFeature<T>>
Link copied to clipboard
fun <T : Any> FeatureGroup<T>.circle(center: T, size: Dp = 5.dp, attributes: Attributes = Attributes.EMPTY, id: String? = null): FeatureRef<T, CircleFeature<T>>
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
fun <T : Any> FeatureGroup<T>.draggableLine(aId: FeatureRef<T, MarkerFeature<T>>, bId: FeatureRef<T, MarkerFeature<T>>, id: String? = null): FeatureRef<T, LineFeature<T>>
Link copied to clipboard
fun <T : Any> FeatureGroup<T>.draggableMultiLine(points: List<T>, id: String? = null): FeatureRef<T, MultiLineFeature<T>>
fun <T : Any> FeatureGroup<T>.draggableMultiLine(points: List<FeatureRef<T, MarkerFeature<T>>>, id: String? = null): FeatureRef<T, MultiLineFeature<T>>
Link copied to clipboard
fun <T : Any> FeatureGroup<T>.draw(position: T, attributes: Attributes = Attributes.EMPTY, id: String? = null, draw: DrawScope.() -> Unit): FeatureRef<T, DrawFeature<T>>
Link copied to clipboard
fun <T : Any> FeatureGroup<T>.forEachUntil(visitor: FeatureGroup<T>.(id: String, feature: Feature<T>) -> Boolean)
Recursively search for feature until function returns true
Link copied to clipboard
fun <T : Any, A> FeatureGroup<T>.forEachWithAttribute(key: Attribute<A>, block: FeatureGroup<T>.(id: String, feature: Feature<T>, attributeValue: A) -> Unit)
Process all features with a given attribute from the one with highest z to lowest
Link copied to clipboard
fun <T : Any, A> FeatureGroup<T>.forEachWithAttributeUntil(key: Attribute<A>, block: FeatureGroup<T>.(id: String, feature: Feature<T>, attributeValue: A) -> Boolean)
Link copied to clipboard
inline fun <T : Any, F : Feature<T>> FeatureGroup<T>.forEachWithType(crossinline block: (FeatureRef<T, F>) -> Unit)
Link copied to clipboard
inline fun <T : Any, F : Feature<T>> FeatureGroup<T>.forEachWithTypeUntil(crossinline block: (FeatureRef<T, F>) -> Boolean)
Link copied to clipboard
Link copied to clipboard
fun <T : Any> FeatureGroup<T>.group(id: String? = null, builder: FeatureGroup<T>.() -> Unit): FeatureRef<T, FeatureGroup<T>>
Link copied to clipboard
fun <T : Any> FeatureGroup<T>.icon(position: T, image: ImageVector, size: DpSize = DpSize(image.defaultWidth, image.defaultHeight), attributes: Attributes = Attributes.EMPTY, id: String? = null): FeatureRef<T, VectorIconFeature<T>>
Link copied to clipboard
Link copied to clipboard
fun <T : Any> FeatureGroup<T>.line(aCoordinates: T, bCoordinates: T, attributes: Attributes = Attributes.EMPTY, id: String? = null): FeatureRef<T, LineFeature<T>>
Link copied to clipboard
fun <T : Any> FeatureGroup<T>.multiLine(points: List<T>, attributes: Attributes = Attributes.EMPTY, id: String? = null): FeatureRef<T, MultiLineFeature<T>>
Link copied to clipboard
fun <T : Any> FeatureGroup<T>.pixelMap(rectangle: Rectangle<T>, pixelMap: Structure2D<Color?>, attributes: Attributes = Attributes.EMPTY, id: String? = null): FeatureRef<T, PixelMapFeature<T>>
Link copied to clipboard
fun <T : Any> FeatureGroup<T>.points(points: List<T>, attributes: Attributes = Attributes.EMPTY, id: String? = null): FeatureRef<T, PointsFeature<T>>
Link copied to clipboard
fun <T : Any> FeatureGroup<T>.polygon(points: List<T>, attributes: Attributes = Attributes.EMPTY, id: String? = null): FeatureRef<T, PolygonFeature<T>>
Link copied to clipboard
fun <T : Any> FeatureGroup<T>.rectangle(centerCoordinates: T, size: DpSize = DpSize(5.dp, 5.dp), attributes: Attributes = Attributes.EMPTY, id: String? = null): FeatureRef<T, RectangleFeature<T>>
Link copied to clipboard
Link copied to clipboard
fun <T : Any> FeatureGroup<T>.scalableImage(box: Rectangle<T>, attributes: Attributes = Attributes.EMPTY, id: String? = null, painter: @Composable () -> Painter): FeatureRef<T, ScalableImageFeature<T>>
Link copied to clipboard
fun <T : Any> FeatureGroup<T>.text(position: T, text: String, font: Font.() -> Unit = { size = 16f }, attributes: Attributes = Attributes.EMPTY, id: String? = null): FeatureRef<T, TextFeature<T>>
Link copied to clipboard
Create a pretty tree-like representation of this feature group
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard