| Index: experimental/flocking_geese/nacl_app/vector2.h
|
| diff --git a/experimental/flocking_geese/nacl_app/vector2.h b/experimental/flocking_geese/nacl_app/vector2.h
|
| deleted file mode 100644
|
| index 47dd3845890be46492d66f7c5a79a68404125da6..0000000000000000000000000000000000000000
|
| --- a/experimental/flocking_geese/nacl_app/vector2.h
|
| +++ /dev/null
|
| @@ -1,89 +0,0 @@
|
| -// Copyright (c) 2011 The Native Client Authors. All rights reserved.
|
| -// Use of this source code is governed by a BSD-style license that can be
|
| -// found in the LICENSE file.
|
| -
|
| -#ifndef VECTOR2_H_
|
| -#define VECTOR2_H_
|
| -
|
| -#include <stdlib.h>
|
| -#include <cmath>
|
| -#include <limits>
|
| -
|
| -// A small class that encapsulates a 2D vector. PR\rovides a few simple
|
| -// operations.
|
| -
|
| -class Vector2 {
|
| - public:
|
| - Vector2() : x_(0.0), y_(0.0) {}
|
| - Vector2(double x, double y) : x_(x), y_(y) {}
|
| - ~Vector2() {}
|
| -
|
| - // Create a random vector of unit length. Works in-place.
|
| - static Vector2 RandomUnit() {
|
| - double angle = static_cast<double>(rand()) * M_PI * 2.0 / RAND_MAX;
|
| - Vector2 rand_vec(cos(angle), sin(angle));
|
| - return rand_vec;
|
| - }
|
| -
|
| - // Create a new vector that represents a - b.
|
| - static Vector2 Difference(const Vector2& a, const Vector2& b) {
|
| - Vector2 diff(a.x() - b.x(), a.y() - b.y());
|
| - return diff;
|
| - }
|
| -
|
| - // The magnitude of this vector.
|
| - double Magnitude() const {
|
| - return sqrt(x_ * x_ + y_ * y_);
|
| - }
|
| -
|
| - // Add |vec| to this vector. Works in-place.
|
| - void Add(const Vector2& vec) {
|
| - x_ += vec.x();
|
| - y_ += vec.y();
|
| - }
|
| -
|
| - // Normalize this vector in-place. If the vector is degenerate (size 0)
|
| - // then do nothing.
|
| - void Normalize() {
|
| - double mag = Magnitude();
|
| - if (fabs(mag) < std::numeric_limits<double>::epsilon())
|
| - return;
|
| - Scale(1.0 / mag);
|
| - }
|
| -
|
| - // Scale the vector in-place by |scale|.
|
| - void Scale(double scale) {
|
| - x_ *= scale;
|
| - y_ *= scale;
|
| - }
|
| -
|
| - // Clamp a vector to a maximum magnitude. Works on the vector in-place.
|
| - // @param max_mag The maximum magnitude of the vector.
|
| - void Clamp(double max_mag) {
|
| - double mag = Magnitude();
|
| - if (mag > max_mag) {
|
| - Scale(max_mag / mag); // Does Normalize() followed by Scale(max_mag).
|
| - }
|
| - }
|
| -
|
| - // Compute the "heading" of a vector - this is the angle in radians between
|
| - // the vector and the x-axis.
|
| - // @return {!number} The "heading" angle in radians.
|
| - double Heading() const {
|
| - double angle = atan2(y_, x_);
|
| - return angle;
|
| - }
|
| -
|
| - // Accessors and mutators for the coordinate values.
|
| - double x() const { return x_; }
|
| - void set_x(double x) { x_ = x; }
|
| -
|
| - double y() const { return y_; }
|
| - void set_y(double y) { y_ = y; }
|
| -
|
| - private:
|
| - double x_;
|
| - double y_;
|
| -};
|
| -
|
| -#endif // VECTOR2_H_
|
|
|