Example #1
0
bool operator<(const Vector3D& lv, const Vector3D& rv)
{
    if(lv.get_x()==rv.get_x())
        if(lv.get_y()==rv.get_y())
            if(lv.get_z()==rv.get_z())
                return false;
            else return lv.get_z()<rv.get_z();
        else return lv.get_y()<rv.get_y();
    else return lv.get_x()<rv.get_x();
}
Example #2
0
//left : the other direction of the target plan of camera NORMALIZED and perpendicular to up
Vector3D left(const Camera &c)
{
    Vector3D nrm = c.target()-c.eye();//vector normal of target plan
    double u1 = c.up().get_x(), u2 = c.up().get_y(), u3 = c.up().get_z(),
           v1 = nrm.get_x(),    v2 = nrm.get_y(),    v3 = nrm.get_z();
    return normalize(Vector3D(u2*v3-u3*v2, u3*v1-u1*v3, u1*v2-u2*v1));
}
Example #3
0
double operator*( const Vector3D &v1, const Vector3D &v2)
{
    return(v1.get_x()*v2.get_x()+
           v1.get_y()*v2.get_y()+
           v1.get_z()*v2.get_z());
}
Example #4
0
Vector3D operator/(const Vector3D &v, const double &d)
{
    return Vector3D(v.get_x()/d, v.get_y()/d, v.get_z()/d);
}
Example #5
0
Vector3D operator*(const double &d, const Vector3D &v)
{
    return Vector3D(d*v.get_x(), d*v.get_y(), d*v.get_z());
}
Example #6
0
Vector3D operator-(const Vector3D& lv, const Vector3D& rv)
{
    return Vector3D(lv.get_x()-rv.get_x(),
                    lv.get_y()-rv.get_y(),
                    lv.get_z()-rv.get_z());
}
Example #7
0
//copy the coordinates of a vector
void Vector3D::copy(const Vector3D& v)
{
    x = v.get_x();
    y = v.get_y();
    z = v.get_z();
}
Example #8
0
//overload operator == < to overload < for sphere
bool operator==(const Vector3D& lv, const Vector3D& rv)
{
    return (lv.get_x() == rv.get_x() &&
            lv.get_y() == rv.get_y() &&
            lv.get_z() == rv.get_z());
}
Example #9
0
//norm normalize
double norm(const Vector3D &v)
{
    return sqrt(v.get_x()*v.get_x()+
                v.get_y()*v.get_y()+
                v.get_z()*v.get_z());
}