- Timestamp:
- Jan 17, 2007, 4:38:41 AM (18 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
Include/abgl.ab
r63 r67 4 4 #include <GL/gl.sbp> 5 5 #include <GL/glu.sbp> 6 7 Type XY_FLOAT 8 x As GLfloat 9 y As GLfloat 10 End Type 11 12 Type XY_DOUBLE 13 x As GLdouble 14 y As GLdouble 15 End Type 16 17 Class Vector2f 18 Public /* constructor */ 19 Sub Vector2f(x As GLfloat, y As GLfloat) 20 This.X=x 21 This.Y=y 22 End Sub 23 24 Public /* destructor */ 25 Sub ~Vector2f() 26 End Sub 27 28 Public /* property */ 29 Function X() As GLfloat 30 Return xy.x 31 End Function 32 Function Y() As GLfloat 33 Return xy.y 34 End Function 35 Sub X(x As GLfloat) 36 xy.x=x 37 End Sub 38 Sub Y(y As GLfloat) 39 xy.y=y 40 End Sub 41 42 Public /* operator */ 43 Sub Operator = (vec As Vector2f) 44 This.X=vec.X 45 This.Y=vec.Y 46 End Sub 47 Function Operator + (vec1 As Vector2f, vec2 As Vector2f) As Vector2f 48 Return Add(vec1,vec2) 49 End Function 50 Function Operator - (vec1 As Vector2f, vec2 As Vector2f) As Vector2f 51 Return Substract(vec1,vec2) 52 End Function 53 /* Function Operator * (vec1 As Vector2f, vec2 As Vector2f) As Vector2f 54 Return Dot(vec1,vec2) 55 End Function 56 */ 57 Function Operator * (vec As Vector2f, sca As GLfloat) As Vector2f 58 Dim ret As Vector2f(vec.X*sca,vec.Y*sca) 59 Return ret 60 End Function 61 Function Operator / (vec As Vector2f, sca As GLfloat) As Vector2f 62 Dim ret As Vector2f(vec.X/sca,vec.Y/sca) 63 Return ret 64 End Function 65 66 67 Public /* method */ 68 Function Add(vec1 As Vector2f, vec2 As Vector2f) As Vector2f 69 Dim ret As Vector2f(vec1.X+vec2.X,vec1.Y+vec2.Y) 70 Return ret 71 End Function 72 Function Distance(vec1 As Vector2f, vec2 As Vector2f) As GLfloat 73 Dim ret As Vector2f 74 ret=vec1-vec2 75 Return ret.Magnitude 76 End Function 77 Function Dot(vec1 As Vector2f, vec2 As Vector2f) As GLfloat 78 Return vec1.X*vec2.X+vec1.Y*vec2.Y 79 End Function 80 Function Magnitude() As GLfloat 81 Return Math.Sqrt(This.X^2+This.Y^2) As GLfloat 82 End Function 83 Sub Normalize() 84 Dim ret As Vector2f(This.X/This.Magnitude,This.Y/This.Magnitude) 85 This = ret 86 End Sub 87 Function NormalizedVector() As Vector2f 88 Dim ret As Vector2f(This.X/This.Magnitude,This.Y/This.Magnitude) 89 Return ret 90 End Function 91 Function Substract(vec1 As Vector2f, vec2 As Vector2f) As Vector2f 92 Dim ret As Vector2f(vec1.X-vec2.X,vec1.Y-vec2.Y) 93 Return ret 94 End Function 95 Sub Reverse() 96 Dim ret As Vector2f(-This.X,-This.Y) 97 This = ret 98 End Sub 99 Function ReversedVector() As Vector2f 100 Dim ret As Vector2f(-This.X,-This.Y) 101 Return ret 102 End Function 103 104 Protected 105 xy As XY_FLOAT 106 End Class 107 108 Class Vector2d 109 Public /* constructor */ 110 Sub Vector2d(x As GLdouble, y As GLdouble) 111 xy.x=x 112 xy.y=y 113 End Sub 114 115 Public /* destructor */ 116 Sub ~Vector2d() 117 End Sub 118 119 Public /* property */ 120 Function X() As GLdouble 121 Return xy.x 122 End Function 123 Function Y() As GLdouble 124 Return xy.y 125 End Function 126 Sub X(x As GLdouble) 127 xy.x=x 128 End Sub 129 Sub Y(y As GLdouble) 130 xy.y=y 131 End Sub 132 133 Public /* operator */ 134 Sub Operator = (vec As Vector2d) 135 This.X=vec.X 136 This.Y=vec.Y 137 End Sub 138 Function Operator + (vec1 As Vector2d, vec2 As Vector2d) As Vector2d 139 Return Add(vec1,vec2) 140 End Function 141 Function Operator - (vec1 As Vector2d, vec2 As Vector2d) As Vector2d 142 Return Substract(vec1,vec2) 143 End Function 144 /* Function Operator * (vec1 As Vector2d, vec2 As Vector2d) As Vector2d 145 Return Dot(vec1,vec2) 146 End Function 147 */ 148 Function Operator * (vec As Vector2d, sca As GLfloat) As Vector2d 149 Dim ret As Vector2d(vec.X*sca,vec.Y*sca) 150 Return ret 151 End Function 152 Function Operator / (vec As Vector2d, sca As GLfloat) As Vector2d 153 Dim ret As Vector2d(vec.X/sca,vec.Y/sca) 154 Return ret 155 End Function 156 157 158 Public /* method */ 159 Function Add(vec1 As Vector2d, vec2 As Vector2d) As Vector2d 160 Dim ret As Vector2d(vec1.X+vec2.X,vec1.Y+vec2.Y) 161 Return ret 162 End Function 163 Function Distance(vec1 As Vector2d, vec2 As Vector2d) As GLfloat 164 Dim ret As Vector2d 165 ret=vec1-vec2 166 Return ret.Magnitude 167 End Function 168 Function Dot(vec1 As Vector2d, vec2 As Vector2d) As GLfloat 169 Return vec1.X*vec2.X+vec1.Y*vec2.Y 170 End Function 171 Function Magnitude() As GLfloat 172 Return Math.Sqrt(This.X^2+This.Y^2) As GLfloat 173 End Function 174 Sub Normalize() 175 Dim ret As Vector2d(This.X/This.Magnitude,This.Y/This.Magnitude) 176 This = ret 177 End Sub 178 Function NormalizedVector() As Vector2d 179 Dim ret As Vector2d(This.X/This.Magnitude,This.Y/This.Magnitude) 180 Return ret 181 End Function 182 Function Substract(vec1 As Vector2d, vec2 As Vector2d) As Vector2d 183 Dim ret As Vector2d(vec1.X-vec2.X,vec1.Y-vec2.Y) 184 Return ret 185 End Function 186 Sub Reverse() 187 Dim ret As Vector2d(-This.X,-This.Y) 188 This = ret 189 End Sub 190 Function ReversedVector() As Vector2d 191 Dim ret As Vector2d(-This.X,-This.Y) 192 Return ret 193 End Function 194 195 Protected 196 xz As XY_DOUBLE 197 End Class 198 6 199 7 200 Type XYZ_FLOAT … … 88 281 xyz As XYZ_DOUBLE 89 282 End Class 283 90 284 91 285 Type RGB_FLOAT
Note:
See TracChangeset
for help on using the changeset viewer.