mirror of
https://github.com/SimpleMobileTools/Simple-Draw.git
synced 2025-06-05 21:59:17 +02:00
convert some Actions to kotlin
This commit is contained in:
@ -0,0 +1,45 @@
|
||||
package com.simplemobiletools.draw.actions
|
||||
|
||||
import android.graphics.Path
|
||||
|
||||
import java.io.IOException
|
||||
import java.io.Writer
|
||||
import java.security.InvalidParameterException
|
||||
|
||||
class Line : Action {
|
||||
|
||||
val x: Float
|
||||
val y: Float
|
||||
|
||||
@Throws(InvalidParameterException::class)
|
||||
constructor(data: String) {
|
||||
if (data.startsWith("L"))
|
||||
throw InvalidParameterException("The Line data should start with 'L'.")
|
||||
|
||||
try {
|
||||
val xy = data.substring(1).split(",".toRegex()).dropLastWhile(String::isEmpty).toTypedArray()
|
||||
x = java.lang.Float.parseFloat(xy[0].trim { it <= ' ' })
|
||||
y = java.lang.Float.parseFloat(xy[1].trim { it <= ' ' })
|
||||
} catch (ignored: Exception) {
|
||||
throw InvalidParameterException("Error parsing the given Line data.")
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
constructor(x: Float, y: Float) {
|
||||
this.x = x
|
||||
this.y = y
|
||||
}
|
||||
|
||||
override fun perform(path: Path) {
|
||||
path.lineTo(x, y)
|
||||
}
|
||||
|
||||
@Throws(IOException::class)
|
||||
override fun perform(writer: Writer) {
|
||||
writer.write("L")
|
||||
writer.write(x.toString())
|
||||
writer.write(",")
|
||||
writer.write(y.toString())
|
||||
}
|
||||
}
|
@ -0,0 +1,45 @@
|
||||
package com.simplemobiletools.draw.actions
|
||||
|
||||
import android.graphics.Path
|
||||
|
||||
import java.io.IOException
|
||||
import java.io.Writer
|
||||
import java.security.InvalidParameterException
|
||||
|
||||
class Move : Action {
|
||||
|
||||
val x: Float
|
||||
val y: Float
|
||||
|
||||
@Throws(InvalidParameterException::class)
|
||||
constructor(data: String) {
|
||||
if (data.startsWith("M"))
|
||||
throw InvalidParameterException("The Move data should start with 'M'.")
|
||||
|
||||
try {
|
||||
val xy = data.substring(1).split(",".toRegex()).dropLastWhile(String::isEmpty).toTypedArray()
|
||||
x = java.lang.Float.parseFloat(xy[0].trim { it <= ' ' })
|
||||
y = java.lang.Float.parseFloat(xy[1].trim { it <= ' ' })
|
||||
} catch (ignored: Exception) {
|
||||
throw InvalidParameterException("Error parsing the given Move data.")
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
constructor(x: Float, y: Float) {
|
||||
this.x = x
|
||||
this.y = y
|
||||
}
|
||||
|
||||
override fun perform(path: Path) {
|
||||
path.moveTo(x, y)
|
||||
}
|
||||
|
||||
@Throws(IOException::class)
|
||||
override fun perform(writer: Writer) {
|
||||
writer.write("M")
|
||||
writer.write(x.toString())
|
||||
writer.write(",")
|
||||
writer.write(y.toString())
|
||||
}
|
||||
}
|
@ -0,0 +1,57 @@
|
||||
package com.simplemobiletools.draw.actions
|
||||
|
||||
import android.graphics.Path
|
||||
|
||||
import java.io.IOException
|
||||
import java.io.Writer
|
||||
import java.security.InvalidParameterException
|
||||
|
||||
class Quad : Action {
|
||||
|
||||
val x1: Float
|
||||
val y1: Float
|
||||
val x2: Float
|
||||
val y2: Float
|
||||
|
||||
constructor(data: String) {
|
||||
if (data.startsWith("Q"))
|
||||
throw InvalidParameterException("The Quad data should start with 'Q'.")
|
||||
|
||||
try {
|
||||
val parts = data.split("\\s+".toRegex()).dropLastWhile(String::isEmpty).toTypedArray()
|
||||
val xy1 = parts[0].substring(1).split(",".toRegex()).dropLastWhile(String::isEmpty).toTypedArray()
|
||||
val xy2 = parts[1].split(",".toRegex()).dropLastWhile(String::isEmpty).toTypedArray() // No need to skip the 'Q' here
|
||||
|
||||
x1 = java.lang.Float.parseFloat(xy1[0].trim { it <= ' ' })
|
||||
y1 = java.lang.Float.parseFloat(xy1[1].trim { it <= ' ' })
|
||||
x2 = java.lang.Float.parseFloat(xy2[0].trim { it <= ' ' })
|
||||
y2 = java.lang.Float.parseFloat(xy2[1].trim { it <= ' ' })
|
||||
} catch (ignored: Exception) {
|
||||
throw InvalidParameterException("Error parsing the given Quad data.")
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
constructor(x1: Float, y1: Float, x2: Float, y2: Float) {
|
||||
this.x1 = x1
|
||||
this.y1 = y1
|
||||
this.x2 = x2
|
||||
this.y2 = y2
|
||||
}
|
||||
|
||||
override fun perform(path: Path) {
|
||||
path.quadTo(x1, y1, x2, y2)
|
||||
}
|
||||
|
||||
@Throws(IOException::class)
|
||||
override fun perform(writer: Writer) {
|
||||
writer.write("Q")
|
||||
writer.write(x1.toString())
|
||||
writer.write(",")
|
||||
writer.write(y1.toString())
|
||||
writer.write(" ")
|
||||
writer.write(x2.toString())
|
||||
writer.write(",")
|
||||
writer.write(y2.toString())
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user