From c7606873ac32b0df1d508f325e0559df00079a05 Mon Sep 17 00:00:00 2001 From: Vladimir Glazounov Date: Tue, 19 Aug 2008 22:53:45 +0000 Subject: [PATCH] INTEGRATION: CWS aw033 (1.1.2); FILE ADDED 2008/08/19 16:43:44 cl 1.1.2.2: fixed license files 2006/05/12 11:37:28 aw 1.1.2.1: code for primitive support --- basegfx/inc/basegfx/polygon/b3dgeometry.hxx | 74 +++++++++++++++++++++ 1 file changed, 74 insertions(+) create mode 100644 basegfx/inc/basegfx/polygon/b3dgeometry.hxx diff --git a/basegfx/inc/basegfx/polygon/b3dgeometry.hxx b/basegfx/inc/basegfx/polygon/b3dgeometry.hxx new file mode 100644 index 000000000000..024c7e695b68 --- /dev/null +++ b/basegfx/inc/basegfx/polygon/b3dgeometry.hxx @@ -0,0 +1,74 @@ +/************************************************************************* + * + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * Copyright 2008 by Sun Microsystems, Inc. + * + * OpenOffice.org - a multi-platform office productivity suite + * + * $RCSfile: b3dgeometry.hxx,v $ + * + * $Revision: 1.2 $ + * + * 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 + * + * for a copy of the LGPLv3 License. + * + ************************************************************************/ + +#ifndef _BGFX_POLYGON_B3DGEOMETRY_HXX +#define _BGFX_POLYGON_B3DGEOMETRY_HXX + +////////////////////////////////////////////////////////////////////////////// +// predeclarations + +namespace basegfx +{ +} // end of namespace basegfx + +////////////////////////////////////////////////////////////////////////////// + +namespace basegfx +{ + class B3DGeometry + { + private: + B2DPolyPolygon maPolyPolygon; // the PolyPolygon geometry data, defines point number + B3DHomMatrix maPolygonTo3D; // transformation to create 3D PolyPolygon + B3DPolyPolygon maPolyNormal; // normal for each point or empty -> unified normal + B2DPolyPolygon maPolyTexture; // texture coordinate for each point or empty -> unified coordinate + B3DVector maUnifiedVector; // used when maNormal is empty + + // bitfield + unsigned mbUnifiedVectorValid : 1; // flag to know if uvec is calculated yet + + public: + B3DGeometry(); + ~B3DGeometry(); + + // compare operators + bool operator==(const B3DGeometry& rGeometry) const; + bool operator!=(const B3DGeometry& rGeometry) const { return (!operator==(rGeometry)); } + + // member count + sal_uInt32 count() const { return maPolyPolygon.count(); } + }; +} // end of namespace basegfx + +////////////////////////////////////////////////////////////////////////////// + + +#endif /* _BGFX_POLYGON_B3DPOLYGON_HXX */