B3IVector is not used anywhere
Change-Id: Ic439b33c974500f1b351b41a0e391ffec71007b3 Reviewed-on: https://gerrit.libreoffice.org/15808 Reviewed-by: Caolán McNamara <caolanm@redhat.com> Tested-by: Caolán McNamara <caolanm@redhat.com>
This commit is contained in:
committed by
Caolán McNamara
parent
135ced89b2
commit
b37b5e115f
@@ -85,7 +85,6 @@ $(eval $(call gb_Library_add_exception_objects,basegfx,\
|
|||||||
basegfx/source/vector/b2dvector \
|
basegfx/source/vector/b2dvector \
|
||||||
basegfx/source/vector/b2ivector \
|
basegfx/source/vector/b2ivector \
|
||||||
basegfx/source/vector/b3dvector \
|
basegfx/source/vector/b3dvector \
|
||||||
basegfx/source/vector/b3ivector \
|
|
||||||
))
|
))
|
||||||
|
|
||||||
|
|
||||||
|
@@ -1,41 +0,0 @@
|
|||||||
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
|
|
||||||
/*
|
|
||||||
* This file is part of the LibreOffice project.
|
|
||||||
*
|
|
||||||
* This Source Code Form is subject to the terms of the Mozilla Public
|
|
||||||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
||||||
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
|
||||||
*
|
|
||||||
* This file incorporates work covered by the following license notice:
|
|
||||||
*
|
|
||||||
* Licensed to the Apache Software Foundation (ASF) under one or more
|
|
||||||
* contributor license agreements. See the NOTICE file distributed
|
|
||||||
* with this work for additional information regarding copyright
|
|
||||||
* ownership. The ASF licenses this file to you under the Apache
|
|
||||||
* License, Version 2.0 (the "License"); you may not use this file
|
|
||||||
* except in compliance with the License. You may obtain a copy of
|
|
||||||
* the License at http://www.apache.org/licenses/LICENSE-2.0 .
|
|
||||||
*/
|
|
||||||
|
|
||||||
#include <basegfx/vector/b3ivector.hxx>
|
|
||||||
#include <basegfx/matrix/b3dhommatrix.hxx>
|
|
||||||
|
|
||||||
namespace basegfx
|
|
||||||
{
|
|
||||||
B3IVector& B3IVector::operator*=( const B3DHomMatrix& rMat )
|
|
||||||
{
|
|
||||||
mnX = fround( rMat.get(0,0)*mnX + rMat.get(0,1)*mnY + rMat.get(0,2)*mnZ );
|
|
||||||
mnY = fround( rMat.get(1,0)*mnX + rMat.get(1,1)*mnY + rMat.get(1,2)*mnZ );
|
|
||||||
mnZ = fround( rMat.get(2,0)*mnX + rMat.get(2,1)*mnY + rMat.get(2,2)*mnZ );
|
|
||||||
|
|
||||||
return *this;
|
|
||||||
}
|
|
||||||
|
|
||||||
B3IVector operator*( const B3DHomMatrix& rMat, const B3IVector& rVec )
|
|
||||||
{
|
|
||||||
B3IVector aRes( rVec );
|
|
||||||
return aRes*=rMat;
|
|
||||||
}
|
|
||||||
} // end of namespace basegfx
|
|
||||||
|
|
||||||
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
|
|
@@ -1,248 +0,0 @@
|
|||||||
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
|
|
||||||
/*
|
|
||||||
* This file is part of the LibreOffice project.
|
|
||||||
*
|
|
||||||
* This Source Code Form is subject to the terms of the Mozilla Public
|
|
||||||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
||||||
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
|
||||||
*
|
|
||||||
* This file incorporates work covered by the following license notice:
|
|
||||||
*
|
|
||||||
* Licensed to the Apache Software Foundation (ASF) under one or more
|
|
||||||
* contributor license agreements. See the NOTICE file distributed
|
|
||||||
* with this work for additional information regarding copyright
|
|
||||||
* ownership. The ASF licenses this file to you under the Apache
|
|
||||||
* License, Version 2.0 (the "License"); you may not use this file
|
|
||||||
* except in compliance with the License. You may obtain a copy of
|
|
||||||
* the License at http://www.apache.org/licenses/LICENSE-2.0 .
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef INCLUDED_BASEGFX_VECTOR_B3IVECTOR_HXX
|
|
||||||
#define INCLUDED_BASEGFX_VECTOR_B3IVECTOR_HXX
|
|
||||||
|
|
||||||
#include <basegfx/tuple/b3ituple.hxx>
|
|
||||||
#include <basegfx/basegfxdllapi.h>
|
|
||||||
|
|
||||||
namespace basegfx
|
|
||||||
{
|
|
||||||
class B3DHomMatrix;
|
|
||||||
|
|
||||||
/** Base Point class with three sal_Int32 values
|
|
||||||
|
|
||||||
This class derives all operators and common handling for
|
|
||||||
a 3D data class from B3ITuple. All necessary extensions
|
|
||||||
which are special for 3D Vectors are added here.
|
|
||||||
|
|
||||||
@see B3ITuple
|
|
||||||
*/
|
|
||||||
class BASEGFX_DLLPUBLIC B3IVector : public ::basegfx::B3ITuple
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
/** Create a 3D Vector
|
|
||||||
|
|
||||||
The vector is initialized to (0, 0, 0)
|
|
||||||
*/
|
|
||||||
B3IVector()
|
|
||||||
: B3ITuple()
|
|
||||||
{}
|
|
||||||
|
|
||||||
/** Create a 3D Vector
|
|
||||||
|
|
||||||
@param nX
|
|
||||||
This parameter is used to initialize the X-coordinate
|
|
||||||
of the 3D Vector.
|
|
||||||
|
|
||||||
@param nY
|
|
||||||
This parameter is used to initialize the Y-coordinate
|
|
||||||
of the 3D Vector.
|
|
||||||
|
|
||||||
@param nZ
|
|
||||||
This parameter is used to initialize the Z-coordinate
|
|
||||||
of the 3D Vector.
|
|
||||||
*/
|
|
||||||
B3IVector(sal_Int32 nX, sal_Int32 nY, sal_Int32 nZ)
|
|
||||||
: B3ITuple(nX, nY, nZ)
|
|
||||||
{}
|
|
||||||
|
|
||||||
/** Create a copy of a 3D Vector
|
|
||||||
|
|
||||||
@param rVec
|
|
||||||
The 3D Vector which will be copied.
|
|
||||||
*/
|
|
||||||
B3IVector(const B3IVector& rVec)
|
|
||||||
: B3ITuple(rVec)
|
|
||||||
{}
|
|
||||||
|
|
||||||
/** constructor with tuple to allow copy-constructing
|
|
||||||
from B3ITuple-based classes
|
|
||||||
*/
|
|
||||||
B3IVector(const ::basegfx::B3ITuple& rTuple)
|
|
||||||
: B3ITuple(rTuple)
|
|
||||||
{}
|
|
||||||
|
|
||||||
~B3IVector()
|
|
||||||
{}
|
|
||||||
|
|
||||||
/** *=operator to allow usage from B3IVector, too
|
|
||||||
*/
|
|
||||||
B3IVector& operator*=( const B3IVector& rPnt )
|
|
||||||
{
|
|
||||||
mnX *= rPnt.mnX;
|
|
||||||
mnY *= rPnt.mnY;
|
|
||||||
mnZ *= rPnt.mnZ;
|
|
||||||
return *this;
|
|
||||||
}
|
|
||||||
|
|
||||||
/** *=operator to allow usage from B3IVector, too
|
|
||||||
*/
|
|
||||||
B3IVector& operator*=(sal_Int32 t)
|
|
||||||
{
|
|
||||||
mnX *= t;
|
|
||||||
mnY *= t;
|
|
||||||
mnZ *= t;
|
|
||||||
return *this;
|
|
||||||
}
|
|
||||||
|
|
||||||
/** assignment operator to allow assigning the results
|
|
||||||
of B3ITuple calculations
|
|
||||||
*/
|
|
||||||
B3IVector& operator=( const ::basegfx::B3ITuple& rVec )
|
|
||||||
{
|
|
||||||
mnX = rVec.getX();
|
|
||||||
mnY = rVec.getY();
|
|
||||||
mnZ = rVec.getZ();
|
|
||||||
return *this;
|
|
||||||
}
|
|
||||||
|
|
||||||
/** Calculate the length of this 3D Vector
|
|
||||||
|
|
||||||
@return The Length of the 3D Vector
|
|
||||||
*/
|
|
||||||
double getLength() const
|
|
||||||
{
|
|
||||||
double fLen(scalar(*this));
|
|
||||||
if((0 == fLen) || (1.0 == fLen))
|
|
||||||
return fLen;
|
|
||||||
return sqrt(fLen);
|
|
||||||
}
|
|
||||||
|
|
||||||
/** Calculate the length in the XY-Plane for this 3D Vector
|
|
||||||
|
|
||||||
@return The XY-Plane Length of the 3D Vector
|
|
||||||
*/
|
|
||||||
double getXYLength() const
|
|
||||||
{
|
|
||||||
double fLen((mnX * mnX) + (mnY * mnY));
|
|
||||||
if((0 == fLen) || (1.0 == fLen))
|
|
||||||
return fLen;
|
|
||||||
return sqrt(fLen);
|
|
||||||
}
|
|
||||||
|
|
||||||
/** Calculate the length in the XZ-Plane for this 3D Vector
|
|
||||||
|
|
||||||
@return The XZ-Plane Length of the 3D Vector
|
|
||||||
*/
|
|
||||||
double getXZLength() const
|
|
||||||
{
|
|
||||||
double fLen((mnX * mnZ) + (mnY * mnZ));
|
|
||||||
if((0 == fLen) || (1.0 == fLen))
|
|
||||||
return fLen;
|
|
||||||
return sqrt(fLen);
|
|
||||||
}
|
|
||||||
|
|
||||||
/** Calculate the length in the YZ-Plane for this 3D Vector
|
|
||||||
|
|
||||||
@return The YZ-Plane Length of the 3D Vector
|
|
||||||
*/
|
|
||||||
double getYZLength() const
|
|
||||||
{
|
|
||||||
double fLen((mnY * mnY) + (mnZ * mnZ));
|
|
||||||
if((0 == fLen) || (1.0 == fLen))
|
|
||||||
return fLen;
|
|
||||||
return sqrt(fLen);
|
|
||||||
}
|
|
||||||
|
|
||||||
/** Set the length of this 3D Vector
|
|
||||||
|
|
||||||
@param fLen
|
|
||||||
The to be achieved length of the 3D Vector
|
|
||||||
*/
|
|
||||||
B3IVector& setLength(double fLen)
|
|
||||||
{
|
|
||||||
double fLenNow(scalar(*this));
|
|
||||||
|
|
||||||
if(!::basegfx::fTools::equalZero(fLenNow))
|
|
||||||
{
|
|
||||||
const double fOne(1.0);
|
|
||||||
|
|
||||||
if(!::basegfx::fTools::equal(fOne, fLenNow))
|
|
||||||
{
|
|
||||||
fLen /= sqrt(fLenNow);
|
|
||||||
}
|
|
||||||
|
|
||||||
mnX = fround(mnX*fLen);
|
|
||||||
mnY = fround(mnY*fLen);
|
|
||||||
mnZ = fround(mnZ*fLen);
|
|
||||||
}
|
|
||||||
|
|
||||||
return *this;
|
|
||||||
}
|
|
||||||
|
|
||||||
/** Calculate the Scalar product
|
|
||||||
|
|
||||||
This method calculates the Scalar product between this
|
|
||||||
and the given 3D Vector.
|
|
||||||
|
|
||||||
@param rVec
|
|
||||||
A second 3D Vector.
|
|
||||||
|
|
||||||
@return
|
|
||||||
The Scalar Product of two 3D Vectors
|
|
||||||
*/
|
|
||||||
double scalar(const B3IVector& rVec) const
|
|
||||||
{
|
|
||||||
return ((mnX * rVec.mnX) + (mnY * rVec.mnY) + (mnZ * rVec.mnZ));
|
|
||||||
}
|
|
||||||
|
|
||||||
/** Transform vector by given transformation matrix.
|
|
||||||
|
|
||||||
Since this is a vector, translational components of the
|
|
||||||
matrix are disregarded.
|
|
||||||
*/
|
|
||||||
B3IVector& operator*=( const B3DHomMatrix& rMat );
|
|
||||||
};
|
|
||||||
|
|
||||||
// external operators
|
|
||||||
|
|
||||||
|
|
||||||
/** Transform vector by given transformation matrix.
|
|
||||||
|
|
||||||
Since this is a vector, translational components of the
|
|
||||||
matrix are disregarded.
|
|
||||||
*/
|
|
||||||
BASEGFX_DLLPUBLIC B3IVector operator*( const B3DHomMatrix& rMat, const B3IVector& rVec );
|
|
||||||
|
|
||||||
/** Calculate the Cross Product of two 3D Vectors
|
|
||||||
|
|
||||||
@param rVecA
|
|
||||||
A first 3D Vector.
|
|
||||||
|
|
||||||
@param rVecB
|
|
||||||
A second 3D Vector.
|
|
||||||
|
|
||||||
@return
|
|
||||||
The Cross Product of both 3D Vectors
|
|
||||||
*/
|
|
||||||
inline B3IVector cross(const B3IVector& rVecA, const B3IVector& rVecB)
|
|
||||||
{
|
|
||||||
B3IVector aVec(
|
|
||||||
rVecA.getY() * rVecB.getZ() - rVecA.getZ() * rVecB.getY(),
|
|
||||||
rVecA.getZ() * rVecB.getX() - rVecA.getX() * rVecB.getZ(),
|
|
||||||
rVecA.getX() * rVecB.getY() - rVecA.getY() * rVecB.getX());
|
|
||||||
return aVec;
|
|
||||||
}
|
|
||||||
} // end of namespace basegfx
|
|
||||||
|
|
||||||
#endif // INCLUDED_BASEGFX_VECTOR_B3IVECTOR_HXX
|
|
||||||
|
|
||||||
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
|
|
Reference in New Issue
Block a user