summaryrefslogtreecommitdiff
path: root/src/game-server
diff options
context:
space:
mode:
authorStefan Beller <stefanbeller@googlemail.com>2012-06-22 23:24:30 +0200
committerStefan Beller <stefanbeller@googlemail.com>2012-06-22 23:51:06 +0200
commit742e2ce03af10bdad42af6f93e10e15c7cc69eea (patch)
tree7ed36107eb10886cd4febe080bdc6bec87b70324 /src/game-server
parenta5108774672d118f89b9f24e4e846341fd5105fd (diff)
downloadmanaserv-742e2ce03af10bdad42af6f93e10e15c7cc69eea.tar.gz
manaserv-742e2ce03af10bdad42af6f93e10e15c7cc69eea.tar.bz2
manaserv-742e2ce03af10bdad42af6f93e10e15c7cc69eea.tar.xz
manaserv-742e2ce03af10bdad42af6f93e10e15c7cc69eea.zip
Collisiondetection: Removing commented code.
Reviewed-by: Ablu
Diffstat (limited to 'src/game-server')
-rw-r--r--src/game-server/collisiondetection.cpp118
1 files changed, 0 insertions, 118 deletions
diff --git a/src/game-server/collisiondetection.cpp b/src/game-server/collisiondetection.cpp
index 0e1ac288..bf8c7ce3 100644
--- a/src/game-server/collisiondetection.cpp
+++ b/src/game-server/collisiondetection.cpp
@@ -161,124 +161,6 @@ bool Collision::diskWithCircleSector(const Point &diskCenter, int diskRadius,
}
-
-/**
- * Collision of a Disk with a Circle-Sector
- *
- * For a detailled explanation of this function please see:
- * http://wiki.themanaworld.org/index.php/Collision_determination
- *
-bool
-Collision::diskWithCircleSector2(const Point &diskCenter, int diskRadius,
- const Point &sectorCenter, int sectorRadius,
- int halfTopAngle, int placeAngle)
-{
- // Converting the radii to float
- float R = (float) sectorRadius;
- float Rp = (float) diskRadius;
-
- // Transform to the primary coordinate system
- float Px = diskCenter.x - sectorCenter.x;
- float Py = diskCenter.y - sectorCenter.y;
-
- // The values of the trigonomic functions (only have to be computed once)
- float sinAlpha = utils::math::cachedSin(halfTopAngle);
- float cosAlpha = utils::math::cachedCos(halfTopAngle);
- float sinBeta = utils::math::cachedSin(placeAngle);
- float cosBeta = utils::math::cachedCos(placeAngle);
-
- **
- * This bounding circle implementation can be used up and until a
- * half-top-angle of +/- 85 degrees. The bounding circle becomes
- * infinitly large at 90 degrees. Above about 60 degrees a bounding
- * half-circle with radius R becomes more efficient.
- * (The additional check for a region 1 collision can then be scrapped.)
- *
-
- // Calculating the coordinates of the disk's center in coordinate system 4
- float Px1 = Px * cosBeta + Py * sinBeta;
- float Py1 = Py * cosBeta - Px * sinBeta;
-
- // Check for an intersection with the bounding circle
- // (>) : touching is accepted
- if ((cosAlpha * Px1 * Px1 + cosAlpha * Py1 * Py1 - Px1 * R)
- > (Rp * Rp * cosAlpha + Rp * R)) return false;
-
- // Check for a region 4 collision
- if ((Px*Px + Py*Py) <= (Rp*Rp)) return true;
-
- // Calculating the coordinates of the disk's center in coordinate system 1
- Px1 = Px * (cosAlpha * cosBeta + sinAlpha * sinBeta)
- + Py * (cosAlpha * sinBeta - sinAlpha * cosBeta);
- Py1 = Py * (cosAlpha * cosBeta + sinAlpha * sinBeta)
- - Px * (cosAlpha * sinBeta - sinAlpha * cosBeta);
-
- // Check if P is in region 5 (using coordinate system 1)
- if ((Px1 >= 0.0f) && (Px1 <= R) && (Py1 <= 0.0f))
- {
- // Return true on intersection, false otherwise
- // (>=) : touching is accepted
- return (Py1 >= -1.0f * Rp);
- }
-
- // Check if P is in region 3 (using coordinate system 1)
- if ((Px1 > R) && (Py1 <= 0.0f))
- {
- // Calculating the vector from point A to the disk center
- float distAx = Px - R * (cosAlpha * cosBeta + sinAlpha * sinBeta);
- float distAy = Py - R * (cosAlpha * sinBeta - sinAlpha * cosBeta);
-
- // Check for a region 3 collision
- return ((distAx * distAx + distAy * distAy) <= Rp * Rp);
- }
-
- // Discard, if P is in region 4 (was previously checked)
- if ((Px1 < 0.0f) && (Py1 <= 0.0f)) return false;
-
- float tan2Alpha = utils::math::cachedTan(2 * halfTopAngle);
-
- // Check if P is in region 1 (using coordinate system 1)
- if ((Px1 >= 0.0f) && (Py1 >= 0.0f) && (Py1 <= Px1 * tan2Alpha))
- {
- // Return true on intersection, false otherwise
- // (<=) : touching is accepted
- return ((Px * Px + Py * Py) <= (R * R + Rp * Rp + 2.0f * R * Rp));
- }
-
- // Calculating the coordinates of the disk's center in coordinate system 3
- Px1 = Px * (cosAlpha * cosBeta - sinAlpha * sinBeta)
- + Py * (sinAlpha * cosBeta + cosAlpha * sinBeta);
- Py1 = Py * (cosAlpha * cosBeta - sinAlpha * sinBeta)
- - Px * (sinAlpha * cosBeta + cosAlpha * sinBeta);
-
- // Discard, if P is in region 4 (was previously checked)
- if ((Px1 < 0.0f) && (Py1 >= 0.0f)) return false;
-
- // Check if P is in region 6 (using coordinate system 3)
- if ((Px1 >= 0.0f) && (Px1 <= R) && (Py1 >= 0.0f))
- {
- // Return true on intersection, false otherwise
- // (<=) : touching is accepted
- return (Py1 <= Rp);
- }
-
- // Check if P is in region 2 (using coordinate system 3)
- if ((Px1 > R) && (Py1 <= 0.0f))
- {
- // Calculating the vector from point B to the disk center
- float distBx = Px - R * (cosAlpha * cosBeta - sinAlpha * sinBeta);
- float distBy = Py - R * (cosAlpha * sinBeta + sinAlpha * cosBeta);
-
- // Check for a region 2 collision
- return ((distBx * distBx + distBy * distBy) <= (Rp * Rp));
- }
-
- // The intersection with the bounding circle is in region 4,
- // but the disk and circle sector don't intersect.
- return false;
-}
-*/
-
bool Collision::circleWithCircle(const Point &center1, int radius1,
const Point &center2, int radius2)
{