- Make the png background transparent
- Customizable methods in
Filter and Transform
binary - Information print
- Cargo instruments
- Pull request
- Results:
src ├── bin │ ├── ply_fat.rs │ ├── ply_interpolate.rs │ ├── ply_to_ply.rs │ ├── ply_to_png.rs │ ├── ply_view.rs │ └── test.rs ├── examples ├── io │ ├── mod.rs │ ├── reader.rs │ └── writer.rs ├── lib.rs ├── ply.rs ├── ply_dir.rs ├── pointcloud │ ├── color.rs │ ├── coordinate.rs │ ├── mod.rs │ ├── params.rs │ ├── point.rs │ └── points.rs ├── processing │ ├── filter_and_transform │ │ ├── fat.rs │ │ ├── filter.rs │ │ ├── mod.rs │ │ └── transform.rs │ ├── interpolate.rs │ ├── interpolate_controller.rs │ └── mod.rs └── render ├── gui.rs ├── gui_states.rs ├── mod.rs └── renderer.rs
- Pull request
- Using feature
conrod
of dependencykiss3d
- Result
- Pull request
- Using module
event
in featureconrod
of dependencykiss3d
- Result for press 'I'
- Result for press 'Space'
-
Fix struct
Points
/// Class of Points containing all necessary metadata pub struct Points { /// Data is a vector of type Point, storing all coordinate and colour data pub data: Vec<Point>, /// Stores the coordinate delta between the next and prev frames pub delta_pos_vector: Vec<Point3<f32>>, /// Stores the colour delta between the next and prev frames pub delta_colours: Vec<Point3<f32>>, /// Stores the next frame as a reference for mapping count and unmapped points pub reference_frame: Vec<Point>, }
-
New struct
Ply
pub struct Ply { title: Option<PathBuf>, points: Points, }
- Pull request
- Results:
- <- Command:
$ ply_view -i $plySource/binary_longdress/ -b=100,100,100
- -> Result
- Pull request
- Results:
- <- Command:
$ ply_to_png -- -i $plySource/binary_longdress/longdress_vox10_1223.ply
- -> Result
Finished release [optimized + debuginfo] target(s) in 0.32s Running `target/release/ply_to_png -i /Users/hungkhoaitay/Library/plySource//binary_longdress/longdress_vox10_1223.ply` Image saved to "longdress_vox10_1223.png"
- -> Command:
$ ply_to_ply -- -i $plySource/binary_longdress/longdress_vox10_1223.ply | ply_to_png
- <- Result
Blocking waiting for file lock on package cache Blocking waiting for file lock on package cache Blocking waiting for file lock on package cache Blocking waiting for file lock on package cache Blocking waiting for file lock on package cache Blocking waiting for file lock on package cache Blocking waiting for file lock on build directory Finished release [optimized + debuginfo] target(s) in 0.39s Running `target/release/ply_to_ply -i /Users/hungkhoaitay/Library/plySource//binary_longdress/longdress_vox10_1223.ply` Finished release [optimized + debuginfo] target(s) in 0.42s Running `target/release/ply_to_png` Image saved to "output.png"
-
Problem: The package is needed to be organized.
-
Solve: Installed
tree
by$ brew install tree
to present directory. -
Result:
src ├── bin │ ├── ply_fat.rs │ ├── ply_interpolate.rs │ ├── ply_to_ply.rs │ ├── ply_to_png.rs │ ├── ply_view.rs │ └── test.rs ├── examples ├── lib.rs ├── materials │ ├── color.rs │ ├── coordinate.rs │ ├── mod.rs │ ├── params.rs │ ├── ply.rs │ ├── ply_dir.rs │ ├── point.rs │ └── points.rs ├── methods │ ├── filter.rs │ ├── mod.rs │ └── transform.rs └── tool ├── fat.rs ├── interpolate.rs ├── interpolate_controller.rs ├── mod.rs ├── reader.rs ├── renderer.rs └── writer.rs
-
Note: Haven't tested interpolate yet!
- Problem: Cannot distinguish between multiple windows.
- Solve: Added a field
title
into classPoints
:/// Class of Points containing all necessary metadata pub struct Points { /// Name of the points pub (crate) title: Option<String>, /// Data is a vector of type Point, storing all coordinate and colour data pub data: Vec<Point>, /// Stores the coordinate delta between the next and prev frames pub delta_pos_vector: Vec<Point3<f32>>, /// Stores the colour delta between the next and prev frames pub delta_colours: Vec<Point3<f32>>, /// Stores the next frame as a reference for mapping count and unmapped points pub reference_frame: Vec<Point>, }
- Result
- Problem: Gain runtime information of the positions of 'eye' and 'at'
- Solve: commit
- Tried native
relative_eq
in classPoint3
of cratenalgebra
but the methods are private. Add dependencyapprox
and do self compare. - Detect changes with
eye
andat
but not from thewindow
. - Result
- Problem: The gap above is too large.
- Solve:
const DEFAULT_EYE: Point3<f32> = Point3::new(0.0f32, 500.0, 2500.0); const DEFAULT_AT: Point3<f32> = Point3::new(300.0f32, 800.0, 200.0);
const DEFAULT_EYE: Point3<f32> = Point3::new(0.0f32, 500.0, 1800.0); const DEFAULT_AT: Point3<f32> = Point3::new(300.0f32, 500.0, 200.0);
- Result
- Solve
- Installed
brew
Intel version and installedcargo-instruments
via it successfully. - Installation of
brew
Intel version - Unknown Error solved
- Installed
- Problem: Able to do the same with
ply_to_png
. - Solve: Pull request
- Problem: The variable
key
keep cloning, detected by weitsang using cargo-instruments. - Solve:
- Original reading binary-file time: 450ms 😅
- Here is the changes that has been made.
- Now the running time is reduced to be nearly 90ms 🤪
-
Problem: Stop playing video when facing error with reading some files.
-
Solve
- Handled the error in each file and print out error in the terminal
- Different error handling:
- With file with appropriate extension but have empty content:
Problem with reading file: Unable to read the header of the input: /Users/hungkhoaitay/Library/plySource/binary_longdress/error_file.ply
- With file with inappropriate extension (not
.ply
):Problem with reading file: Extension of file: /Users/hungkhoaitay/Library/plySource/binary_longdress/error_file.txt expected to be .ply
- With file with appropriate extension but have empty content:
$ cargo run --release --bin ply_view -- -i $plySource/binary_longdress/longdress_vox10_1223.ply
$ cargo run --release --bin ply_fat -- -i $plySource/binary_longdress/longdress_vox10_1223.ply --filter upper_half -t all_red | cargo run --release --bin ply_view
$ cargo run --release --bin ply_to_png -- -i $plySource/binary_longdress/longdress_vox10_1223.ply -x 600 -w 400 -h 800 -o ouput.png
$ cargo run --release --bin ply_to_ply -- -i $plySource/binary_longdress/longdress_vox10_1223.ply –f binary –o output.ply