#include <Vector2D.h>
Public Member Functions | |
| Vector2D () | |
| Vector2D (double x, double y) | |
| void | normalize () |
| double | distanceSqr (const Vector2D v) const |
| double | xyMaxDistance (const Vector2D v) const |
| double | cosAngle (const Vector2D &v) const |
| int | getQuadrant (const Vector2D &v) const |
| Determine the Quarant a point is contained in. | |
| Vector2D & | operator= (const Vector2D &v) |
| Vector2D & | operator+= (const Vector2D &v) |
| Vector2D & | operator-= (const Vector2D &v) |
| Vector2D & | operator*= (const double s) |
| Vector2D & | operator/= (const double s) |
| Vector2D | operator+ (const Vector2D &v) const |
| Vector2D | operator- (const Vector2D &v) const |
| Vector2D | operator* (const double s) const |
| Vector2D | operator/ (const double s) const |
| bool | operator== (const Vector2D &v) const |
| bool | operator!= (const Vector2D &v) const |
| void | netPack (cCommBuffer *b) |
| void | netUnpack (cCommBuffer *b) |
Public Attributes | |
| double | x |
| double | y |
Friends | |
| bool | operator< (const Vector2D &a, const Vector2D &b) |
| std::ostream & | operator<< (std::ostream &Stream, const Vector2D &v) |
Definition at line 31 of file Vector2D.h.
| Vector2D::Vector2D | ( | ) |
| Vector2D::Vector2D | ( | double | x, | |
| double | y | |||
| ) |
| double Vector2D::cosAngle | ( | const Vector2D & | v | ) | const |
| double Vector2D::distanceSqr | ( | const Vector2D | v | ) | const |
Definition at line 49 of file Vector2D.cc.
Referenced by Quon::classifySites(), QuonAOI::collide(), MovementGenerator::flock(), Vast::handleJoinRequest(), Quon::handleJoinRequest(), ConnectivityProbeApp::handleMessage(), ConnectivityProbe::handleMessage(), SimpleGameClient::handleTimerEvent(), traverseRoaming::move(), randomRoaming::move(), hotspotRoaming::move(), and groupRoaming::move().
00050 { 00051 double dx, dy; 00052 dx = x - v.x; 00053 dy = y - v.y; 00054 return dx * dx + dy * dy; 00055 }
| int Vector2D::getQuadrant | ( | const Vector2D & | v | ) | const |
Determine the Quarant a point is contained in.
Return the quadrant of this point that containes point v. Upper right quadrant is 0, lower right is 1, lower left is 2 and upper left is 3
| v | the target point |
Definition at line 78 of file Vector2D.cc.
Referenced by Quon::classifySites().
00079 { 00080 int quad = 0; 00081 // v.y <= this.y -> quadrant 1 or 2 00082 if( v.y <= y ) quad = 1; 00083 // v.x <= this.x -> quadrant 2 or 3 00084 if( v.x <= x ) quad ^= 3; 00085 return quad; 00086 }
| void Vector2D::netPack | ( | cCommBuffer * | b | ) |
Definition at line 184 of file Vector2D.cc.
Referenced by doPacking().
00185 { 00186 //cMessage::netPack(b); 00187 doPacking(b, this->x); 00188 doPacking(b, this->y); 00189 }
| void Vector2D::netUnpack | ( | cCommBuffer * | b | ) |
Definition at line 191 of file Vector2D.cc.
Referenced by doUnpacking().
00192 { 00193 //cMessage::netUnpack(b); 00194 doUnpacking(b, this->x); 00195 doUnpacking(b, this->y); 00196 }
| void Vector2D::normalize | ( | ) |
Definition at line 39 of file Vector2D.cc.
Referenced by MovementGenerator::flock(), MovementGenerator::MovementGenerator(), traverseRoaming::traverseRoaming(), and SimpleGameClient::updateNeighbors().
00040 { 00041 double temp; 00042 temp = sqrt(x * x + y * y); 00043 if(temp != 0.0) { 00044 x /= temp; 00045 y /= temp; 00046 } 00047 }
| bool Vector2D::operator!= | ( | const Vector2D & | v | ) | const |
| Vector2D Vector2D::operator* | ( | const double | s | ) | const |
| Vector2D & Vector2D::operator*= | ( | const double | s | ) |
| Vector2D Vector2D::operator/ | ( | const double | s | ) | const |
| Vector2D & Vector2D::operator/= | ( | const double | s | ) |
| bool Vector2D::operator== | ( | const Vector2D & | v | ) | const |
| double Vector2D::xyMaxDistance | ( | const Vector2D | v | ) | const |
Definition at line 57 of file Vector2D.cc.
Referenced by Quon::classifySites(), and QuonAOI::collide().
| std::ostream& operator<< | ( | std::ostream & | Stream, | |
| const Vector2D & | v | |||
| ) | [friend] |
| double Vector2D::x |
Definition at line 37 of file Vector2D.h.
Referenced by Geometry::bisect(), BoundingBox2D::BoundingBox2D(), Vast::buildVoronoi(), BoundingBox2D::collide(), cosAngle(), Geometry::dist(), distanceSqr(), EdgeList::ELleftbnd(), getQuadrant(), greatGathering::greatGathering(), groupRoaming::groupRoaming(), PubSubLobby::handleJoin(), SimpleGameClient::handleLowerMessage(), ConnectivityProbeQuon::handleMessage(), ConnectivityProbe::handleMessage(), SimMud::handleMove(), PubSubMMOG::handleMove(), SimpleGameClient::handleRealworldPacket(), PubSubLobby::handleRespCall(), PubSubMMOG::handleTakeOver(), PubSubLobby::handleTakeOverResponse(), PubSubLobby::handleTakeOverTimeout(), hotspotRoaming::hotspotRoaming(), Geometry::initialize(), Geometry::intersect(), Geometry::intersectCircleLine(), Geometry::intersectCircleSite(), BoundingBox2D::left(), randomRoaming::move(), hotspotRoaming::move(), groupRoaming::move(), MovementGenerator::MovementGenerator(), netPack(), netUnpack(), normalize(), operator!=(), operator*(), operator*=(), operator+(), operator+=(), operator-(), operator-=(), operator/(), operator/=(), operator<(), operator<<(), operator=(), operator==(), HeapPQ::PQ_min(), HeapPQ::PQinsert(), Geometry::processEdge(), randomRoaming::randomRoaming(), BoundingBox2D::right(), EdgeList::right_of(), MovementGenerator::testBounds(), traverseRoaming::traverseRoaming(), SimpleGameClient::updateNeighbors(), Vector2D(), and xyMaxDistance().
| double Vector2D::y |
Definition at line 37 of file Vector2D.h.
Referenced by Geometry::bisect(), BoundingBox2D::bottom(), BoundingBox2D::BoundingBox2D(), Vast::buildVoronoi(), BoundingBox2D::collide(), cosAngle(), Geometry::dist(), distanceSqr(), getQuadrant(), greatGathering::greatGathering(), groupRoaming::groupRoaming(), PubSubLobby::handleJoin(), SimpleGameClient::handleLowerMessage(), ConnectivityProbeQuon::handleMessage(), ConnectivityProbe::handleMessage(), SimMud::handleMove(), PubSubMMOG::handleMove(), SimpleGameClient::handleRealworldPacket(), PubSubLobby::handleRespCall(), PubSubMMOG::handleTakeOver(), PubSubLobby::handleTakeOverResponse(), PubSubLobby::handleTakeOverTimeout(), hotspotRoaming::hotspotRoaming(), Geometry::initialize(), Geometry::intersect(), Geometry::intersectCircleLine(), Geometry::intersectCircleSite(), randomRoaming::move(), hotspotRoaming::move(), groupRoaming::move(), MovementGenerator::MovementGenerator(), netPack(), netUnpack(), normalize(), operator!=(), operator*(), operator*=(), operator+(), operator+=(), operator-(), operator-=(), operator/(), operator/=(), operator<(), operator<<(), operator=(), operator==(), HeapPQ::PQ_min(), HeapPQ::PQinsert(), Geometry::processEdge(), randomRoaming::randomRoaming(), EdgeList::right_of(), MovementGenerator::testBounds(), BoundingBox2D::top(), traverseRoaming::traverseRoaming(), SimpleGameClient::updateNeighbors(), Vector2D(), and xyMaxDistance().
1.5.8