Conscience Core
CscVector.h
Go to the documentation of this file.
1 //
2 // CscPoint3d.hpp
3 // ConscienceRobotManager
4 //
5 // Created by MACBOOK PRO on 05/03/2019.
6 // Copyright © 2019 IliesZaoui. All rights reserved.
7 //
8 
9 #ifndef CscVector_h
10 #define CscVector_h
11 
12 
13 #include <vector>
14 #include <math.h>
15 #include <ostream>
16 #include <iostream>
17 
18 using std::vector, std::string, std::ostream;
19 
20 class CscVector {
21 private:
22  int x, y, z;
23  // 3D Coordinates of the Vector
24 
25 public:
26  CscVector(int x, int y, int z){
27  this->x = x;
28  this->y = y;
29  this->z = z;
30  }
31  CscVector operator+(CscVector v); // ADD 2 Vectors
32  CscVector operator-(CscVector v); // Subtraction
33  int operator^(CscVector v); // Dot Product
34  CscVector operator*(CscVector v); // Cross Product
35 
36  // calculate shortest dist. from point to line
37  static float shortDistance(CscVector line_point1, CscVector line_point2, CscVector point){
38  CscVector AB = line_point2 - line_point1;
39  CscVector AC = point - line_point1;
40  float area = CscVector(AB * AC).magnitude();
41  float CD = area / AB.magnitude();
42  return CD;
43  }
44 
45  float magnitude()
46  {
47  return sqrt(pow(x, 2) + pow(y, 2) + pow(z, 2));
48  }
49  friend ostream& operator<<(ostream& out, const CscVector& v);
50  // To output the Vector
51 };
52 
53 #endif /* CscVictor_h */
CscVector::operator<<
friend ostream & operator<<(ostream &out, const CscVector &v)
CscVector::operator*
CscVector operator*(CscVector v)
Definition: CscVector.cpp:42
CscVector
Definition: CscVector.h:20
CscVector::operator+
CscVector operator+(CscVector v)
Definition: CscVector.cpp:12
CscVector::shortDistance
static float shortDistance(CscVector line_point1, CscVector line_point2, CscVector point)
Definition: CscVector.h:37
CscVector::operator^
int operator^(CscVector v)
Definition: CscVector.cpp:32
CscVector::magnitude
float magnitude()
Definition: CscVector.h:45
CscVector::operator-
CscVector operator-(CscVector v)
Definition: CscVector.cpp:22
CscVector::CscVector
CscVector(int x, int y, int z)
Definition: CscVector.h:26