فهرست منبع

Add more defaults

Kevin Lee 1 سال پیش
والد
کامیت
9707f15a11
3فایلهای تغییر یافته به همراه81 افزوده شده و 3 حذف شده
  1. 25 1
      src/ezcad/objects/circle.rs
  2. 27 1
      src/ezcad/objects/ellipse.rs
  3. 29 1
      src/ezcad/objects/polygon.rs

+ 25 - 1
src/ezcad/objects/circle.rs

@@ -5,7 +5,7 @@ use diff::Diff;
 
 use crate::{
     field_of::FieldOf,
-    types::{Field, Point, F64, U32},
+    types::{Field, ObjectType, Point, F64, U32},
 };
 
 use super::ObjectCore;
@@ -38,3 +38,27 @@ impl Debug for Circle {
             .finish()
     }
 }
+
+impl Default for Circle {
+    fn default() -> Self {
+        Self {
+            core: ObjectCore {
+                obj_type: ObjectType::Circle.into(),
+                ..Default::default()
+            },
+            origin: Point { x: 0.0, y: 0.0 }.into(),
+            radius: 0.0.into(),
+            start_angle: 0.0.into(),
+            clockwise: 0.into(),
+            _unknown_1: [
+                vec![0, 0, 0, 0].into(), // 0_u32
+                vec![
+                    0, 0, 0, 0, 0, 0, 240, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+                    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 240, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+                    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 240, 63,
+                ] // ???
+                .into(),
+            ],
+        }
+    }
+}

+ 27 - 1
src/ezcad/objects/ellipse.rs

@@ -5,7 +5,7 @@ use diff::Diff;
 
 use crate::{
     field_of::FieldOf,
-    types::{Field, Point, F64, U32},
+    types::{Field, ObjectType, Point, F64, U32},
 };
 
 use super::ObjectCore;
@@ -42,3 +42,29 @@ impl Debug for Ellipse {
             .finish()
     }
 }
+
+impl Default for Ellipse {
+    fn default() -> Self {
+        Self {
+            core: ObjectCore {
+                obj_type: ObjectType::Ellipse.into(),
+                ..Default::default()
+            },
+            clockwise: 0.into(),
+            corner_a: Point { x: 0.0, y: 0.0 }.into(),
+            corner_b: Point { x: 0.0, y: 0.0 }.into(),
+            start_angle: 0.0.into(),
+            end_angle: 0.0.into(),
+            _unknown_1: [
+                vec![0, 0, 0, 0].into(), // 0_u32
+                vec![
+                    0, 0, 0, 0, 0, 0, 240, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+                    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 240, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+                    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 240, 63,
+                ] // ???
+                .into(),
+            ],
+            open_curve: 0.into(),
+        }
+    }
+}

+ 29 - 1
src/ezcad/objects/polygon.rs

@@ -5,7 +5,7 @@ use diff::Diff;
 
 use crate::{
     field_of::FieldOf,
-    types::{Field, Point, F64, U32},
+    types::{Field, ObjectType, Point, F64, U32},
 };
 
 use super::ObjectCore;
@@ -46,3 +46,31 @@ impl Debug for Polygon {
             .finish()
     }
 }
+
+impl Default for Polygon {
+    fn default() -> Self {
+        Self {
+            core: ObjectCore {
+                obj_type: ObjectType::Polygon.into(),
+                ..Default::default()
+            },
+            invert_shape: 1.into(),
+            corner_a: Point { x: 0.0, y: 0.0 }.into(),
+            corner_b: Point { x: 0.0, y: 0.0 }.into(),
+            offset_cx: 0.0.into(),
+            offset_cy: 0.0.into(),
+            offset_dx: 0.0.into(),
+            offset_dy: 0.0.into(),
+            edges: 6.into(),
+            _unknown_1: [
+                vec![0, 0, 0, 0].into(), // 0_u32
+                vec![
+                    0, 0, 0, 0, 0, 0, 240, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+                    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 240, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+                    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 240, 63,
+                ] // ???
+                .into(),
+            ],
+        }
+    }
+}