]> de.git.xonotic.org Git - xonotic/netradiant.git/blobdiff - libs/entitylib.h
simplify code
[xonotic/netradiant.git] / libs / entitylib.h
index 4a34f0a53722a910538d2b8f5bd45839417988ba..667adf7267cb8ad2360d360ee224822e25891ec5 100644 (file)
@@ -43,17 +43,14 @@ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
 #include <list>
 #include <set>
 
-inline void arrow_draw(const Vector3& origin, const Vector3& direction)
+inline void arrow_draw(const Vector3& origin, const Vector3& direction_forward, const Vector3& direction_left, const Vector3& direction_up)
 {
-  Vector3 up(0, 0, 1);
-  Vector3 left(-direction[1], direction[0], 0);
+       Vector3 endpoint(vector3_added(origin, vector3_scaled(direction_forward, 32.0)));
 
-       Vector3 endpoint(vector3_added(origin, vector3_scaled(direction, 32.0)));
-
-  Vector3 tip1(vector3_added(vector3_added(endpoint, vector3_scaled(direction, -8.0)), vector3_scaled(up, -4.0)));
-       Vector3 tip2(vector3_added(tip1, vector3_scaled(up, 8.0)));
-  Vector3 tip3(vector3_added(vector3_added(endpoint, vector3_scaled(direction, -8.0)), vector3_scaled(left, -4.0)));
-       Vector3 tip4(vector3_added(tip3, vector3_scaled(left, 8.0)));
+  Vector3 tip1(vector3_added(vector3_added(endpoint, vector3_scaled(direction_forward, -8.0)), vector3_scaled(direction_up, -4.0)));
+       Vector3 tip2(vector3_added(tip1, vector3_scaled(direction_up, 8.0)));
+  Vector3 tip3(vector3_added(vector3_added(endpoint, vector3_scaled(direction_forward, -8.0)), vector3_scaled(direction_left, -4.0)));
+       Vector3 tip4(vector3_added(tip3, vector3_scaled(direction_left, 8.0)));
 
   glBegin (GL_LINES);
 
@@ -107,18 +104,19 @@ inline void aabb_testselect(const AABB& aabb, SelectionTest& test, SelectionInte
 
 inline void aabb_draw_wire(const Vector3 points[8])
 {
-  typedef std::size_t index_t;
-  index_t indices[24] = {
+  unsigned int indices[26] = {
     0, 1, 1, 2, 2, 3, 3, 0,
     4, 5, 5, 6, 6, 7, 7, 4,
     0, 4, 1, 5, 2, 6, 3, 7,
+    // 0, 6, 1, 7, 2, 4, 3, 5 // X cross
+    1, 7 // diagonal line (connect mins to maxs corner)
   };
 #if 1
   glVertexPointer(3, GL_FLOAT, 0, points);
-  glDrawElements(GL_LINES, sizeof(indices)/sizeof(index_t), GL_UNSIGNED_INT, indices);
+  glDrawElements(GL_LINES, sizeof(indices)/sizeof(indices[0]), GL_UNSIGNED_INT, indices);
 #else
   glBegin(GL_LINES);
-  for(std::size_t i = 0; i < sizeof(indices)/sizeof(index_t); ++i)
+  for(std::size_t i = 0; i < sizeof(indices)/sizeof(indices[0]); ++i)
   {
     glVertex3fv(points[indices[i]]);
   }