1cdf0e10cSrcweir /************************************************************************* 2cdf0e10cSrcweir * 3cdf0e10cSrcweir * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. 4cdf0e10cSrcweir * 5cdf0e10cSrcweir * Copyright 2000, 2010 Oracle and/or its affiliates. 6cdf0e10cSrcweir * 7cdf0e10cSrcweir * OpenOffice.org - a multi-platform office productivity suite 8cdf0e10cSrcweir * 9cdf0e10cSrcweir * This file is part of OpenOffice.org. 10cdf0e10cSrcweir * 11cdf0e10cSrcweir * OpenOffice.org is free software: you can redistribute it and/or modify 12cdf0e10cSrcweir * it under the terms of the GNU Lesser General Public License version 3 13cdf0e10cSrcweir * only, as published by the Free Software Foundation. 14cdf0e10cSrcweir * 15cdf0e10cSrcweir * OpenOffice.org is distributed in the hope that it will be useful, 16cdf0e10cSrcweir * but WITHOUT ANY WARRANTY; without even the implied warranty of 17cdf0e10cSrcweir * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 18cdf0e10cSrcweir * GNU Lesser General Public License version 3 for more details 19cdf0e10cSrcweir * (a copy is included in the LICENSE file that accompanied this code). 20cdf0e10cSrcweir * 21cdf0e10cSrcweir * You should have received a copy of the GNU Lesser General Public License 22cdf0e10cSrcweir * version 3 along with OpenOffice.org. If not, see 23cdf0e10cSrcweir * <http://www.openoffice.org/license.html> 24cdf0e10cSrcweir * for a copy of the LGPLv3 License. 25cdf0e10cSrcweir * 26cdf0e10cSrcweir ************************************************************************/ 27cdf0e10cSrcweir 28cdf0e10cSrcweir // MARKER(update_precomp.py): autogen include statement, do not remove 29cdf0e10cSrcweir #include "precompiled_svx.hxx" 30cdf0e10cSrcweir 31cdf0e10cSrcweir #include "svx/svdstr.hrc" 32cdf0e10cSrcweir #include "svx/svdglob.hxx" 33cdf0e10cSrcweir #include <svx/svdmodel.hxx> 34cdf0e10cSrcweir #include <svx/svdpage.hxx> 35cdf0e10cSrcweir #include "svx/globl3d.hxx" 36cdf0e10cSrcweir #include <svx/sphere3d.hxx> 37cdf0e10cSrcweir 38cdf0e10cSrcweir #include <svx/svxids.hrc> 39cdf0e10cSrcweir #include <svx/svx3ditems.hxx> 40cdf0e10cSrcweir #include <svx/sdr/properties/e3dsphereproperties.hxx> 41cdf0e10cSrcweir #include <basegfx/vector/b3dvector.hxx> 42cdf0e10cSrcweir #include <basegfx/point/b3dpoint.hxx> 43cdf0e10cSrcweir #include <svx/sdr/contact/viewcontactofe3dsphere.hxx> 44cdf0e10cSrcweir #include <basegfx/polygon/b3dpolygon.hxx> 45cdf0e10cSrcweir 46cdf0e10cSrcweir ////////////////////////////////////////////////////////////////////////////// 47cdf0e10cSrcweir // #110094# DrawContact section 48cdf0e10cSrcweir 49cdf0e10cSrcweir sdr::contact::ViewContact* E3dSphereObj::CreateObjectSpecificViewContact() 50cdf0e10cSrcweir { 51cdf0e10cSrcweir return new sdr::contact::ViewContactOfE3dSphere(*this); 52cdf0e10cSrcweir } 53cdf0e10cSrcweir 54cdf0e10cSrcweir ////////////////////////////////////////////////////////////////////////////// 55cdf0e10cSrcweir 56cdf0e10cSrcweir sdr::properties::BaseProperties* E3dSphereObj::CreateObjectSpecificProperties() 57cdf0e10cSrcweir { 58cdf0e10cSrcweir return new sdr::properties::E3dSphereProperties(*this); 59cdf0e10cSrcweir } 60cdf0e10cSrcweir 61cdf0e10cSrcweir ////////////////////////////////////////////////////////////////////////////// 62cdf0e10cSrcweir 63cdf0e10cSrcweir TYPEINIT1(E3dSphereObj, E3dCompoundObject); 64cdf0e10cSrcweir 65cdf0e10cSrcweir /************************************************************************* 66cdf0e10cSrcweir |* 67cdf0e10cSrcweir |* Kugel aus Polygonfacetten nach Laengen und Breitengrad aufbauen 68cdf0e10cSrcweir |* 69cdf0e10cSrcweir \************************************************************************/ 70cdf0e10cSrcweir 71cdf0e10cSrcweir E3dSphereObj::E3dSphereObj(E3dDefaultAttributes& rDefault, const basegfx::B3DPoint& rCenter, const basegfx::B3DVector& r3DSize) 72cdf0e10cSrcweir : E3dCompoundObject(rDefault) 73cdf0e10cSrcweir { 74cdf0e10cSrcweir // Defaults setzen 75cdf0e10cSrcweir SetDefaultAttributes(rDefault); 76cdf0e10cSrcweir 77cdf0e10cSrcweir // Uebergebene drueberbuegeln 78cdf0e10cSrcweir aCenter = rCenter; 79cdf0e10cSrcweir aSize = r3DSize; 80cdf0e10cSrcweir } 81cdf0e10cSrcweir 82cdf0e10cSrcweir E3dSphereObj::E3dSphereObj() 83cdf0e10cSrcweir : E3dCompoundObject() 84cdf0e10cSrcweir { 85cdf0e10cSrcweir // Defaults setzen 86cdf0e10cSrcweir E3dDefaultAttributes aDefault; 87cdf0e10cSrcweir SetDefaultAttributes(aDefault); 88cdf0e10cSrcweir } 89cdf0e10cSrcweir 90cdf0e10cSrcweir /************************************************************************* 91cdf0e10cSrcweir |* 92cdf0e10cSrcweir |* Kugel erzeugen ohne die Polygone darin zu erzeugen 93cdf0e10cSrcweir |* 94cdf0e10cSrcweir \************************************************************************/ 95cdf0e10cSrcweir 96cdf0e10cSrcweir // FG: Dieser Aufruf erfolgt von der 3D-Object Factory (objfac3d.cxx) und zwar ausschliesslich beim 97cdf0e10cSrcweir // laden von Dokumenten. Hier braucht man keinen CreateSphere-Aufruf, denn die wirkliche 98cdf0e10cSrcweir // Anzahl Segmente ist ja noch nicht bekannt. Dies war bis zum 10.2.97 ein (kleines) 99cdf0e10cSrcweir // Speicherleck. 100cdf0e10cSrcweir E3dSphereObj::E3dSphereObj(int /*dummy*/) // den Parameter braucht es um unterscheiden zu koennen, welcher 101cdf0e10cSrcweir { // der beiden Konstruktoren gemeint ist. Der obige halt per Default 102cdf0e10cSrcweir // Defaults setzen 103cdf0e10cSrcweir E3dDefaultAttributes aDefault; 104cdf0e10cSrcweir SetDefaultAttributes(aDefault); 105cdf0e10cSrcweir } 106cdf0e10cSrcweir 107cdf0e10cSrcweir void E3dSphereObj::SetDefaultAttributes(E3dDefaultAttributes& rDefault) 108cdf0e10cSrcweir { 109cdf0e10cSrcweir // Defaults setzen 110cdf0e10cSrcweir aCenter = rDefault.GetDefaultSphereCenter(); 111cdf0e10cSrcweir aSize = rDefault.GetDefaultSphereSize(); 112cdf0e10cSrcweir } 113cdf0e10cSrcweir 114cdf0e10cSrcweir /************************************************************************* 115cdf0e10cSrcweir |* 116cdf0e10cSrcweir |* Identifier zurueckgeben 117cdf0e10cSrcweir |* 118cdf0e10cSrcweir \************************************************************************/ 119cdf0e10cSrcweir 120cdf0e10cSrcweir sal_uInt16 E3dSphereObj::GetObjIdentifier() const 121cdf0e10cSrcweir { 122cdf0e10cSrcweir return E3D_SPHEREOBJ_ID; 123cdf0e10cSrcweir } 124cdf0e10cSrcweir 125cdf0e10cSrcweir /************************************************************************* 126cdf0e10cSrcweir |* 127cdf0e10cSrcweir |* Wandle das Objekt in ein Gruppenobjekt bestehend aus n Polygonen 128cdf0e10cSrcweir |* 129cdf0e10cSrcweir \************************************************************************/ 130cdf0e10cSrcweir 131*a5258243SPedro Giffuni SdrObject *E3dSphereObj::DoConvertToPolyObj(sal_Bool /*bBezier*/, bool /*bAddText*/) const 132cdf0e10cSrcweir { 133cdf0e10cSrcweir return NULL; 134cdf0e10cSrcweir } 135cdf0e10cSrcweir 136cdf0e10cSrcweir /************************************************************************* 137cdf0e10cSrcweir |* 138cdf0e10cSrcweir |* Leer-Konstruktor 139cdf0e10cSrcweir |* 140cdf0e10cSrcweir \************************************************************************/ 141cdf0e10cSrcweir 142cdf0e10cSrcweir void E3dSphereObj::ReSegment(sal_uInt32 nHSegs, sal_uInt32 nVSegs) 143cdf0e10cSrcweir { 144cdf0e10cSrcweir if((nHSegs != GetHorizontalSegments() || nVSegs != GetVerticalSegments()) && (nHSegs != 0 || nVSegs != 0)) 145cdf0e10cSrcweir { 146cdf0e10cSrcweir GetProperties().SetObjectItemDirect(Svx3DHorizontalSegmentsItem(nHSegs)); 147cdf0e10cSrcweir GetProperties().SetObjectItemDirect(Svx3DVerticalSegmentsItem(nVSegs)); 148cdf0e10cSrcweir 149cdf0e10cSrcweir ActionChanged(); 150cdf0e10cSrcweir } 151cdf0e10cSrcweir } 152cdf0e10cSrcweir 153cdf0e10cSrcweir /************************************************************************* 154cdf0e10cSrcweir |* 155cdf0e10cSrcweir |* Zuweisungsoperator 156cdf0e10cSrcweir |* 157cdf0e10cSrcweir \************************************************************************/ 158cdf0e10cSrcweir 159cdf0e10cSrcweir void E3dSphereObj::operator=(const SdrObject& rObj) 160cdf0e10cSrcweir { 161cdf0e10cSrcweir // erstmal alle Childs kopieren 162cdf0e10cSrcweir E3dCompoundObject::operator=(rObj); 163cdf0e10cSrcweir 164cdf0e10cSrcweir // weitere Parameter kopieren 165cdf0e10cSrcweir const E3dSphereObj& r3DObj = (const E3dSphereObj&) rObj; 166cdf0e10cSrcweir 167cdf0e10cSrcweir aCenter = r3DObj.aCenter; 168cdf0e10cSrcweir aSize = r3DObj.aSize; 169cdf0e10cSrcweir } 170cdf0e10cSrcweir 171cdf0e10cSrcweir /************************************************************************* 172cdf0e10cSrcweir |* 173cdf0e10cSrcweir |* Lokale Parameter setzen mit Geometrieneuerzeugung 174cdf0e10cSrcweir |* 175cdf0e10cSrcweir \************************************************************************/ 176cdf0e10cSrcweir 177cdf0e10cSrcweir void E3dSphereObj::SetCenter(const basegfx::B3DPoint& rNew) 178cdf0e10cSrcweir { 179cdf0e10cSrcweir if(aCenter != rNew) 180cdf0e10cSrcweir { 181cdf0e10cSrcweir aCenter = rNew; 182cdf0e10cSrcweir ActionChanged(); 183cdf0e10cSrcweir } 184cdf0e10cSrcweir } 185cdf0e10cSrcweir 186cdf0e10cSrcweir void E3dSphereObj::SetSize(const basegfx::B3DVector& rNew) 187cdf0e10cSrcweir { 188cdf0e10cSrcweir if(aSize != rNew) 189cdf0e10cSrcweir { 190cdf0e10cSrcweir aSize = rNew; 191cdf0e10cSrcweir ActionChanged(); 192cdf0e10cSrcweir } 193cdf0e10cSrcweir } 194cdf0e10cSrcweir 195cdf0e10cSrcweir /************************************************************************* 196cdf0e10cSrcweir |* 197cdf0e10cSrcweir |* Get the name of the object (singular) 198cdf0e10cSrcweir |* 199cdf0e10cSrcweir \************************************************************************/ 200cdf0e10cSrcweir 201cdf0e10cSrcweir void E3dSphereObj::TakeObjNameSingul(XubString& rName) const 202cdf0e10cSrcweir { 203cdf0e10cSrcweir rName=ImpGetResStr(STR_ObjNameSingulSphere3d); 204cdf0e10cSrcweir 205cdf0e10cSrcweir String aName( GetName() ); 206cdf0e10cSrcweir if(aName.Len()) 207cdf0e10cSrcweir { 208cdf0e10cSrcweir rName += sal_Unicode(' '); 209cdf0e10cSrcweir rName += sal_Unicode('\''); 210cdf0e10cSrcweir rName += aName; 211cdf0e10cSrcweir rName += sal_Unicode('\''); 212cdf0e10cSrcweir } 213cdf0e10cSrcweir } 214cdf0e10cSrcweir 215cdf0e10cSrcweir /************************************************************************* 216cdf0e10cSrcweir |* 217cdf0e10cSrcweir |* Get the name of the object (plural) 218cdf0e10cSrcweir |* 219cdf0e10cSrcweir \************************************************************************/ 220cdf0e10cSrcweir 221cdf0e10cSrcweir void E3dSphereObj::TakeObjNamePlural(XubString& rName) const 222cdf0e10cSrcweir { 223cdf0e10cSrcweir rName=ImpGetResStr(STR_ObjNamePluralSphere3d); 224cdf0e10cSrcweir } 225cdf0e10cSrcweir 226cdf0e10cSrcweir // eof 227