X-Git-Url: http://git.dev.opencascade.org/gitweb/?p=occt.git;a=blobdiff_plain;f=src%2FBVH%2FBVH_Properties.hxx;h=e0be636965e0437faf58e0ce67a42ce604c7799d;hb=3c4e78f24f6e0f275808832ac7d828cb978ef2e6;hpb=68333c8f16e01c5252dbebd4c9fcd6680f3941ba diff --git a/src/BVH/BVH_Properties.hxx b/src/BVH/BVH_Properties.hxx new file mode 100644 index 0000000000..e0be636965 --- /dev/null +++ b/src/BVH/BVH_Properties.hxx @@ -0,0 +1,74 @@ +// Created on: 2013-12-20 +// Created by: Denis BOGOLEPOV +// Copyright (c) 2013 OPEN CASCADE SAS +// +// This file is part of Open CASCADE Technology software library. +// +// This library is free software; you can redistribute it and / or modify it +// under the terms of the GNU Lesser General Public version 2.1 as published +// by the Free Software Foundation, with special exception defined in the file +// OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT +// distribution for complete text of the license and disclaimer of any warranty. +// +// Alternatively, this file may be used under the terms of Open CASCADE +// commercial license or contractual agreement. + +#ifndef _BVH_Properties_Header +#define _BVH_Properties_Header + +#include + +#include + +//! Abstract properties of geometric object. +class BVH_Properties +{ +public: + + //! Releases resources of object properties. + Standard_EXPORT virtual ~BVH_Properties() = 0; + +}; + +//! Stores transform properties of geometric object. +template +class BVH_Transform : public BVH_Properties +{ +public: + + //! Type of transformation matrix. + typedef typename BVHTools::MatrixType::Type BVH_MatNt; + +public: + + //! Creates new identity transformation. + BVH_Transform(); + + //! Creates new transformation with specified matrix. + BVH_Transform (const BVH_MatNt& theTransform); + + //! Releases resources of transformation properties. + virtual ~BVH_Transform(); + + //! Returns transformation matrix. + const BVH_MatNt& Transform() const; + + //! Sets new transformation matrix. + void SetTransform (const BVH_MatNt& theTransform); + + //! Returns inversed transformation matrix. + const BVH_MatNt& Inversed() const; + + //! Applies transformation matrix to bounding box. + BVH_Box Apply (const BVH_Box& theBox) const; + +protected: + + BVH_MatNt myTransform; //!< Transformation matrix + BVH_MatNt myTransformInversed; //!< Inversed transformation matrix + +}; + +#include + +#endif // _BVH_Properties_Header