33 lines
		
	
	
		
			335 B
		
	
	
	
		
			Go
		
	
	
	
	
	
		
		
			
		
	
	
			33 lines
		
	
	
		
			335 B
		
	
	
	
		
			Go
		
	
	
	
	
	
| 
								 | 
							
								package ivec2
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								var Zero = T{}
							 | 
						||
| 
								 | 
							
								var One = T{X: 1, Y: 1}
							 | 
						||
| 
								 | 
							
								var UnitX = T{X: 1}
							 | 
						||
| 
								 | 
							
								var UnitY = T{Y: 1}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								type T struct {
							 | 
						||
| 
								 | 
							
									X int
							 | 
						||
| 
								 | 
							
									Y int
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								func New(x, y int) T {
							 | 
						||
| 
								 | 
							
									return T{
							 | 
						||
| 
								 | 
							
										X: x,
							 | 
						||
| 
								 | 
							
										Y: y,
							 | 
						||
| 
								 | 
							
									}
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								func (v T) Add(v2 T) T {
							 | 
						||
| 
								 | 
							
									return T{
							 | 
						||
| 
								 | 
							
										X: v.X + v2.X,
							 | 
						||
| 
								 | 
							
										Y: v.Y + v2.Y,
							 | 
						||
| 
								 | 
							
									}
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								func (v T) Sub(v2 T) T {
							 | 
						||
| 
								 | 
							
									return T{
							 | 
						||
| 
								 | 
							
										X: v.X - v2.X,
							 | 
						||
| 
								 | 
							
										Y: v.Y - v2.Y,
							 | 
						||
| 
								 | 
							
									}
							 | 
						||
| 
								 | 
							
								}
							 |