]> git.localhorst.tv Git - l2e.git/commitdiff
added basic vector class + a small set of operators
authorDaniel Karbach <daniel.karbach@localhorst.tv>
Mon, 6 Aug 2012 12:26:43 +0000 (14:26 +0200)
committerDaniel Karbach <daniel.karbach@localhorst.tv>
Mon, 6 Aug 2012 12:26:43 +0000 (14:26 +0200)
Debug/sources.mk
Debug/src/geometry/subdir.mk
Release/sources.mk
Release/src/geometry/subdir.mk
src/geometry/Point.cpp [deleted file]
src/geometry/Vector.h [new file with mode: 0644]
src/geometry/operators.h [new file with mode: 0644]

index 41a8dd362c1382ebbf2404fa292ceed6c378947e..732350c3e648485ed2e1ecfb38b7193815f801ef 100644 (file)
@@ -26,7 +26,7 @@ SUBDIRS := \
 src/sdl \
 src \
 src/graphics \
-src/geometry \
 src/battle \
 src/app \
+src/geometry \
 
index 317308695d6c6f6e2bb24dfa0d7cbbf0719e1a2c..1957028fa99775901e90fc5cb1415d6b1a784e45 100644 (file)
@@ -3,22 +3,6 @@
 ################################################################################
 
 # Add inputs and outputs from these tool invocations to the build variables 
-CPP_SRCS += \
-../src/geometry/Point.cpp 
-
-OBJS += \
-./src/geometry/Point.o 
-
-CPP_DEPS += \
-./src/geometry/Point.d 
-
 
 # Each subdirectory must supply rules for building sources it contributes
-src/geometry/%.o: ../src/geometry/%.cpp
-       @echo 'Building file: $<'
-       @echo 'Invoking: GCC C++ Compiler'
-       g++ -I/usr/include/SDL -O0 -g3 -Wall -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -o "$@" "$<"
-       @echo 'Finished building: $<'
-       @echo ' '
-
 
index 41a8dd362c1382ebbf2404fa292ceed6c378947e..732350c3e648485ed2e1ecfb38b7193815f801ef 100644 (file)
@@ -26,7 +26,7 @@ SUBDIRS := \
 src/sdl \
 src \
 src/graphics \
-src/geometry \
 src/battle \
 src/app \
+src/geometry \
 
index 3ddc804bc74455541606528136d76a34100fe099..1957028fa99775901e90fc5cb1415d6b1a784e45 100644 (file)
@@ -3,22 +3,6 @@
 ################################################################################
 
 # Add inputs and outputs from these tool invocations to the build variables 
-CPP_SRCS += \
-../src/geometry/Point.cpp 
-
-OBJS += \
-./src/geometry/Point.o 
-
-CPP_DEPS += \
-./src/geometry/Point.d 
-
 
 # Each subdirectory must supply rules for building sources it contributes
-src/geometry/%.o: ../src/geometry/%.cpp
-       @echo 'Building file: $<'
-       @echo 'Invoking: GCC C++ Compiler'
-       g++ -I/usr/include/SDL -O3 -Wall -c -fmessage-length=0 -MMD -MP -MF"$(@:%.o=%.d)" -MT"$(@:%.o=%.d)" -o "$@" "$<"
-       @echo 'Finished building: $<'
-       @echo ' '
-
 
diff --git a/src/geometry/Point.cpp b/src/geometry/Point.cpp
deleted file mode 100644 (file)
index a3bb3a2..0000000
+++ /dev/null
@@ -1,12 +0,0 @@
-/*
- * Point.cpp
- *
- *  Created on: Aug 5, 2012
- *      Author: holy
- */
-
-#include "Point.h"
-
-namespace geometry {
-
-} /* namespace geometry */
diff --git a/src/geometry/Vector.h b/src/geometry/Vector.h
new file mode 100644 (file)
index 0000000..d7d0f3d
--- /dev/null
@@ -0,0 +1,35 @@
+/*
+ * Vector.h
+ *
+ *  Created on: Aug 6, 2012
+ *      Author: holy
+ */
+
+#ifndef GEOMETRY_VECTOR_H_
+#define GEOMETRY_VECTOR_H_
+
+namespace geometry {
+
+template<class Scalar>
+class Vector {
+
+public:
+       Vector() : x(0), y(0) { }
+       Vector(Scalar x, Scalar y) : x(x), y(y) { }
+       template<class T>
+       Vector(const Vector<T> &other) : x(other.X()), y(other.Y()) { };
+       template<class T>
+       Vector(T x, T y) : x(x), y(y) { }
+
+public:
+       Scalar X() const { return x; }
+       Scalar Y() const { return y; }
+
+private:
+       Scalar x, y;
+
+};
+
+}
+
+#endif /* GEOMETRY_VECTOR_H_ */
diff --git a/src/geometry/operators.h b/src/geometry/operators.h
new file mode 100644 (file)
index 0000000..7a8e7ea
--- /dev/null
@@ -0,0 +1,41 @@
+/*
+ * operators.h
+ *
+ *  Created on: Aug 6, 2012
+ *      Author: holy
+ */
+
+#ifndef GEOMETRY_OPERATORS_H_
+#define GEOMETRY_OPERATORS_H_
+
+#include "Point.h"
+#include "Vector.h"
+
+namespace geometry {
+
+template<class T>
+inline Vector<T> operator +(const Vector<T> &lhs, const Vector<T> &rhs) {
+       return Vector<T>(lhs.X() + rhs.X(), lhs.Y() + rhs.Y());
+}
+template<class T>
+inline Point<T> operator +(const Point<T> &lhs, const Vector<T> &rhs) {
+       return Point<T>(lhs.X() + rhs.X(), lhs.Y() + rhs.Y());
+}
+
+template<class T>
+inline Vector<T> operator -(const Vector<T> &lhs, const Vector<T> &rhs) {
+       return Vector<T>(lhs.X() - rhs.X(), lhs.Y() - rhs.Y());
+}
+template<class T>
+inline Point<T> operator -(const Point<T> &lhs, const Vector<T> &rhs) {
+       return Point<T>(lhs.X() - rhs.X(), lhs.Y() - rhs.Y());
+}
+
+template<class T>
+inline Vector<T> operator -(const Vector<T> &v) {
+       return Vector<T>(-v.X(), -v.Y());
+}
+
+}
+
+#endif /* GEOMETRY_OPERATORS_H_ */