mirror of
https://github.com/hannobraun/Fornjot
synced 2025-05-04 09:58:27 +00:00
Provide surface to cycle transform implementation
This commit is contained in:
parent
258fb03e7a
commit
5369be268b
@ -1,12 +1,15 @@
|
||||
use fj_math::Transform;
|
||||
|
||||
use crate::{
|
||||
operations::insert::Insert, storage::Handle, topology::Cycle, Core,
|
||||
operations::insert::Insert,
|
||||
storage::Handle,
|
||||
topology::{Cycle, Surface},
|
||||
Core,
|
||||
};
|
||||
|
||||
use super::{TransformCache, TransformObject};
|
||||
|
||||
impl TransformObject for &Handle<Cycle> {
|
||||
impl TransformObject for (&Handle<Cycle>, &Handle<Surface>) {
|
||||
type Transformed = Handle<Cycle>;
|
||||
|
||||
fn transform_with_cache(
|
||||
@ -15,7 +18,7 @@ impl TransformObject for &Handle<Cycle> {
|
||||
core: &mut Core,
|
||||
cache: &mut TransformCache,
|
||||
) -> Self::Transformed {
|
||||
let cycle = self;
|
||||
let (cycle, _) = self;
|
||||
|
||||
let half_edges = cycle.half_edges().iter().map(|half_edge| {
|
||||
half_edge
|
||||
|
@ -16,13 +16,12 @@ impl TransformObject for (&Handle<Region>, &Handle<Surface>) {
|
||||
core: &mut Core,
|
||||
cache: &mut super::TransformCache,
|
||||
) -> Self::Transformed {
|
||||
let (region, _) = self;
|
||||
let (region, surface) = self;
|
||||
|
||||
let exterior = region
|
||||
.exterior()
|
||||
let exterior = (region.exterior(), surface)
|
||||
.transform_with_cache(transform, core, cache);
|
||||
let interiors = region.interiors().iter().map(|interior| {
|
||||
interior.transform_with_cache(transform, core, cache)
|
||||
(interior, surface).transform_with_cache(transform, core, cache)
|
||||
});
|
||||
|
||||
Region::new(exterior, interiors).insert(core)
|
||||
|
Loading…
Reference in New Issue
Block a user