Skip to content

Commit 78451a7

Browse files
committed
Extract enums, classes and interfaces from IrImageVector.kt
1 parent dcf6175 commit 78451a7

8 files changed

Lines changed: 185 additions & 178 deletions

File tree

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
package io.github.composegears.valkyrie.ir
2+
3+
sealed interface IrFill {
4+
data class Color(val irColor: IrColor) : IrFill
5+
6+
data class LinearGradient(
7+
val startY: Float,
8+
val startX: Float,
9+
val endY: Float,
10+
val endX: Float,
11+
val colorStops: MutableList<ColorStop> = mutableListOf(),
12+
) : IrFill
13+
14+
data class RadialGradient(
15+
val radius: Float,
16+
val centerX: Float,
17+
val centerY: Float,
18+
val colorStops: MutableList<ColorStop> = mutableListOf(),
19+
) : IrFill
20+
21+
data class ColorStop(
22+
val offset: Float,
23+
val irColor: IrColor,
24+
)
25+
}

components/ir/src/commonMain/kotlin/io/github/composegears/valkyrie/ir/IrImageVector.kt

Lines changed: 0 additions & 178 deletions
Original file line numberDiff line numberDiff line change
@@ -9,181 +9,3 @@ data class IrImageVector(
99
val viewportHeight: Float,
1010
val nodes: List<IrVectorNode>,
1111
)
12-
13-
sealed interface IrVectorNode {
14-
data class IrGroup(
15-
val name: String = "",
16-
val rotate: Float = 0f,
17-
val pivotX: Float = 0f,
18-
val pivotY: Float = 0f,
19-
val scaleX: Float = 1f,
20-
val scaleY: Float = 1f,
21-
val translationX: Float = 0f,
22-
val translationY: Float = 0f,
23-
val clipPathData: MutableList<IrPathNode>,
24-
val paths: MutableList<IrPath>,
25-
) : IrVectorNode
26-
27-
data class IrPath(
28-
val name: String = "",
29-
val fill: IrFill? = null,
30-
val fillAlpha: Float = 1f,
31-
val stroke: IrStroke? = null,
32-
val strokeAlpha: Float = 1f,
33-
val strokeLineWidth: Float = 0f,
34-
val strokeLineCap: IrStrokeLineCap = IrStrokeLineCap.Butt,
35-
val strokeLineJoin: IrStrokeLineJoin = IrStrokeLineJoin.Miter,
36-
val strokeLineMiter: Float = 4f,
37-
val pathFillType: IrPathFillType = IrPathFillType.NonZero,
38-
val paths: List<IrPathNode>,
39-
) : IrVectorNode
40-
}
41-
42-
enum class IrPathFillType {
43-
EvenOdd,
44-
NonZero,
45-
}
46-
47-
enum class IrStrokeLineCap {
48-
Butt,
49-
Round,
50-
Square,
51-
}
52-
53-
enum class IrStrokeLineJoin {
54-
Miter,
55-
Round,
56-
Bevel,
57-
}
58-
59-
sealed interface IrFill {
60-
data class Color(val irColor: IrColor) : IrFill
61-
62-
data class LinearGradient(
63-
val startY: Float,
64-
val startX: Float,
65-
val endY: Float,
66-
val endX: Float,
67-
val colorStops: MutableList<ColorStop> = mutableListOf(),
68-
) : IrFill
69-
70-
data class RadialGradient(
71-
val radius: Float,
72-
val centerX: Float,
73-
val centerY: Float,
74-
val colorStops: MutableList<ColorStop> = mutableListOf(),
75-
) : IrFill
76-
77-
data class ColorStop(
78-
val offset: Float,
79-
val irColor: IrColor,
80-
)
81-
}
82-
83-
sealed interface IrStroke {
84-
data class Color(val irColor: IrColor) : IrStroke
85-
}
86-
87-
sealed interface IrPathNode {
88-
89-
data object Close : IrPathNode
90-
data class RelativeMoveTo(
91-
val x: Float,
92-
val y: Float,
93-
) : IrPathNode
94-
95-
data class MoveTo(
96-
val x: Float,
97-
val y: Float,
98-
) : IrPathNode
99-
100-
data class RelativeLineTo(
101-
val x: Float,
102-
val y: Float,
103-
) : IrPathNode
104-
105-
data class LineTo(
106-
val x: Float,
107-
val y: Float,
108-
) : IrPathNode
109-
110-
data class RelativeHorizontalTo(val x: Float) : IrPathNode
111-
data class HorizontalTo(val x: Float) : IrPathNode
112-
data class RelativeVerticalTo(val y: Float) : IrPathNode
113-
data class VerticalTo(val y: Float) : IrPathNode
114-
data class RelativeCurveTo(
115-
val dx1: Float,
116-
val dy1: Float,
117-
val dx2: Float,
118-
val dy2: Float,
119-
val dx3: Float,
120-
val dy3: Float,
121-
) : IrPathNode
122-
123-
data class CurveTo(
124-
val x1: Float,
125-
val y1: Float,
126-
val x2: Float,
127-
val y2: Float,
128-
val x3: Float,
129-
val y3: Float,
130-
) : IrPathNode
131-
132-
data class RelativeReflectiveCurveTo(
133-
val x1: Float,
134-
val y1: Float,
135-
val x2: Float,
136-
val y2: Float,
137-
) : IrPathNode
138-
139-
data class ReflectiveCurveTo(
140-
val x1: Float,
141-
val y1: Float,
142-
val x2: Float,
143-
val y2: Float,
144-
) : IrPathNode
145-
146-
data class RelativeQuadTo(
147-
val x1: Float,
148-
val y1: Float,
149-
val x2: Float,
150-
val y2: Float,
151-
) : IrPathNode
152-
153-
data class QuadTo(
154-
val x1: Float,
155-
val y1: Float,
156-
val x2: Float,
157-
val y2: Float,
158-
) : IrPathNode
159-
160-
data class RelativeReflectiveQuadTo(
161-
val x: Float,
162-
val y: Float,
163-
) : IrPathNode
164-
165-
data class ReflectiveQuadTo(
166-
val x: Float,
167-
val y: Float,
168-
) : IrPathNode
169-
170-
data class RelativeArcTo(
171-
val horizontalEllipseRadius: Float,
172-
val verticalEllipseRadius: Float,
173-
val theta: Float,
174-
val isMoreThanHalf: Boolean,
175-
val isPositiveArc: Boolean,
176-
val arcStartDx: Float,
177-
val arcStartDy: Float,
178-
) : IrPathNode
179-
180-
data class ArcTo(
181-
val horizontalEllipseRadius: Float,
182-
val verticalEllipseRadius: Float,
183-
val theta: Float,
184-
val isMoreThanHalf: Boolean,
185-
val isPositiveArc: Boolean,
186-
val arcStartX: Float,
187-
val arcStartY: Float,
188-
) : IrPathNode
189-
}
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
package io.github.composegears.valkyrie.ir
2+
3+
enum class IrPathFillType {
4+
EvenOdd,
5+
NonZero,
6+
}
Lines changed: 105 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,105 @@
1+
package io.github.composegears.valkyrie.ir
2+
3+
sealed interface IrPathNode {
4+
5+
data object Close : IrPathNode
6+
data class RelativeMoveTo(
7+
val x: Float,
8+
val y: Float,
9+
) : IrPathNode
10+
11+
data class MoveTo(
12+
val x: Float,
13+
val y: Float,
14+
) : IrPathNode
15+
16+
data class RelativeLineTo(
17+
val x: Float,
18+
val y: Float,
19+
) : IrPathNode
20+
21+
data class LineTo(
22+
val x: Float,
23+
val y: Float,
24+
) : IrPathNode
25+
26+
data class RelativeHorizontalTo(val x: Float) : IrPathNode
27+
data class HorizontalTo(val x: Float) : IrPathNode
28+
data class RelativeVerticalTo(val y: Float) : IrPathNode
29+
data class VerticalTo(val y: Float) : IrPathNode
30+
data class RelativeCurveTo(
31+
val dx1: Float,
32+
val dy1: Float,
33+
val dx2: Float,
34+
val dy2: Float,
35+
val dx3: Float,
36+
val dy3: Float,
37+
) : IrPathNode
38+
39+
data class CurveTo(
40+
val x1: Float,
41+
val y1: Float,
42+
val x2: Float,
43+
val y2: Float,
44+
val x3: Float,
45+
val y3: Float,
46+
) : IrPathNode
47+
48+
data class RelativeReflectiveCurveTo(
49+
val x1: Float,
50+
val y1: Float,
51+
val x2: Float,
52+
val y2: Float,
53+
) : IrPathNode
54+
55+
data class ReflectiveCurveTo(
56+
val x1: Float,
57+
val y1: Float,
58+
val x2: Float,
59+
val y2: Float,
60+
) : IrPathNode
61+
62+
data class RelativeQuadTo(
63+
val x1: Float,
64+
val y1: Float,
65+
val x2: Float,
66+
val y2: Float,
67+
) : IrPathNode
68+
69+
data class QuadTo(
70+
val x1: Float,
71+
val y1: Float,
72+
val x2: Float,
73+
val y2: Float,
74+
) : IrPathNode
75+
76+
data class RelativeReflectiveQuadTo(
77+
val x: Float,
78+
val y: Float,
79+
) : IrPathNode
80+
81+
data class ReflectiveQuadTo(
82+
val x: Float,
83+
val y: Float,
84+
) : IrPathNode
85+
86+
data class RelativeArcTo(
87+
val horizontalEllipseRadius: Float,
88+
val verticalEllipseRadius: Float,
89+
val theta: Float,
90+
val isMoreThanHalf: Boolean,
91+
val isPositiveArc: Boolean,
92+
val arcStartDx: Float,
93+
val arcStartDy: Float,
94+
) : IrPathNode
95+
96+
data class ArcTo(
97+
val horizontalEllipseRadius: Float,
98+
val verticalEllipseRadius: Float,
99+
val theta: Float,
100+
val isMoreThanHalf: Boolean,
101+
val isPositiveArc: Boolean,
102+
val arcStartX: Float,
103+
val arcStartY: Float,
104+
) : IrPathNode
105+
}
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
package io.github.composegears.valkyrie.ir
2+
3+
sealed interface IrStroke {
4+
data class Color(val irColor: IrColor) : IrStroke
5+
}
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
package io.github.composegears.valkyrie.ir
2+
3+
enum class IrStrokeLineCap {
4+
Butt,
5+
Round,
6+
Square,
7+
}
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
package io.github.composegears.valkyrie.ir
2+
3+
enum class IrStrokeLineJoin {
4+
Miter,
5+
Round,
6+
Bevel,
7+
}
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
package io.github.composegears.valkyrie.ir
2+
3+
sealed interface IrVectorNode {
4+
data class IrGroup(
5+
val name: String = "",
6+
val rotate: Float = 0f,
7+
val pivotX: Float = 0f,
8+
val pivotY: Float = 0f,
9+
val scaleX: Float = 1f,
10+
val scaleY: Float = 1f,
11+
val translationX: Float = 0f,
12+
val translationY: Float = 0f,
13+
val clipPathData: MutableList<IrPathNode>,
14+
val paths: MutableList<IrPath>,
15+
) : IrVectorNode
16+
17+
data class IrPath(
18+
val name: String = "",
19+
val fill: IrFill? = null,
20+
val fillAlpha: Float = 1f,
21+
val stroke: IrStroke? = null,
22+
val strokeAlpha: Float = 1f,
23+
val strokeLineWidth: Float = 0f,
24+
val strokeLineCap: IrStrokeLineCap = IrStrokeLineCap.Butt,
25+
val strokeLineJoin: IrStrokeLineJoin = IrStrokeLineJoin.Miter,
26+
val strokeLineMiter: Float = 4f,
27+
val pathFillType: IrPathFillType = IrPathFillType.NonZero,
28+
val paths: List<IrPathNode>,
29+
) : IrVectorNode
30+
}

0 commit comments

Comments
 (0)