Move basic geometry primitives to the `pathfinder_geometry::basic` module
This commit is contained in:
parent
f25682f0f1
commit
63b47f1abe
|
@ -11,8 +11,8 @@
|
||||||
use clap::{App, Arg};
|
use clap::{App, Arg};
|
||||||
use euclid::{Point2D, Rect, Size2D};
|
use euclid::{Point2D, Rect, Size2D};
|
||||||
use jemallocator;
|
use jemallocator;
|
||||||
use pathfinder_geometry::point::Point3DF32;
|
use pathfinder_geometry::basic::point::Point3DF32;
|
||||||
use pathfinder_geometry::transform3d::{Perspective, Transform3DF32};
|
use pathfinder_geometry::basic::transform3d::{Perspective, Transform3DF32};
|
||||||
use pathfinder_gl::renderer::Renderer;
|
use pathfinder_gl::renderer::Renderer;
|
||||||
use pathfinder_renderer::builder::SceneBuilder;
|
use pathfinder_renderer::builder::SceneBuilder;
|
||||||
use pathfinder_renderer::gpu_data::BuiltScene;
|
use pathfinder_renderer::gpu_data::BuiltScene;
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
// pathfinder/geometry/src/line_segment.rs
|
// pathfinder/geometry/src/basic/line_segment.rs
|
||||||
//
|
//
|
||||||
// Copyright © 2019 The Pathfinder Project Developers.
|
// Copyright © 2019 The Pathfinder Project Developers.
|
||||||
//
|
//
|
||||||
|
@ -10,7 +10,7 @@
|
||||||
|
|
||||||
//! Line segment types, optimized with SIMD.
|
//! Line segment types, optimized with SIMD.
|
||||||
|
|
||||||
use crate::point::Point2DF32;
|
use crate::basic::point::Point2DF32;
|
||||||
use crate::util;
|
use crate::util;
|
||||||
use pathfinder_simd::default::F32x4;
|
use pathfinder_simd::default::F32x4;
|
||||||
use std::ops::Sub;
|
use std::ops::Sub;
|
|
@ -0,0 +1,16 @@
|
||||||
|
// pathfinder/geometry/src/basic/mod.rs
|
||||||
|
//
|
||||||
|
// Copyright © 2019 The Pathfinder Project Developers.
|
||||||
|
//
|
||||||
|
// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
|
||||||
|
// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
|
||||||
|
// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
|
||||||
|
// option. This file may not be copied, modified, or distributed
|
||||||
|
// except according to those terms.
|
||||||
|
|
||||||
|
//! Basic geometry and linear algebra primitives, optimized with SIMD.
|
||||||
|
|
||||||
|
pub mod line_segment;
|
||||||
|
pub mod point;
|
||||||
|
pub mod transform2d;
|
||||||
|
pub mod transform3d;
|
|
@ -1,4 +1,4 @@
|
||||||
// pathfinder/geometry/src/point.rs
|
// pathfinder/geometry/src/basic/point.rs
|
||||||
//
|
//
|
||||||
// Copyright © 2019 The Pathfinder Project Developers.
|
// Copyright © 2019 The Pathfinder Project Developers.
|
||||||
//
|
//
|
|
@ -1,4 +1,4 @@
|
||||||
// pathfinder/geometry/src/transform.rs
|
// pathfinder/geometry/src/basic/transform2d.rs
|
||||||
//
|
//
|
||||||
// Copyright © 2019 The Pathfinder Project Developers.
|
// Copyright © 2019 The Pathfinder Project Developers.
|
||||||
//
|
//
|
||||||
|
@ -8,11 +8,11 @@
|
||||||
// option. This file may not be copied, modified, or distributed
|
// option. This file may not be copied, modified, or distributed
|
||||||
// except according to those terms.
|
// except according to those terms.
|
||||||
|
|
||||||
//! Applies a transform to paths.
|
//! 2D affine transforms.
|
||||||
|
|
||||||
use crate::point::Point2DF32;
|
use crate::basic::point::Point2DF32;
|
||||||
|
use crate::basic::transform3d::Transform3DF32;
|
||||||
use crate::segment::Segment;
|
use crate::segment::Segment;
|
||||||
use crate::transform3d::Transform3DF32;
|
|
||||||
use euclid::{Point2D, Rect, Size2D, Transform2D};
|
use euclid::{Point2D, Rect, Size2D, Transform2D};
|
||||||
use lyon_path::PathEvent;
|
use lyon_path::PathEvent;
|
||||||
use pathfinder_simd::default::F32x4;
|
use pathfinder_simd::default::F32x4;
|
|
@ -1,4 +1,4 @@
|
||||||
// pathfinder/geometry/src/transform3d.rs
|
// pathfinder/geometry/src/basic/transform3d.rs
|
||||||
//
|
//
|
||||||
// Copyright © 2019 The Pathfinder Project Developers.
|
// Copyright © 2019 The Pathfinder Project Developers.
|
||||||
//
|
//
|
||||||
|
@ -10,9 +10,9 @@
|
||||||
|
|
||||||
//! 3D transforms that can be applied to paths.
|
//! 3D transforms that can be applied to paths.
|
||||||
|
|
||||||
use crate::point::{Point2DF32, Point3DF32};
|
use crate::basic::point::{Point2DF32, Point3DF32};
|
||||||
|
use crate::basic::transform2d::Matrix2x2F32;
|
||||||
use crate::segment::Segment;
|
use crate::segment::Segment;
|
||||||
use crate::transform::Matrix2x2F32;
|
|
||||||
use euclid::{Point2D, Rect, Size2D};
|
use euclid::{Point2D, Rect, Size2D};
|
||||||
use pathfinder_simd::default::F32x4;
|
use pathfinder_simd::default::F32x4;
|
||||||
use std::ops::{Add, Neg};
|
use std::ops::{Add, Neg};
|
||||||
|
@ -327,8 +327,8 @@ where
|
||||||
|
|
||||||
#[cfg(test)]
|
#[cfg(test)]
|
||||||
mod test {
|
mod test {
|
||||||
use crate::point::Point3DF32;
|
use crate::basic::point::Point3DF32;
|
||||||
use crate::transform3d::Transform3DF32;
|
use crate::basic::transform3d::Transform3DF32;
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
fn test_post_mul() {
|
fn test_post_mul() {
|
|
@ -8,9 +8,9 @@
|
||||||
// option. This file may not be copied, modified, or distributed
|
// option. This file may not be copied, modified, or distributed
|
||||||
// except according to those terms.
|
// except according to those terms.
|
||||||
|
|
||||||
use crate::line_segment::LineSegmentF32;
|
use crate::basic::line_segment::LineSegmentF32;
|
||||||
|
use crate::basic::point::{Point2DF32, Point3DF32};
|
||||||
use crate::outline::{Contour, PointFlags};
|
use crate::outline::{Contour, PointFlags};
|
||||||
use crate::point::{Point2DF32, Point3DF32};
|
|
||||||
use crate::segment::{CubicSegment, Segment};
|
use crate::segment::{CubicSegment, Segment};
|
||||||
use crate::util::lerp;
|
use crate::util::lerp;
|
||||||
use arrayvec::ArrayVec;
|
use arrayvec::ArrayVec;
|
||||||
|
|
|
@ -15,17 +15,14 @@
|
||||||
#[macro_use]
|
#[macro_use]
|
||||||
extern crate bitflags;
|
extern crate bitflags;
|
||||||
|
|
||||||
|
pub mod basic;
|
||||||
pub mod clip;
|
pub mod clip;
|
||||||
pub mod cubic_to_quadratic;
|
pub mod cubic_to_quadratic;
|
||||||
pub mod line_segment;
|
|
||||||
pub mod monotonic;
|
pub mod monotonic;
|
||||||
pub mod normals;
|
pub mod normals;
|
||||||
pub mod orientation;
|
pub mod orientation;
|
||||||
pub mod outline;
|
pub mod outline;
|
||||||
pub mod point;
|
|
||||||
pub mod segment;
|
pub mod segment;
|
||||||
pub mod segments;
|
pub mod segments;
|
||||||
pub mod stroke;
|
pub mod stroke;
|
||||||
pub mod transform;
|
|
||||||
pub mod transform3d;
|
|
||||||
pub mod util;
|
pub mod util;
|
||||||
|
|
|
@ -10,14 +10,13 @@
|
||||||
|
|
||||||
//! A compressed in-memory representation of paths.
|
//! A compressed in-memory representation of paths.
|
||||||
|
|
||||||
|
use crate::basic::line_segment::LineSegmentF32;
|
||||||
|
use crate::basic::point::Point2DF32;
|
||||||
|
use crate::basic::transform2d::Transform2DF32;
|
||||||
|
use crate::basic::transform3d::Perspective;
|
||||||
use crate::clip::{ContourPolygonClipper, ContourRectClipper};
|
use crate::clip::{ContourPolygonClipper, ContourRectClipper};
|
||||||
use crate::line_segment::LineSegmentF32;
|
|
||||||
use crate::monotonic::MonotonicConversionIter;
|
use crate::monotonic::MonotonicConversionIter;
|
||||||
use crate::point::Point2DF32;
|
|
||||||
use crate::segment::{Segment, SegmentFlags, SegmentKind};
|
use crate::segment::{Segment, SegmentFlags, SegmentKind};
|
||||||
use crate::transform3d::Perspective;
|
|
||||||
use crate::transform::Transform2DF32;
|
|
||||||
use crate::util;
|
|
||||||
use euclid::{Point2D, Rect, Size2D};
|
use euclid::{Point2D, Rect, Size2D};
|
||||||
use std::fmt::{self, Debug, Formatter};
|
use std::fmt::{self, Debug, Formatter};
|
||||||
use std::mem;
|
use std::mem;
|
||||||
|
|
|
@ -10,8 +10,8 @@
|
||||||
|
|
||||||
//! Line or curve segments, optimized with SIMD.
|
//! Line or curve segments, optimized with SIMD.
|
||||||
|
|
||||||
use crate::line_segment::LineSegmentF32;
|
use crate::basic::line_segment::LineSegmentF32;
|
||||||
use crate::point::Point2DF32;
|
use crate::basic::point::Point2DF32;
|
||||||
use lyon_path::PathEvent;
|
use lyon_path::PathEvent;
|
||||||
use pathfinder_simd::default::F32x4;
|
use pathfinder_simd::default::F32x4;
|
||||||
|
|
||||||
|
|
|
@ -14,8 +14,8 @@ use crate::paint::{ObjectShader, ShaderId};
|
||||||
use crate::tiles::{self, TILE_HEIGHT, TILE_WIDTH};
|
use crate::tiles::{self, TILE_HEIGHT, TILE_WIDTH};
|
||||||
use euclid::Rect;
|
use euclid::Rect;
|
||||||
use fixedbitset::FixedBitSet;
|
use fixedbitset::FixedBitSet;
|
||||||
use pathfinder_geometry::line_segment::{LineSegmentF32, LineSegmentU4, LineSegmentU8};
|
use pathfinder_geometry::basic::line_segment::{LineSegmentF32, LineSegmentU4, LineSegmentU8};
|
||||||
use pathfinder_geometry::point::Point2DF32;
|
use pathfinder_geometry::basic::point::Point2DF32;
|
||||||
use pathfinder_geometry::util;
|
use pathfinder_geometry::util;
|
||||||
use pathfinder_simd::default::{F32x4, I32x4};
|
use pathfinder_simd::default::{F32x4, I32x4};
|
||||||
|
|
||||||
|
|
|
@ -16,11 +16,11 @@ use crate::tiles::Tiler;
|
||||||
use crate::z_buffer::ZBuffer;
|
use crate::z_buffer::ZBuffer;
|
||||||
use euclid::Rect;
|
use euclid::Rect;
|
||||||
use hashbrown::HashMap;
|
use hashbrown::HashMap;
|
||||||
|
use pathfinder_geometry::basic::point::{Point2DF32, Point3DF32};
|
||||||
|
use pathfinder_geometry::basic::transform2d::Transform2DF32;
|
||||||
|
use pathfinder_geometry::basic::transform3d::Perspective;
|
||||||
use pathfinder_geometry::clip::PolygonClipper3D;
|
use pathfinder_geometry::clip::PolygonClipper3D;
|
||||||
use pathfinder_geometry::outline::Outline;
|
use pathfinder_geometry::outline::Outline;
|
||||||
use pathfinder_geometry::point::{Point2DF32, Point3DF32};
|
|
||||||
use pathfinder_geometry::transform3d::Perspective;
|
|
||||||
use pathfinder_geometry::transform::Transform2DF32;
|
|
||||||
use rayon::iter::{IndexedParallelIterator, IntoParallelRefIterator, ParallelIterator};
|
use rayon::iter::{IndexedParallelIterator, IntoParallelRefIterator, ParallelIterator};
|
||||||
use std::fmt::{self, Debug, Formatter};
|
use std::fmt::{self, Debug, Formatter};
|
||||||
|
|
||||||
|
|
|
@ -13,9 +13,9 @@ use crate::paint::ShaderId;
|
||||||
use crate::sorted_vector::SortedVector;
|
use crate::sorted_vector::SortedVector;
|
||||||
use crate::z_buffer::ZBuffer;
|
use crate::z_buffer::ZBuffer;
|
||||||
use euclid::{Point2D, Rect, Size2D};
|
use euclid::{Point2D, Rect, Size2D};
|
||||||
use pathfinder_geometry::line_segment::LineSegmentF32;
|
use pathfinder_geometry::basic::line_segment::LineSegmentF32;
|
||||||
|
use pathfinder_geometry::basic::point::Point2DF32;
|
||||||
use pathfinder_geometry::outline::{Contour, Outline, PointIndex};
|
use pathfinder_geometry::outline::{Contour, Outline, PointIndex};
|
||||||
use pathfinder_geometry::point::Point2DF32;
|
|
||||||
use pathfinder_geometry::segment::Segment;
|
use pathfinder_geometry::segment::Segment;
|
||||||
use pathfinder_geometry::util;
|
use pathfinder_geometry::util;
|
||||||
use std::cmp::Ordering;
|
use std::cmp::Ordering;
|
||||||
|
|
|
@ -12,14 +12,14 @@
|
||||||
|
|
||||||
use euclid::{Point2D, Rect, Size2D};
|
use euclid::{Point2D, Rect, Size2D};
|
||||||
use lyon_path::iterator::PathIter;
|
use lyon_path::iterator::PathIter;
|
||||||
use pathfinder_geometry::line_segment::LineSegmentF32;
|
use pathfinder_geometry::basic::line_segment::LineSegmentF32;
|
||||||
|
use pathfinder_geometry::basic::point::Point2DF32;
|
||||||
|
use pathfinder_geometry::basic::transform2d::{Transform2DF32, Transform2DF32PathIter};
|
||||||
use pathfinder_geometry::monotonic::MonotonicConversionIter;
|
use pathfinder_geometry::monotonic::MonotonicConversionIter;
|
||||||
use pathfinder_geometry::outline::Outline;
|
use pathfinder_geometry::outline::Outline;
|
||||||
use pathfinder_geometry::point::Point2DF32;
|
|
||||||
use pathfinder_geometry::segment::{PathEventsToSegments, Segment};
|
use pathfinder_geometry::segment::{PathEventsToSegments, Segment};
|
||||||
use pathfinder_geometry::segment::{SegmentFlags, SegmentsToPathEvents};
|
use pathfinder_geometry::segment::{SegmentFlags, SegmentsToPathEvents};
|
||||||
use pathfinder_geometry::stroke::{StrokeStyle, StrokeToFillIter};
|
use pathfinder_geometry::stroke::{StrokeStyle, StrokeToFillIter};
|
||||||
use pathfinder_geometry::transform::{Transform2DF32, Transform2DF32PathIter};
|
|
||||||
use pathfinder_renderer::paint::{ColorU, Paint};
|
use pathfinder_renderer::paint::{ColorU, Paint};
|
||||||
use pathfinder_renderer::scene::{PathObject, PathObjectKind, Scene};
|
use pathfinder_renderer::scene::{PathObject, PathObjectKind, Scene};
|
||||||
use std::mem;
|
use std::mem;
|
||||||
|
|
|
@ -19,7 +19,7 @@ use clap::{App, Arg};
|
||||||
use jemallocator;
|
use jemallocator;
|
||||||
use pathfinder_renderer::builder::SceneBuilder;
|
use pathfinder_renderer::builder::SceneBuilder;
|
||||||
use pathfinder_renderer::gpu_data::BuiltScene;
|
use pathfinder_renderer::gpu_data::BuiltScene;
|
||||||
use pathfinder_renderer::scene::Scene;
|
use pathfinder_renderer::scene::{BuildTransform, Scene};
|
||||||
use pathfinder_renderer::serialization::RiffSerialize;
|
use pathfinder_renderer::serialization::RiffSerialize;
|
||||||
use pathfinder_renderer::z_buffer::ZBuffer;
|
use pathfinder_renderer::z_buffer::ZBuffer;
|
||||||
use pathfinder_svg::SceneExt;
|
use pathfinder_svg::SceneExt;
|
||||||
|
@ -103,8 +103,8 @@ fn main() {
|
||||||
|
|
||||||
let start_time = Instant::now();
|
let start_time = Instant::now();
|
||||||
let built_objects = match jobs {
|
let built_objects = match jobs {
|
||||||
Some(1) => scene.build_objects_sequentially(&z_buffer),
|
Some(1) => scene.build_objects_sequentially(&BuildTransform::None, &z_buffer),
|
||||||
_ => scene.build_objects(&z_buffer),
|
_ => scene.build_objects(&BuildTransform::None, &z_buffer),
|
||||||
};
|
};
|
||||||
elapsed_object_build_time += duration_to_ms(&(Instant::now() - start_time));
|
elapsed_object_build_time += duration_to_ms(&(Instant::now() - start_time));
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue