Skip to content

Commit c2178b4

Browse files
committed
coding style format updates and pixel translation fix
1 parent 7a9f83b commit c2178b4

File tree

14 files changed

+80
-94
lines changed

14 files changed

+80
-94
lines changed

swift/InkRecognition/Recognizer/Recognizer/InkBullet.swift

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,9 +2,9 @@
22
import Foundation
33

44
@objc
5-
class InkBullet : InkRecognitionUnit {
5+
class InkBullet: InkRecognitionUnit {
66

7-
var text:String!
7+
var text: String!
88

99
@objc
1010
override init(json : [String:Any]) {

swift/InkRecognition/Recognizer/Recognizer/InkDrawing.swift

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11

22

33
import Foundation
4+
import UIKit
45

56
@objc
67
public enum Shape : Int {
@@ -30,15 +31,15 @@ public enum Shape : Int {
3031
}
3132

3233
@objc
33-
class InkDrawing : InkRecognitionUnit {
34+
class InkDrawing: InkRecognitionUnit {
3435

3536
private var center: InkPoint!
3637
private var confidence: Float!
37-
var shape:Shape!
38-
var shapeName : String!
38+
var shape: Shape!
39+
var shapeName: String!
3940
var rotationAngle: Float!
4041
var alternates = [Shape]()
41-
var points = [InkPoint]()
42+
var points = [CGPoint]()
4243
let supportedShapes = ["drawing": Shape.drawing,
4344
"circle": Shape.circle,
4445
"square": Shape.square,
@@ -64,7 +65,7 @@ class InkDrawing : InkRecognitionUnit {
6465
"polyline": Shape.polyline]
6566

6667
@objc
67-
override init(json : [String: Any]) {
68+
override init(json: [String: Any]) {
6869
super.init(json: json)
6970

7071
let jsonCenter = json["center"] as! [String: Any]
@@ -76,7 +77,7 @@ class InkDrawing : InkRecognitionUnit {
7677
for shapePoint in shapePoints {
7778
let x = shapePoint["x"] as! Float
7879
let y = shapePoint["y"] as! Float
79-
self.points.append(InkPoint(x: x, y: y));
80+
self.points.append(CGPoint(x: InkPoint.millimeterToCGFloat(mmValue: x), y: InkPoint.millimeterToCGFloat(mmValue: y)));
8081
}
8182
}
8283
self.rotationAngle = json["rotationAngle"] as? Float ?? 0.0

swift/InkRecognition/Recognizer/Recognizer/InkLine.swift

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,20 @@
11

22
import Foundation
33
@objc
4-
class InkLine : InkRecognitionUnit {
4+
class InkLine: InkRecognitionUnit {
55

66
var alternates = [[String:Any]]()
77
var indentLevel = 0.0
8-
var text:String!
8+
var text: String!
99

1010
@objc
11-
override init(json : [String: Any])
11+
override init(json: [String: Any])
1212
{
1313
self.text = json["recognizedText"] as? String ?? ""
1414
if let alternates = json["alternates"] as? [[String: Any]] {
1515
self.alternates = alternates
1616
}
17-
super.init(json:json)
17+
super.init(json: json)
1818
}
1919

2020
@objc

swift/InkRecognition/Recognizer/Recognizer/InkListItem.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,6 @@
22
import Foundation
33

44
@objc
5-
class InkListItem : InkRecognitionUnit {
5+
class InkListItem: InkRecognitionUnit {
66

77
}

swift/InkRecognition/Recognizer/Recognizer/InkParagraph.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,6 @@
22
import Foundation
33

44
@objc
5-
class InkParagraph : InkRecognitionUnit {
5+
class InkParagraph: InkRecognitionUnit {
66

77
}

swift/InkRecognition/Recognizer/Recognizer/InkPoint.swift

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -5,11 +5,12 @@ import UIKit
55

66
@objc
77
class InkPoint : NSObject, Decodable {
8-
var x : Float = 0;
9-
var y : Float = 0;
8+
var x: Float = 0;
9+
var y: Float = 0;
1010

11-
//Values from the iphone XR. Change to match your target devices with a table of values for each device.
12-
static let ppi : Float = 326.0
11+
//Value for the iphone XR. Change to match your target devices with a table of values for each device.
12+
static let iPhoneXRPPI : Float = 326.0
13+
static let iPhoneXRScalingFactor: Float = 2.0
1314
static let mmPerInch : Float = 25.4
1415
@objc
1516
init(x: Float, y: Float) {
@@ -18,14 +19,15 @@ class InkPoint : NSObject, Decodable {
1819
}
1920

2021
@objc
21-
static func millimeterToCGFloat(mmPosition: Float) -> CGFloat {
22-
return CGFloat(mmPosition/InkPoint.mmPerInch*InkPoint.ppi)
22+
static func millimeterToCGFloat(mmValue: Float) -> CGFloat {
23+
return CGFloat(mmValue/InkPoint.mmPerInch*InkPoint.iPhoneXRPPI)
2324
}
2425

2526
@objc
2627
init(point: CGPoint) {
27-
self.x = Float(point.x)/InkPoint.ppi*InkPoint.mmPerInch
28-
self.y = Float(point.y)/InkPoint.ppi*InkPoint.mmPerInch
28+
//Scale to pixels and then convert to millimeters
29+
self.x = Float(point.x)*InkPoint.iPhoneXRScalingFactor/InkPoint.iPhoneXRPPI*InkPoint.mmPerInch
30+
self.y = Float(point.y)*InkPoint.iPhoneXRScalingFactor/InkPoint.iPhoneXRPPI*InkPoint.mmPerInch
2931
}
3032
}
3133

swift/InkRecognition/Recognizer/Recognizer/InkRecognitionUnit.swift

Lines changed: 22 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11

22
import Foundation
33
import UIKit
4+
45
@objc
56
public enum InkRecognitionUnitCategory: Int {
67
case unknown,
@@ -15,33 +16,33 @@ public enum InkRecognitionUnitCategory: Int {
1516

1617
@objc
1718
class InkBoundingRectangle : NSObject, Decodable {
18-
var topX : CGFloat = 0
19-
var topY : CGFloat = 0
20-
var width : CGFloat = 0
21-
var height : CGFloat = 0
19+
var topX: CGFloat = 0
20+
var topY: CGFloat = 0
21+
var width: CGFloat = 0
22+
var height: CGFloat = 0
2223

2324
init(x: Float, y: Float, width: Float, height: Float) {
24-
self.topX = InkPoint.millimeterToCGFloat(mmPosition: x)
25-
self.topY = InkPoint.millimeterToCGFloat(mmPosition: y)
26-
self.width = InkPoint.millimeterToCGFloat(mmPosition: width)
27-
self.height = InkPoint.millimeterToCGFloat(mmPosition: height)
25+
self.topX = InkPoint.millimeterToCGFloat(mmValue: x)
26+
self.topY = InkPoint.millimeterToCGFloat(mmValue: y)
27+
self.width = InkPoint.millimeterToCGFloat(mmValue: width)
28+
self.height = InkPoint.millimeterToCGFloat(mmValue: height)
2829
}
2930
}
3031

3132
@objc
32-
class InkRecognitionUnit : NSObject {
33-
private var categoryString : String
34-
private var boundingRectangle : InkBoundingRectangle!
33+
class InkRecognitionUnit: NSObject {
34+
private var categoryString: String
35+
private var boundingRectangle: InkBoundingRectangle!
3536
private var rotatedBoundingRectangle = [CGPoint]()
3637
private var childIds = [Int]();
3738
private var parentId = -1
38-
private var strokeIds : [Int]
39-
public var id : Int = 0
40-
private var dotsPerInch : Float = 0.0
39+
private var strokeIds: [Int]
40+
public var id: Int = 0
41+
private var dotsPerInch: Float = 0.0
4142
private var result: InkRoot!
4243

4344
@objc
44-
public var category : InkRecognitionUnitCategory {
45+
public var category: InkRecognitionUnitCategory {
4546
get {
4647
var recognitionCategory: InkRecognitionUnitCategory
4748
switch (self.categoryString) {
@@ -67,7 +68,7 @@ class InkRecognitionUnit : NSObject {
6768
}
6869

6970
@objc
70-
public var children : [InkRecognitionUnit] {
71+
public var children: [InkRecognitionUnit] {
7172
return result.getNodes(ids: childIds)
7273
}
7374

@@ -87,7 +88,7 @@ class InkRecognitionUnit : NSObject {
8788
}
8889

8990
@objc
90-
init(json:[String: Any]) {
91+
init(json: [String: Any]) {
9192
self.id = json["id"] as! Int
9293
self.parentId = json["parentId"] as! Int
9394

@@ -101,13 +102,11 @@ class InkRecognitionUnit : NSObject {
101102
self.boundingRectangle = InkBoundingRectangle(x: jsonBoundingRect["topX"] as! Float, y: jsonBoundingRect["topY"] as!Float,width: jsonBoundingRect["width"] as! Float,height: jsonBoundingRect["height"] as! Float)
102103

103104
let jsonRotatedRectPoints = json["rotatedBoundingRectangle"] as! [[String: Any]]
104-
105+
//Get the array of points for the rotated bounding rectangle and convert the millimeter values to CGFloats
105106
for point in jsonRotatedRectPoints {
106-
let xValue = point["x"] as! Float
107-
let yValue = point["y"] as! Float
108-
let pointX = InkPoint.millimeterToCGFloat(mmPosition: xValue)
109-
let pointY = InkPoint.millimeterToCGFloat(mmPosition: yValue)
110-
self.rotatedBoundingRectangle.append(CGPoint(x: pointX, y: pointY))
107+
let x = point["x"] as! Float
108+
let y = point["y"] as! Float
109+
self.rotatedBoundingRectangle.append(CGPoint(x: InkPoint.millimeterToCGFloat(mmValue: x), y: InkPoint.millimeterToCGFloat(mmValue: y)))
111110
}
112111
}
113112
}

swift/InkRecognition/Recognizer/Recognizer/InkRecognizer.swift

Lines changed: 1 addition & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ class InkRecognizer : NSObject {
1818
var strokeIdStore = [Int: Int]()
1919
var strokes = [InkStroke]()
2020
var appKey: String = ""
21-
var url:String = ""
21+
var url: String = ""
2222
var inkRoot: InkRoot!
2323
weak var inkView: InkRendererView!
2424

@@ -28,13 +28,6 @@ class InkRecognizer : NSObject {
2828
self.url = url
2929
}
3030

31-
@objc
32-
public func setMetrics() {
33-
//These values are for the iphone XR. You can have a data structure
34-
//to hold the values for the target devices you want to support
35-
36-
}
37-
3831
@objc
3932
public func recognize (view: InkRendererView) {
4033
self.inkView = view

swift/InkRecognition/Recognizer/Recognizer/InkRendererView.swift

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2,16 +2,16 @@
22
import Foundation
33
import UIKit
44

5-
class InkRendererView : UIView {
5+
class InkRendererView: UIView {
66

7-
var lines : [Line] = []
7+
var lines: [Line] = []
88
var lastPoint: CGPoint!
99
var swiped = false
1010
var color = UIColor(red: 0.30, green: 0.40, blue: 0.0, alpha: 1.0)
11-
var penColor : CGColor!
12-
var inkRecognizer : InkRecognizer
13-
var inkStroke : InkStroke? = InkStroke(language: "en-US")
14-
var timer : Timer!
11+
var penColor: CGColor!
12+
var inkRecognizer: InkRecognizer
13+
var inkStroke: InkStroke? = InkStroke(language: "en-US")
14+
var timer: Timer!
1515

1616
required init(coder aDecoder : NSCoder) {
1717
self.inkRecognizer = InkRecognizer(url: "https://api.cognitive.microsoft.com/inkrecognizer/v1.0-preview/recognize", appKey: "<SUBSCRIPTION KEY HERE>")

swift/InkRecognition/Recognizer/Recognizer/InkRoot.swift

Lines changed: 15 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -10,13 +10,13 @@ enum RecognitionResultStatus : Int {
1010

1111
@objc
1212
class InkRecognitionError : NSObject {
13-
var code : String = ""
14-
var message : String = ""
15-
var target : String = ""
13+
var code: String = ""
14+
var message: String = ""
15+
var target: String = ""
1616
var details = [InkRecognitionError]()
1717

1818
@objc
19-
init(jsonString: [String: Any], isAccessError : Bool) {
19+
init(jsonString: [String: Any], isAccessError: Bool) {
2020
if !isAccessError {
2121
code = jsonString["code"] as? String ?? ""
2222
message = jsonString["message"] as? String ?? ""
@@ -46,7 +46,7 @@ class InkRecognitionError : NSObject {
4646

4747
@objc
4848
public func toString() -> String {
49-
return String("Code: \(code) \nMessage: \(message) Target: \(target) \nDetails:\n" + getErrorDetails())
49+
return String("Code: \(code) \nMessage: \(message) \nTarget: \(target) \nDetails:\n" + getErrorDetails())
5050
}
5151

5252
@objc
@@ -60,15 +60,15 @@ class InkRecognitionError : NSObject {
6060
}
6161

6262
@objc
63-
class InkRoot : NSObject {
63+
class InkRoot: NSObject {
6464

65-
var resultJSON : [String: Any]
65+
var resultJSON: [String: Any]
6666
var recognizedContainers = [Int: InkRecognitionUnit]()
6767
var recognizedWords = [Int: InkWord]()
68-
var recognizedDrawings = [Int: InkDrawing]()
68+
var recognizedDrawings = [InkDrawing]()
6969
var recognitionUnits = [Int: InkRecognitionUnit]()
70-
var orderedWords : [String] = []
71-
var errorStore : InkRecognitionError!
70+
var orderedWords: [String] = []
71+
var errorStore: InkRecognitionError!
7272
var resultStatus: RecognitionResultStatus = RecognitionResultStatus.unchanged
7373

7474
@objc
@@ -97,9 +97,9 @@ class InkRoot : NSObject {
9797
recognitionUnits[index] = inkWord
9898
orderedWords.append(inkWord.text)
9999
case "inkDrawing":
100-
let inkShape = InkDrawing(json: jsonUnit)
101-
recognizedDrawings[index] = inkShape
102-
recognitionUnits[index] = inkShape
100+
let inkDrawing = InkDrawing(json: jsonUnit)
101+
recognizedDrawings.append(inkDrawing)
102+
recognitionUnits[index] = inkDrawing
103103
case "line":
104104
let inkLine = InkLine(json: jsonUnit)
105105
recognizedContainers[index] = inkLine
@@ -169,11 +169,7 @@ class InkRoot : NSObject {
169169
}
170170

171171
@objc
172-
public func getDrawings() -> [InkDrawing] {
173-
var shapes = [InkDrawing]()
174-
recognizedDrawings.values.forEach {value in
175-
shapes.append(value)
176-
}
177-
return shapes
172+
public func getDrawings() -> [InkDrawing] {
173+
return recognizedDrawings
178174
}
179175
}

0 commit comments

Comments
 (0)