/* -*- 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 .
 */


module com { module sun { module star { module drawing {

/**
  This service may be represented by a ::com::sun::star::beans::PropertyValue [].
*/

service EnhancedCustomShapeExtrusion
{
    /** This property specifies if extrusion is displayed. The default for this property
        is "false"
    */
    [optional, property] boolean Extrusion;

    /** This attribute specifies the brightness of a scene in percent.
    */
    [optional, property] double Brightness;

    /** The first value of EnhancedCustomShapeParameterPair specifies the depth of the
        extrusion in 1/100 mm. The second value (0.0 to 1.0) specifies the fraction of
        the extrusion that lies before the shape, a value of 0 is default.
    */
    [optional, property] ::com::sun::star::drawing::EnhancedCustomShapeParameterPair Depth;

    /** This attribute specifies the amount of diffusion reflected by the shape
        in percent
    */
    [optional, property] double Diffusion;

    /** Specifies the number of line segments that should be used to display curved surfaces.
        The higher the number the more line segments are used.
    */
    [optional, property] long NumberOfLineSegments;

    /** Specifies if the front face of the extrusion responds to lightning changes.
    */
    [optional, property] boolean LightFace;

    /** Specifies if the primary light is harsh.
    */
    [optional, property] boolean FirstLightHarsh;

    /** Specifies if the secondary light is harsh.
    */
    [optional, property] boolean SecondLightHarsh;

    /** Specifies the intensity for the first light in percent.
    */
    [optional, property] double FirstLightLevel;

    /** Specifies the intensity for the second light in percent.
    */
    [optional, property] double SecondLightLevel;

    /** Specifies the direction of the first light.
    */
    [optional, property] ::com::sun::star::drawing::Direction3D FirstLightDirection;

    /** Specifies the direction of the second light.
    */
    [optional, property] ::com::sun::star::drawing::Direction3D SecondLightDirection;

    /** Specifies if the surface of the extrusion object looks like metal.
    */
    [optional, property] boolean Metal;

    /** Specifies in case of Metal=true the way the rendering of the shape is modified.
        <p>Note: Currently not usable in ODF strict.</p>

        @see EnhancedCustomShapeMetalType

        @since LibreOffice 7.4
    */
    [optional, property] short MetalType;

    /** This property defines the shade mode.
    */
    [optional, property] ::com::sun::star::drawing::ShadeMode ShadeMode;

    /** This attributes specifies the rotation angle about the x-axis in degrees.
        The order of rotation is: z-axis, y-axis and then x-axis. The z-axis is
        specified by the draw:rotate-angle.
    */
    [optional, property] ::com::sun::star::drawing::EnhancedCustomShapeParameterPair RotateAngle;

    /** This attribute specifies the position of the rotate center
        in terms of shape size fractions, if the property is omitted, then
        the geometrical center of the shape is used (this is the default).
    */
    [optional, property] ::com::sun::star::drawing::Direction3D RotationCenter;

    /** The draw:extrusion-shininess specifies the shininess of a mirror in percent.
    */
    [optional, property] double Shininess;

    /** The first value of the draw:extrusion-skew attribute specifies the skew amount of
        an extrusion in percent. The second parameter specifies the skew-angle. Skew settings
        are only applied if the attribute ProjectionMode is ProjectionMode_PARALLEL.
    */
    [optional, property] ::com::sun::star::drawing::EnhancedCustomShapeParameterPair Skew;

    /** This attribute specifies the specularity of an extrusion object in percent.
    */
    [optional, property] double Specularity;

    /** This property defines the projection mode.
    */
    [optional, property] com::sun::star::drawing::ProjectionMode ProjectionMode;

    /** This attribute specifies the viewpoint of the observer.
    */
    [optional, property] ::com::sun::star::drawing::Position3D ViewPoint;

    /** This attribute specifies the origin within the bounding box of the
        shape in terms of the shape size fractions.
    */
    [optional, property] ::com::sun::star::drawing::EnhancedCustomShapeParameterPair Origin;

    /** This attribute specifies if the "SecondFillColor" is used as extrusion color
    */
    [optional, property] boolean ExtrusionColor;
};


}; }; }; };

/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
