1 /************************************************************************* 2 * 3 * OpenOffice.org - a multi-platform office productivity suite 4 * 5 * $RCSfile: sdrattribute3d.hxx,v $ 6 * 7 * $Revision: 1.4 $ 8 * 9 * last change: $Author: aw $ $Date: 2008-05-27 14:11:16 $ 10 * 11 * The Contents of this file are made available subject to 12 * the terms of GNU Lesser General Public License Version 2.1. 13 * 14 * 15 * GNU Lesser General Public License Version 2.1 16 * ============================================= 17 * Copyright 2005 by Sun Microsystems, Inc. 18 * 901 San Antonio Road, Palo Alto, CA 94303, USA 19 * 20 * This library is free software; you can redistribute it and/or 21 * modify it under the terms of the GNU Lesser General Public 22 * License version 2.1, as published by the Free Software Foundation. 23 * 24 * This library is distributed in the hope that it will be useful, 25 * but WITHOUT ANY WARRANTY; without even the implied warranty of 26 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 27 * Lesser General Public License for more details. 28 * 29 * You should have received a copy of the GNU Lesser General Public 30 * License along with this library; if not, write to the Free Software 31 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, 32 * MA 02111-1307 USA 33 * 34 ************************************************************************/ 35 36 #ifndef INCLUDED_DRAWINGLAYER_ATTRIBUTE_SDRLIGHTINGATTRIBUTE3D_HXX 37 #define INCLUDED_DRAWINGLAYER_ATTRIBUTE_SDRLIGHTINGATTRIBUTE3D_HXX 38 39 #include <drawinglayer/drawinglayerdllapi.h> 40 #include <vector> 41 42 ////////////////////////////////////////////////////////////////////////////// 43 // predefines 44 45 namespace basegfx { 46 class BColor; 47 class B3DVector; 48 } 49 50 namespace drawinglayer { namespace attribute { 51 class ImpSdrLightingAttribute; 52 class Sdr3DLightAttribute; 53 }} 54 55 ////////////////////////////////////////////////////////////////////////////// 56 57 namespace drawinglayer 58 { 59 namespace attribute 60 { 61 class DRAWINGLAYER_DLLPUBLIC SdrLightingAttribute 62 { 63 private: 64 ImpSdrLightingAttribute* mpSdrLightingAttribute; 65 66 public: 67 /// constructors/assignmentoperator/destructor 68 SdrLightingAttribute( 69 const basegfx::BColor& rAmbientLight, 70 const ::std::vector< Sdr3DLightAttribute >& rLightVector); 71 SdrLightingAttribute(); 72 SdrLightingAttribute(const SdrLightingAttribute& rCandidate); 73 SdrLightingAttribute& operator=(const SdrLightingAttribute& rCandidate); 74 ~SdrLightingAttribute(); 75 76 // checks if the incarnation is default constructed 77 bool isDefault() const; 78 79 // compare operator 80 bool operator==(const SdrLightingAttribute& rCandidate) const; 81 82 // data read access 83 const basegfx::BColor& getAmbientLight() const; 84 const ::std::vector< Sdr3DLightAttribute >& getLightVector() const; 85 86 // color model solver 87 basegfx::BColor solveColorModel( 88 const basegfx::B3DVector& rNormalInEyeCoordinates, 89 const basegfx::BColor& rColor, const basegfx::BColor& rSpecular, 90 const basegfx::BColor& rEmission, sal_uInt16 nSpecularIntensity) const; 91 }; 92 } // end of namespace attribute 93 } // end of namespace drawinglayer 94 95 ////////////////////////////////////////////////////////////////////////////// 96 97 #endif //INCLUDED_DRAWINGLAYER_ATTRIBUTE_SDRLIGHTINGATTRIBUTE3D_HXX 98 99 // eof 100