mirror of
https://github.com/hannobraun/Fornjot
synced 2025-05-05 10:28: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 fj_math::Transform;
|
||||||
|
|
||||||
use crate::{
|
use crate::{
|
||||||
operations::insert::Insert, storage::Handle, topology::Cycle, Core,
|
operations::insert::Insert,
|
||||||
|
storage::Handle,
|
||||||
|
topology::{Cycle, Surface},
|
||||||
|
Core,
|
||||||
};
|
};
|
||||||
|
|
||||||
use super::{TransformCache, TransformObject};
|
use super::{TransformCache, TransformObject};
|
||||||
|
|
||||||
impl TransformObject for &Handle<Cycle> {
|
impl TransformObject for (&Handle<Cycle>, &Handle<Surface>) {
|
||||||
type Transformed = Handle<Cycle>;
|
type Transformed = Handle<Cycle>;
|
||||||
|
|
||||||
fn transform_with_cache(
|
fn transform_with_cache(
|
||||||
@ -15,7 +18,7 @@ impl TransformObject for &Handle<Cycle> {
|
|||||||
core: &mut Core,
|
core: &mut Core,
|
||||||
cache: &mut TransformCache,
|
cache: &mut TransformCache,
|
||||||
) -> Self::Transformed {
|
) -> Self::Transformed {
|
||||||
let cycle = self;
|
let (cycle, _) = self;
|
||||||
|
|
||||||
let half_edges = cycle.half_edges().iter().map(|half_edge| {
|
let half_edges = cycle.half_edges().iter().map(|half_edge| {
|
||||||
half_edge
|
half_edge
|
||||||
|
@ -16,13 +16,12 @@ impl TransformObject for (&Handle<Region>, &Handle<Surface>) {
|
|||||||
core: &mut Core,
|
core: &mut Core,
|
||||||
cache: &mut super::TransformCache,
|
cache: &mut super::TransformCache,
|
||||||
) -> Self::Transformed {
|
) -> Self::Transformed {
|
||||||
let (region, _) = self;
|
let (region, surface) = self;
|
||||||
|
|
||||||
let exterior = region
|
let exterior = (region.exterior(), surface)
|
||||||
.exterior()
|
|
||||||
.transform_with_cache(transform, core, cache);
|
.transform_with_cache(transform, core, cache);
|
||||||
let interiors = region.interiors().iter().map(|interior| {
|
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)
|
Region::new(exterior, interiors).insert(core)
|
||||||
|
Loading…
Reference in New Issue
Block a user