Files
loongoffice/include/drawinglayer/attribute/sdrlightingattribute3d.hxx
Tomaž Vajngerl a2fa768b73 extend XML dumpig for primitives to support fontwork objects
This adds support for 3D drawinglayer primitive XML dumping and
adds dumping support for many more primitives and attributes that
were missing before. This is needed to be able to check the
fontwork objects, which can be rendered in 3D.

Change-Id: I0e78be4d4030a0cae3d2b952a1a38de8940ee310
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/124804
Tested-by: Jenkins
Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
2021-11-08 13:52:31 +01:00

87 lines
3.0 KiB
C++

/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
/*
* This file is part of the LibreOffice project.
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*
* This file incorporates work covered by the following license notice:
*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed
* with this work for additional information regarding copyright
* ownership. The ASF licenses this file to you under the Apache
* License, Version 2.0 (the "License"); you may not use this file
* except in compliance with the License. You may obtain a copy of
* the License at http://www.apache.org/licenses/LICENSE-2.0 .
*/
#ifndef INCLUDED_DRAWINGLAYER_ATTRIBUTE_SDRLIGHTINGATTRIBUTE3D_HXX
#define INCLUDED_DRAWINGLAYER_ATTRIBUTE_SDRLIGHTINGATTRIBUTE3D_HXX
#include <drawinglayer/drawinglayerdllapi.h>
#include <o3tl/cow_wrapper.hxx>
#include <vector>
// predefines
namespace basegfx {
class BColor;
class B3DVector;
}
namespace drawinglayer::attribute {
class ImpSdrLightingAttribute;
class Sdr3DLightAttribute;
}
namespace drawinglayer::attribute
{
class DRAWINGLAYER_DLLPUBLIC SdrLightingAttribute
{
public:
typedef o3tl::cow_wrapper< ImpSdrLightingAttribute > ImplType;
private:
ImplType mpSdrLightingAttribute;
public:
/// constructors/assignmentoperator/destructor
SdrLightingAttribute(
const basegfx::BColor& rAmbientLight,
std::vector< Sdr3DLightAttribute >&& rLightVector);
SdrLightingAttribute();
SdrLightingAttribute(const SdrLightingAttribute& rCandidate);
SdrLightingAttribute(SdrLightingAttribute&& rCandidate);
SdrLightingAttribute& operator=(const SdrLightingAttribute& rCandidate);
SdrLightingAttribute& operator=(SdrLightingAttribute&& rCandidate);
~SdrLightingAttribute();
// checks if the incarnation is default constructed
bool isDefault() const;
// compare operator
bool operator==(const SdrLightingAttribute& rCandidate) const;
// data read access
const basegfx::BColor& getAmbientLightColor() const;
const ::std::vector< Sdr3DLightAttribute >& getLightVector() const;
// color model solver
basegfx::BColor solveColorModel(
const basegfx::B3DVector& rNormalInEyeCoordinates,
const basegfx::BColor& rColor, const basegfx::BColor& rSpecular,
const basegfx::BColor& rEmission, sal_uInt16 nSpecularIntensity) const;
};
} // end of namespace drawinglayer::attribute
#endif //INCLUDED_DRAWINGLAYER_ATTRIBUTE_SDRLIGHTINGATTRIBUTE3D_HXX
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */