shambler 0.2.0

A rusty, hulking, lighting-tossing geometry processor.
Documentation
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
use std::collections::BTreeMap;

use rayon::iter::{IntoParallelRefIterator, ParallelIterator};
use usage::Usage;

use crate::{brush::BrushId, entity::EntityId, EntityBrushes};

pub enum BrushEntitiesTag {}

pub type BrushEntities = Usage<BrushEntitiesTag, BTreeMap<BrushId, EntityId>>;

pub fn brush_entities(entity_brushes: &EntityBrushes) -> BrushEntities {
    entity_brushes
        .par_iter()
        .flat_map(|(entity, brushes)| brushes.par_iter().map(move |brush| (*brush, *entity)))
        .collect()
}