/usr/include/tulip/Coord.h is in libtulip-dev 3.1.2-2.3ubuntu3.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 | //-*-c++-*-
/**
Authors: David Auber, Patrick Mary, Morgan Mathiaut
from the LaBRI Visualization Team
Email : auber@tulip-software.org
Last modification : 13/03/2009
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
*/
#ifndef TULIP_COORD_H
#define TULIP_COORD_H
#ifdef HAVE_CONFIG_H
#include <config.h>
#endif
#include <limits>
#include <tulip/tulipconf.h>
#include <tulip/Vector.h>
namespace tlp {
/// Class for coordinates in 3D
class TLP_SCOPE Coord : public tlp::Vector<float,3> {
public:
// default constructor (x,y,z set to 0)
inline Coord();
// this constructor gives the same value to x,y,z
inline Coord(const float);
inline Coord(const float,const float,const float=0);
inline Coord(const tlp::Vector<float,3> &);
inline void set(const float=0,const float=0,const float=0);
inline void set(const Coord&);
inline void setX(float);
inline void setY(float);
inline void setZ(float);
float getX() const {return (*this)[0];}
float getY() const {return (*this)[1];}
float getZ() const {return (*this)[2];}
inline void get(float &, float &, float &) const;
inline Coord operator+(const tlp::Vector<float,3> &) const;
inline Coord operator+(const float &) const;
inline Coord operator-(const tlp::Vector<float,3> &) const;
inline Coord operator-(const float &) const;
inline Coord operator/(const tlp::Vector<float,3> &) const;
inline Coord operator/(const float &) const;
inline Coord operator^(const tlp::Vector<float,3> &) const;
inline bool operator!=(const Coord &) const;
inline bool operator==(const Coord &) const;
};
inline Coord operator*(const Coord &, const Vector<float,3> &);
inline Coord operator*(const Coord &, const float &) ;
}
tlp::Coord tlp::Coord::operator+(const tlp::Vector<float,3> &v) const {
return tlp::Coord(*this)+=v;
}
//======================================================
tlp::Coord tlp::Coord::operator+(const float& scalaire) const {
return tlp::Coord(*this)+=scalaire;
}
//======================================================
tlp::Coord tlp::Coord::operator-(const tlp::Vector<float,3> &v) const {
return tlp::Coord(*this)-=v;
}
//======================================================
tlp::Coord tlp::Coord::operator-(const float& scalaire) const {
return tlp::Coord(*this)-=scalaire;
}
//======================================================
tlp::Coord tlp::operator*(const tlp::Coord &v1, const tlp::Vector<float,3> &v2) {
return tlp::Coord(v1) *= v2;
}
//======================================================
tlp::Coord tlp::operator*(const tlp::Coord &v, const float& scalaire) {
return tlp::Coord(v) *= scalaire;
}
//======================================================
tlp::Coord tlp::Coord::operator/(const tlp::Vector<float,3> &v) const {
return tlp::Coord(*this)/=v;
}
//======================================================
tlp::Coord tlp::Coord::operator/(const float& scalaire) const {
return tlp::Coord(*this)/=scalaire;
}
//======================================================
tlp::Coord tlp::Coord::operator^(const tlp::Vector<float,3> &v) const {
return tlp::Coord(*this) ^= v;
}
bool tlp::Coord::operator!=(const tlp::Coord &p) const {
for (int i=0;i<3;++i)
if((p[i]-(*this)[i]>std::numeric_limits<float>::epsilon()) || (p[i]-(*this)[i]<-std::numeric_limits<float>::epsilon()))
return true;
return false;
}
bool tlp::Coord::operator==(const tlp::Coord &p) const {
for (int i=0;i<3;++i)
if((p[i]-(*this)[i]>std::numeric_limits<float>::epsilon()) || (p[i]-(*this)[i]<-std::numeric_limits<float>::epsilon()))
return false;
return true;
}
#include <string.h>
tlp::Coord::Coord() { memset(array, 0, sizeof(array)); }
tlp::Coord::Coord(const float val) {
(*this)[0]= (*this)[1]= (*this)[2]= val;
}
tlp::Coord::Coord(const float xx, const float yy, const float zz) {
(*this)[0]=xx;(*this)[1]=yy,(*this)[2]=zz;
}
tlp::Coord::Coord(const tlp::Vector<float,3> &v) : tlp::Vector<float,3>(v) {}
void tlp::Coord::set(const float xx,const float yy,const float zz){
(*this)[0]=xx;(*this)[1]=yy,(*this)[2]=zz;
}
void tlp::Coord::set(const tlp::Coord &c){
for (int i=0;i<3;++i) (*this)[i]=c[i];
}
void tlp::Coord::get(float &xx,float &yy,float &zz) const {
xx=(*this)[0];yy=(*this)[1];zz=(*this)[2];
}
void tlp::Coord::setX(const float xx) {
(*this)[0]=xx;
}
void tlp::Coord::setY(const float yy) {
(*this)[1]=yy;
}
void tlp::Coord::setZ(const float zz) {
(*this)[2]=zz;
}
#endif
|