/*class shape {
var name : String?
var sides : Int?
var origin : CGPoint?
var lineColor : UIColor = UIColor.red
var fillColor : UIColor = UIColor.green
var lineWidth : CGFloat =2
init(name : String, sides : Int, origin :CGPoint) {
self.name=name
self.sides = sides
self.origin = origin
}
func sayHello(){
print("Shape is \(name!),sides \(sides!), and origincord is(\
(origin!.x),\(origin!.y)) ")
}
}
class viewController: UIviewCon troller {
override func viewDidLoad() {
super.viewDidLoad()
let myShape = Shape(nam e:"BaseShape", sides: 0, origin: CGPoint
(x:0,y:0))
myShape.sayHello()
}
}*/
/*import ulkit
class Shape {
var name : string?
var sides : Int?
var origin : CGPoint?
var lineColor : UIColor = UIColor.red
var fillcolor : UIColor = UIColor.green
var lineWidth : CGFloat = 2
init(name : String, sides : Int, origin : CGPoint) {
self.name=name
self.sides=sides
self.origin=origin
func sayHello(){
print("Shape:\(name!),sides \(sides!), origin (\(origin!.x),\
(origin!.y)) ")
}
}
class Czfview : UIView {
var shape : shape?
override func draw(_ rect: CGRect) {
guard let s = shape else {
return
}
s.sayHello()
}
}
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
let myShape = Shape(name:"B aseShape", sides: 0,origin: CGPoint(x:
0,y:0))
let width = self.view.fral me.size.width
let height = self.view.fr ame.size.height
let myView=Czfview(frai me: CGRect(x: 0, y: 0, width: width,
height: height))
myView.shape=myShape
self.view.addSubview(myView)
}
}*/
/*func drawBezierPath(){
let path = UIBeziPath()
let center :CGPoint =CGPoint(x: 100,y : 100)
let radius :cgfloa
path.addArc(withcenendAngle:cGFloat.pi*2,clockwiater: center, radius: radius, startAngle: 0 se: true)
path.lineWidth =5
UIColor.red.setStroke()
path.stroke()
}*/
/*class Rectangle : Shape {
var size :cgsize?
init(name: String, origin:CGPointsize:CGSize){
super.init(name: name, origin: origin)
self.size=size
}
convenience init(origin: CGPoint, size:CGSize){
self.init(name: "Rectangle", origin: origin, size: size)}
}
override func drawBezierPath(){
print("Draw\(name!)")
let path =UIBezierPath(rect:CGRect(origin: origin!, size: size!))
path.lineWidth = lineWidth!
lineColor?,setStroke()
path.stroke()
}
}*/
/*class Rectangle :Shape {
var size :cgsize?
var corner : cfloat?
init(name: String,origin:CGPoi ntsize:CGSize,corner:CGFloat){
super.init(name: name,or cigin: origin)
self.size=size
self.corner=corner
}
convenience init(origin: CGPoint,size :CGSize, corner : CGFloat = 0) {
corner)
self.init(name:"Rectangle", origin: origin, size: size, corner :
}
override func drawBezierPath(){
print("Draw\(name!)")
let path=UIBezierPath(roundedRect:CGRect(origin:origin!, size:
size!),cornerRadius: corner!)
path.lineWidth = lineWidth!
lineColor?.setstroke()
path,stroke()
}
}*/
/*class circle : Shape {
var center : cGPoint?
var raduis : cGFloat?
var size : cgsize?
init(name: String,origin h: CGPoint, center : CGPoint, raduis : CGFloat,
size:CGSize){
super.init(center:name, origin: origin)
self.center=centel
self.raduis = radui
self.size=size
}
convenience init(center :CGPoint,raduis :CGFloat){
letx=center.x-r caduis
let y=center.y-r caduis
self.init(name: "circ le", origin: CGPoint(x:xy:y), center: center,
raduis: raduis, size: CGSize(widt h: raduis, height: raduis))
}
}
convenience init(center :CGPoint,size:CGSize){
let x=center.x- size.width/2
let y= center.y- size.height/2
self.init(name: "Ova l/Ellipse", origin: CGPoint(x:x,y:y), center:
center, raduis: 0, size: size)
}
override func drawBezie rPath(){
print ("Draw \(name!) ")
let path = UIBezier Path(ovalIn: CGRect(origin: origin!,size:
size!))
path.lineWidth = lin eWidth!
lineColor?.setstroke()
path.stroke()
}
} */
/*class Polygons :Shape {
var points : Array<cGPoint?
init(name: String,origin: CGPoint,points : Array<CGPoint> ){
super.init(name: name, origin: origin)
self.points =points}
}
convenience init(points :A Array<cGPoint> ) {
if points.count == 3 {
self.init(name:"Triangel", origin: points.first!, points:
points)
else if points.count >= 3 {
self.init(name: "Polygons", origin: points.first!, points: points)}
else {
let origin = CGPoint(x: 0, y: 0)
self.init(name: "Error", origin: origin, points: points)
}
override func drawBezierPath(){
print ("Draw \(name!)")
if(name == "Error") {
return
}*/
import uikit
import Foundation import AVFoundation
class Shape {
var name : string?
var soundplayer : AVAudioPlayer?
var soundfile : string?
var path : UIBezierPath?
var selectedflag : Bool =false
var origin : cGPoint?
var lineColor : UIColor? = UIColor.red
var fillcolor : UIColor? = UIColor.green
var lineWidth : CGFloat? ?=5
init(name :string, origin : CGPoint,soundFile : String - “Do.m4a"){
self.name=name
self.origin =origin
self.soundfile = soundFile
convenience init(origin : CGPoint){
self.init(name: "Shape Bassclass", origin: origin)}
func drawBezierPath(){
print("Draw \(name!)")
}
func playAudio(){
print("Play sound:\(soundFile!)")
}
let path =Bundle.main.path(forResource:soundFile,ofType:nil)
let url=URL(fileURLWithPath: path!)
soundPlayer=try? AVAudioPlayer(contents0f:url) soundPlayer?.play()
soundplyer?play()
}
ay()
func isSelected(poi nt : cGPoint) -> Bool{
if (path?.conta ins(point))! {
selectedflac g = true return true
}
else {
selectedflag = false
return false
}
}
}
class Line :Shape {
var start : CGPoint?
var end : CGPoint?
init(name: String,origin: CGPoint, start : CGPoint, end : CGPoint,
soundfile :String="FA.m4a"){
super.init(name: name, origin: origin,soundFile:soundFile)
self.start = start
self.end=end
}
convenience init(start: CGPoint,end:CGPoint){
self.init(name:"Line",origin: start, start: start, end: end)
override func drawBezierPath(){
print("Draw\(name!)")
path = UIBezierPath()
path?.move(to: start!)
path?.addLine(to: end!)
path? lineWidth = lineWidth!