Browse Source

Add rad and deg units to css parser

Leonardo Jeanteur 11 months ago
parent
commit
22f6e8a7a0
1 changed files with 25 additions and 1 deletions
  1. 25 1
      h2d/domkit/BaseComponents.hx

+ 25 - 1
h2d/domkit/BaseComponents.hx

@@ -424,6 +424,30 @@ class CustomParser extends domkit.CssValue.ValueParser {
 		return adj;
 	}
 
+	public function parseAngleRad(value:CssValue) : Float {
+		return switch(value) {
+			case VUnit(v, "rad"):
+				v;
+			case VUnit(v, "deg"):
+				hxd.Math.degToRad(v);
+			default:
+				parseFloat(value);
+		}
+		return 0.;
+	}
+
+	public function parseAngleDeg(value:CssValue) : Float {
+		return switch(value) {
+			case VUnit(v, "rad"):
+				hxd.Math.radToDeg(v);
+			case VUnit(v, "deg"):
+				v;
+			default:
+				parseFloat(value);
+		}
+		return 0.;
+	}
+
 }
 
 #if !macro
@@ -433,7 +457,7 @@ class ObjectComp implements h2d.domkit.Object implements domkit.Component.Compon
 	@:p var x : Float;
 	@:p var y : Float;
 	@:p var alpha : Float = 1;
-	@:p var rotation : Float;
+	@:p(angleRad) var rotation : Float;
 	@:p var visible : Bool = true;
 	@:p(scale) var scale : { x : Float, y : Float };
 	@:p var scaleX : Float = 1;