summaryrefslogtreecommitdiff
path: root/drawinglayer/inc/drawinglayer/primitive3d/polypolygonprimitive3d.hxx
diff options
context:
space:
mode:
authorArmin Weiss <aw@openoffice.org>2006-05-12 10:54:47 +0000
committerArmin Weiss <aw@openoffice.org>2006-05-12 10:54:47 +0000
commitc9ea78f03a45dac9b54a7afa33e069be8a290768 (patch)
tree633ef301cf53861c987cbcdcba61d499ef270bfc /drawinglayer/inc/drawinglayer/primitive3d/polypolygonprimitive3d.hxx
parentcb7695b1bf4239f9c24e63e52e98b8c5677e6341 (diff)
code changes for primitive support
Diffstat (limited to 'drawinglayer/inc/drawinglayer/primitive3d/polypolygonprimitive3d.hxx')
-rw-r--r--drawinglayer/inc/drawinglayer/primitive3d/polypolygonprimitive3d.hxx101
1 files changed, 101 insertions, 0 deletions
diff --git a/drawinglayer/inc/drawinglayer/primitive3d/polypolygonprimitive3d.hxx b/drawinglayer/inc/drawinglayer/primitive3d/polypolygonprimitive3d.hxx
new file mode 100644
index 000000000000..6a0bdcf916ff
--- /dev/null
+++ b/drawinglayer/inc/drawinglayer/primitive3d/polypolygonprimitive3d.hxx
@@ -0,0 +1,101 @@
+/*************************************************************************
+ *
+ * OpenOffice.org - a multi-platform office productivity suite
+ *
+ * $RCSfile: polypolygonprimitive3d.hxx,v $
+ *
+ * $Revision: 1.1 $
+ *
+ * last change: $Author: aw $ $Date: 2006-05-12 11:45:13 $
+ *
+ * The Contents of this file are made available subject to
+ * the terms of GNU Lesser General Public License Version 2.1.
+ *
+ *
+ * GNU Lesser General Public License Version 2.1
+ * =============================================
+ * Copyright 2005 by Sun Microsystems, Inc.
+ * 901 San Antonio Road, Palo Alto, CA 94303, USA
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1, as published by the Free Software Foundation.
+ *
+ * This library 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 for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ *
+ ************************************************************************/
+
+#ifndef _DRAWINGLAYER_PRIMITIVE3D_POLYPOLYGONPRIMITIVE_HXX
+#define _DRAWINGLAYER_PRIMITIVE3D_POLYPOLYGONPRIMITIVE_HXX
+
+#ifndef _DRAWINGLAYER_PRIMITIVE_PRIMITIVE_HXX
+#include <drawinglayer/primitive/primitive.hxx>
+#endif
+
+#ifndef _DRAWINGLAYER_PRIMITIVE3D_MATERIALATTRIBUTE3D_HXX
+#include <drawinglayer/primitive3d/materialattribute3d.hxx>
+#endif
+
+#ifndef _BGFX_POLYGON_B3DPOLYPOLYGON_HXX
+#include <basegfx/polygon/b3dpolypolygon.hxx>
+#endif
+
+#ifndef _DRAWINGLAYER_PRIMITIVE_TEXTURE_HXX
+#include <drawinglayer/primitive/texture.hxx>
+#endif
+
+//////////////////////////////////////////////////////////////////////////////
+
+namespace drawinglayer
+{
+ namespace primitive
+ {
+ class polyPolygonMaterialPrimitive3D : public basePrimitive
+ {
+ protected:
+ ::basegfx::B3DPolyPolygon maPolyPolygon;
+ materialAttribute3D maMaterial;
+
+ // bitfield
+ unsigned mbDoubleSided : 1;
+
+ public:
+ polyPolygonMaterialPrimitive3D(const ::basegfx::B3DPolyPolygon& rPolyPolygon, const materialAttribute3D& rMaterial, bool bDoubleSided);
+ virtual ~polyPolygonMaterialPrimitive3D();
+
+ // get data
+ const ::basegfx::B3DPolyPolygon& getB3DPolyPolygon() const { return maPolyPolygon; }
+ const materialAttribute3D& getMaterial() const { return maMaterial; }
+ bool getDoubleSided() const { return mbDoubleSided; }
+
+ // compare operator
+ virtual bool operator==(const basePrimitive& rPrimitive) const;
+
+ // clone operator
+ virtual basePrimitive* createNewClone() const;
+
+ // id generator
+ virtual PrimitiveID getID() const;
+
+ // get 3Drange of primitive. Default implementation uses decomposition
+ virtual ::basegfx::B3DRange get3DRange(const ::drawinglayer::geometry::viewInformation& rViewInformation) const;
+
+ // version for 3D geometries, analog to 2d version (see above)
+ virtual void transform(const ::basegfx::B3DHomMatrix& rMatrix);
+ };
+ } // end of namespace primitive
+} // end of namespace drawinglayer
+
+//////////////////////////////////////////////////////////////////////////////
+
+#endif //_DRAWINGLAYER_PRIMITIVE3D_POLYPOLYGONPRIMITIVE_HXX
+
+// eof