summaryrefslogtreecommitdiff
path: root/binfilter/bf_goodies/source/base3d/goodies_vector3d.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'binfilter/bf_goodies/source/base3d/goodies_vector3d.cxx')
-rw-r--r--binfilter/bf_goodies/source/base3d/goodies_vector3d.cxx490
1 files changed, 0 insertions, 490 deletions
diff --git a/binfilter/bf_goodies/source/base3d/goodies_vector3d.cxx b/binfilter/bf_goodies/source/base3d/goodies_vector3d.cxx
deleted file mode 100644
index 57270c56879e..000000000000
--- a/binfilter/bf_goodies/source/base3d/goodies_vector3d.cxx
+++ /dev/null
@@ -1,490 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*************************************************************************
- *
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * Copyright 2000, 2010 Oracle and/or its affiliates.
- *
- * OpenOffice.org - a multi-platform office productivity suite
- *
- * This file is part of OpenOffice.org.
- *
- * OpenOffice.org is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License version 3
- * only, as published by the Free Software Foundation.
- *
- * OpenOffice.org is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU Lesser General Public License version 3 for more details
- * (a copy is included in the LICENSE file that accompanied this code).
- *
- * You should have received a copy of the GNU Lesser General Public License
- * version 3 along with OpenOffice.org. If not, see
- * <http://www.openoffice.org/license.html>
- * for a copy of the LGPLv3 License.
- *
- ************************************************************************/
-
-#include "vector3d.hxx"
-
-#include <tools/stream.hxx>
-
-#include <tools/gen.hxx>
-
-#ifndef _INC_FLOAT
-#include <float.h>
-#endif
-
-namespace binfilter {
-/*************************************************************************
-|*
-|* Konstruktor aus Point
-|*
-\************************************************************************/
-
-Vector3D::Vector3D(const Point& rPnt, double fZ)
-{
- V[0] = rPnt.X();
- V[1] = rPnt.Y();
- V[2] = fZ;
-}
-
-/*************************************************************************
-|*
-|* Vektorlaenge berechnen
-|*
-\************************************************************************/
-
-double Vector3D::GetLength(void) const
-{
- double fSum = V[0] * V[0] + V[1] * V[1] + V[2] * V[2];
- if(fSum == 0.0 || fSum == 1.0)
- return fSum;
- return sqrt(fSum);
-}
-
-/*************************************************************************
-|*
-|* Laenge der Projektion des Vektors auf die XZ-Ebene berechnen
-|*
-\************************************************************************/
-
-double Vector3D::GetXZLength(void) const
-{
- double fSum = V[0] * V[0] + V[2] * V[2];
- if(fSum == 0.0 || fSum == 1.0)
- return fSum;
- return sqrt(fSum);
-}
-
-/*************************************************************************
-|*
-|* Laenge der Projektion des Vektors auf die YZ-Ebene berechnen
-|*
-\************************************************************************/
-
-double Vector3D::GetYZLength(void) const
-{
- double fSum = V[1] * V[1] + V[2] * V[2];
- if(fSum == 0.0 || fSum == 1.0)
- return fSum;
- return sqrt(fSum);
-}
-
-/*************************************************************************
-|*
-|* Vektor Normalisieren
-|*
-\************************************************************************/
-
-void Vector3D::Normalize(void)
-{
- double fLen = V[0] * V[0] + V[1] * V[1] + V[2] * V[2];
-
- // nur wirklich rechnen (und Wurzel ziehen), wenn != 0.0
- // und der Faktor nicht schon 1.0, denn dann ist der Vektor
- // bereits normalisiert
- if(fLen == 0.0 || fLen == 1.0)
- return;
-
- fLen = sqrt(fLen);
-
- if(fLen == 0.0)
- return;
-
- V[0] /= fLen;
- V[1] /= fLen;
- V[2] /= fLen;
-}
-
-/*************************************************************************
-|*
-|* Minimum aus diesem und dem uebergebenen Vektor bilden
-|*
-\************************************************************************/
-
-void Vector3D::Min(const Vector3D& rVec)
-{
- if ( V[0] > rVec.V[0] ) V[0] = rVec.V[0];
- if ( V[1] > rVec.V[1] ) V[1] = rVec.V[1];
- if ( V[2] > rVec.V[2] ) V[2] = rVec.V[2];
-}
-
-/*************************************************************************
-|*
-|* Maximum aus diesem und dem uebergebenen Vektor bilden
-|*
-\************************************************************************/
-
-void Vector3D::Max(const Vector3D& rVec)
-{
- if ( V[0] < rVec.V[0] ) V[0] = rVec.V[0];
- if ( V[1] < rVec.V[1] ) V[1] = rVec.V[1];
- if ( V[2] < rVec.V[2] ) V[2] = rVec.V[2];
-}
-
-/*************************************************************************
-|*
-|* Absolutwert
-|*
-\************************************************************************/
-
-void Vector3D::Abs()
-{
- if ( V[0] < 0 ) V[0] = - V[0];
- if ( V[1] < 0 ) V[1] = - V[1];
- if ( V[2] < 0 ) V[2] = - V[2];
-}
-
-/*************************************************************************
-|*
-|* Neue Position an der Stelle t im Parametergebiet des Vektors berechnen
-|*
-\************************************************************************/
-
-void Vector3D::CalcInBetween(const Vector3D& rOld1, const Vector3D& rOld2, double t)
-{
- for(UINT16 i=0;i<3;i++)
- {
- if(rOld2[i] == rOld1[i])
- {
- V[i] = rOld1[i];
- }
- else
- {
- V[i] = ((rOld2[i] - rOld1[i]) * t) + rOld1[i];
- }
- }
-}
-
-/*************************************************************************
-|*
-|* Neue Position in der Mitte des Vektors berechnen
-|*
-\************************************************************************/
-
-void Vector3D::CalcMiddle(const Vector3D& rOld1, const Vector3D& rOld2)
-{
- for(UINT16 i=0;i<3;i++)
- {
- if(rOld2[i] == rOld1[i])
- {
- V[i] = rOld1[i];
- }
- else
- {
- V[i] = (rOld1[i] + rOld2[i]) / 2.0;
- }
- }
-}
-
-/*************************************************************************
-|*
-|* Vektoraddition
-|*
-\************************************************************************/
-
-Vector3D& Vector3D::operator+= (const Vector3D& rVec)
-{
- V[0] += rVec.V[0];
- V[1] += rVec.V[1];
- V[2] += rVec.V[2];
- return *this;
-}
-
-/*************************************************************************
-|*
-|* Vektorsubtraktion
-|*
-\************************************************************************/
-
-Vector3D& Vector3D::operator-= (const Vector3D& rVec)
-{
- V[0] -= rVec.V[0];
- V[1] -= rVec.V[1];
- V[2] -= rVec.V[2];
- return *this;
-}
-
-/*************************************************************************
-|*
-|* Vektoraddition, neuen Vektor erzeugen
-|*
-\************************************************************************/
-
-Vector3D Vector3D::operator+ (const Vector3D& rVec) const
-{
- Vector3D aSum = *this;
-
- aSum += rVec;
- return aSum;
-}
-
-/*************************************************************************
-|*
-|* Vektorsubtraktion, neuen Vektor erzeugen
-|*
-\************************************************************************/
-
-Vector3D Vector3D::operator- (const Vector3D& rVec) const
-{
- Vector3D aSub = *this;
-
- aSub -= rVec;
- return aSub;
-}
-
-/*************************************************************************
-|*
-|* Vektornegation
-|*
-\************************************************************************/
-
-Vector3D Vector3D::operator- (void) const
-{
- Vector3D aVec;
-
- aVec[0] = -V[0];
- aVec[1] = -V[1];
- aVec[2] = -V[2];
- return aVec;
-}
-
-/*************************************************************************
-|*
-|* Kreuzprodukt
-|*
-\************************************************************************/
-
-Vector3D& Vector3D::operator|=(const Vector3D& rVec)
-{
- // this sichern, da Elemente ueberschrieben werden
- Vector3D aVec = *this;
- V[0] = aVec.V[1] * rVec.V[2] - aVec.V[2] * rVec.V[1];
- V[1] = aVec.V[2] * rVec.V[0] - aVec.V[0] * rVec.V[2];
- V[2] = aVec.V[0] * rVec.V[1] - aVec.V[1] * rVec.V[0];
- return *this;
-}
-
-Vector3D Vector3D::operator|(const Vector3D& rVec) const
-{
- Vector3D aCross = *this;
- aCross |= rVec;
- return aCross;
-}
-
-/*************************************************************************
-|*
-|* Skalarprodukt
-|*
-\************************************************************************/
-
-double Vector3D::Scalar(const Vector3D& rVec) const
-{
- return ((V[0] * rVec.V[0]) + (V[1] * rVec.V[1]) + (V[2] * rVec.V[2]));
-}
-
-/*************************************************************************
-|*
-|* Vektormultiplikation
-|*
-\************************************************************************/
-
-Vector3D& Vector3D::operator*= (const Vector3D& rVec)
-{
- V[0] *= rVec.V[0];
- V[1] *= rVec.V[1];
- V[2] *= rVec.V[2];
- return *this;
-}
-
-/*************************************************************************
-|*
-|* Vektormultiplikation, neuen Vektor erzeugen
-|*
-\************************************************************************/
-
-Vector3D Vector3D::operator* (const Vector3D& rVec) const
-{
- Vector3D aMul = *this;
-
- aMul *= rVec;
- return aMul;
-}
-
-/*************************************************************************
-|*
-|* Vektordivision
-|*
-\************************************************************************/
-
-Vector3D& Vector3D::operator/= (const Vector3D& rVec)
-{
- if(rVec.V[0] != 0.0)
- V[0] /= rVec.V[0];
- else
- V[0] = DBL_MAX;
-
- if(rVec.V[1] != 0.0)
- V[1] /= rVec.V[1];
- else
- V[1] = DBL_MAX;
-
- if(rVec.V[2] != 0.0)
- V[2] /= rVec.V[2];
- else
- V[2] = DBL_MAX;
- return *this;
-}
-
-/*************************************************************************
-|*
-|* Vektordivision, neuen Vektor erzeugen
-|*
-\************************************************************************/
-
-Vector3D Vector3D::operator/ (const Vector3D& rVec) const
-{
- Vector3D aDiv = *this;
-
- aDiv /= rVec;
- return aDiv;
-}
-
-/*************************************************************************
-|*
-|* Skalarmultiplikation
-|*
-\************************************************************************/
-
-Vector3D& Vector3D::operator*= (double fFactor)
-{
- V[0] *= fFactor;
- V[1] *= fFactor;
- V[2] *= fFactor;
- return *this;
-}
-
-/*************************************************************************
-|*
-|* Skalarmultiplikation, neuen Vektor erzeugen
-|*
-\************************************************************************/
-
-Vector3D Vector3D::operator* (double fFactor) const
-{
- Vector3D aNewVec = *this;
-
- aNewVec *= fFactor;
- return aNewVec;
-}
-
-/*************************************************************************
-|*
-|* Skalardivision
-|*
-\************************************************************************/
-
-Vector3D& Vector3D::operator/= (double fDiv)
-{
- if (fDiv != 0.0)
- {
- V[0] /= fDiv;
- V[1] /= fDiv;
- V[2] /= fDiv;
- }
- return *this;
-}
-
-/*************************************************************************
-|*
-|* Skalardivision, neuen Vektor erzeugen
-|*
-\************************************************************************/
-
-Vector3D Vector3D::operator/ (double fDiv) const
-{
- Vector3D aNewVec = *this;
-
- if (fDiv != 0.0) aNewVec /= fDiv;
- return aNewVec;
-}
-
-/*************************************************************************
-|*
-|* Skalarmultiplikation, neuen Vektor erzeugen
-|*
-\************************************************************************/
-
-BOOL Vector3D::operator==(const Vector3D& rVec) const
-{
- return (V[0] == rVec.V[0] && V[1] == rVec.V[1] && V[2] == rVec.V[2] );
-}
-
-/*************************************************************************
-|*
-|* Skalarmultiplikation, neuen Vektor erzeugen
-|*
-\************************************************************************/
-
-BOOL Vector3D::operator!=(const Vector3D& rVec) const
-{
- return (V[0] != rVec.V[0] || V[1] != rVec.V[1] || V[2] != rVec.V[2] );
-}
-
-/*************************************************************************
-|*
-|* Stream-In-Operator fuer Vector3D
-|*
-\************************************************************************/
-
-SvStream& operator>>(SvStream& rIStream, Vector3D& rVector3D)
-{
- for (int i = 0; i < 3; i++)
- rIStream >> rVector3D.V[i];
-
- return rIStream;
-}
-
-/*************************************************************************
-|*
-|* Stream-Out-Operator fuer Vector3D
-|*
-\************************************************************************/
-
-SvStream& operator<<(SvStream& rOStream, const Vector3D& rVector3D)
-{
- for (int i = 0; i < 3; i++)
- rOStream << rVector3D.V[i];
-
- return rOStream;
-}
-
-}//end of namespace binfilter
-
-// eof
-
-
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */