Changeset 1020 for cpp/frams/util/3d.h


Ignore:
Timestamp:
07/24/20 21:44:10 (4 years ago)
Author:
Maciej Komosinski
Message:

Added double Pt3D::minComponent() and maxComponent()

File:
1 edited

Legend:

Unmodified
Added
Removed
  • cpp/frams/util/3d.h

    r305 r1020  
    11// This file is a part of Framsticks SDK.  http://www.framsticks.com/
    2 // Copyright (C) 1999-2015  Maciej Komosinski and Szymon Ulatowski.
     2// Copyright (C) 1999-2020  Maciej Komosinski and Szymon Ulatowski.
    33// See LICENSE.txt for details.
    44
     
    2929        Pt3D() {} ///< coords will be not initialized!
    3030        Pt3D(const Pt3D &p) :x(p.x), y(p.y), z(p.z) {} ///< copy from another point
    31         bool    operator==(const Pt3D& p)       { return (x == p.x) && (y == p.y) && (z == p.z); }
    32         void    operator+=(const Pt3D& p)       { x += p.x; y += p.y; z += p.z; }
    33         void    operator-=(const Pt3D& p)       { x -= p.x; y -= p.y; z -= p.z; }
    34         void    operator*=(double d)    { x *= d; y *= d; z *= d; }
    35         Pt3D    operator*(const Pt3D &p) const { return Pt3D(y*p.z - z*p.y, z*p.x - x*p.z, x*p.y - y*p.x); }
    36         void    operator/=(double d)    { x /= d; y /= d; z /= d; }
     31        bool    operator==(const Pt3D& p) { return (x == p.x) && (y == p.y) && (z == p.z); }
     32        void    operator+=(const Pt3D& p) { x += p.x; y += p.y; z += p.z; }
     33        void    operator-=(const Pt3D& p) { x -= p.x; y -= p.y; z -= p.z; }
     34        void    operator*=(double d) { x *= d; y *= d; z *= d; }
     35        Pt3D    operator*(const Pt3D &p) const { return Pt3D(y * p.z - z * p.y, z * p.x - x * p.z, x * p.y - y * p.x); }
     36        void    operator/=(double d) { x /= d; y /= d; z /= d; }
    3737        //Pt3D  operator+(const Pt3D& p) const {return Pt3D(x+p.x,y+p.y,z+p.z);}
    3838        //Pt3D  operator-(const Pt3D& p) const {return Pt3D(x-p.x,y-p.y,z-p.z);}
    3939        Pt3D    operator-() const { return Pt3D(-x, -y, -z); }
    40         Pt3D    operator*(double d) const { return Pt3D(x*d, y*d, z*d); }
     40        Pt3D    operator*(double d) const { return Pt3D(x * d, y * d, z * d); }
    4141        Pt3D    operator/(double d) const { return Pt3D(x / d, y / d, z / d); }
    42         bool    allCoordsLowerThan(const Pt3D& p) const { return (x < p.x) && (y < p.y) && (z<p.z); }
    43         bool    allCoordsHigherThan(const Pt3D& p) const { return (x>p.x) && (y > p.y) && (z > p.z); }
     42        bool    allCoordsLowerThan(const Pt3D& p) const { return (x < p.x) && (y < p.y) && (z < p.z); }
     43        bool    allCoordsHigherThan(const Pt3D& p) const { return (x > p.x) && (y > p.y) && (z > p.z); }
    4444        void getMin(const Pt3D& p);
    4545        void getMax(const Pt3D& p);
     46        double minComponent() const;
     47        double maxComponent() const;
    4648        /** vector length = \f$\sqrt{x^2+y^2+z^2}\f$  */
    4749        double operator()() const;
    4850        /** vector length = \f$\sqrt{x^2+y^2+z^2}\f$  */
    4951        double length() const { return operator()(); }
    50         double length2() const { return x*x + y*y + z*z; }
     52        double length2() const { return x * x + y * y + z * z; }
    5153        double distanceTo(const Pt3D& p) const;
    5254        double manhattanDistanceTo(const Pt3D& p) const;
     
    5658        void getAngles(const Pt3D& X, const Pt3D& dir);
    5759        void vectorProduct(const Pt3D& a, const Pt3D& b);
    58         Pt3D vectorProduct(const Pt3D& p) const { return (*this)*p; }
    59         Pt3D entrywiseProduct(const Pt3D &p) const { return Pt3D(x*p.x, y*p.y, z*p.z); } ///< also known as Hadamard product or Schur product
    60         double dotProduct(const Pt3D& p) const { return x*p.x + y*p.y + z*p.z; }
     60        Pt3D vectorProduct(const Pt3D& p) const { return (*this) * p; }
     61        Pt3D entrywiseProduct(const Pt3D &p) const { return Pt3D(x * p.x, y * p.y, z * p.z); } ///< also known as Hadamard product or Schur product
     62        double dotProduct(const Pt3D& p) const { return x * p.x + y * p.y + z * p.z; }
    6163        bool normalize();
    6264};
Note: See TracChangeset for help on using the changeset viewer.