1 module prova.graphics.shapes.linemesh; 2 3 import prova.graphics, 4 prova.math; 5 6 /// 7 class LineMesh : Mesh 8 { 9 private Vector3 _start; 10 private Vector3 _end; 11 12 /// 13 this() 14 { 15 this(Vector3(), Vector3()); 16 } 17 18 /// 19 this(Vector3 start, Vector3 end) 20 { 21 uint[] indexes = [0, 1]; 22 23 setIBO(indexes); 24 set(start, end); 25 } 26 27 /// 28 @property Vector3 start() 29 { 30 return _start; 31 } 32 33 /// 34 @property Vector3 end() 35 { 36 return _end; 37 } 38 39 /// 40 void set(Vector3 start, Vector3 end) 41 { 42 float[] vertices = [ 43 start.x, start.y, start.z, 44 end.x, end.y, end.z 45 ]; 46 47 setVBO(vertices, 3); 48 49 _start = start; 50 _end = end; 51 } 52 53 /// 54 void setStart(float x, float y, float z) 55 { 56 Vector3 start = Vector3(x, y, z); 57 set(start, _end); 58 } 59 60 /// 61 void setStart(Vector3 start) 62 { 63 set(start, _end); 64 } 65 66 /// 67 void setEnd(float x, float y, float z) 68 { 69 Vector3 end = Vector3(x, y, z); 70 set(_start, end); 71 } 72 73 /// 74 void setEnd(Vector3 end) 75 { 76 set(_start, end); 77 } 78 }