godot/thirdparty/thorvg/src/loaders/svg/tvgSvgLoaderCommon.h

/*
 * Copyright (c) 2020 - 2024 the ThorVG project. All rights reserved.

 * Permission is hereby granted, free of charge, to any person obtaining a copy
 * of this software and associated documentation files (the "Software"), to deal
 * in the Software without restriction, including without limitation the rights
 * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
 * copies of the Software, and to permit persons to whom the Software is
 * furnished to do so, subject to the following conditions:

 * The above copyright notice and this permission notice shall be included in all
 * copies or substantial portions of the Software.

 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
 * SOFTWARE.
 */

#ifndef _TVG_SVG_LOADER_COMMON_H_
#define _TVG_SVG_LOADER_COMMON_H_

#include "tvgCommon.h"
#include "tvgArray.h"

struct SvgNode;
struct SvgStyleGradient;

//NOTE: Please update simpleXmlNodeTypeToString() as well.
enum class SvgNodeType
{};

/*
// TODO - remove?
enum class SvgLengthType
{
    Percent,
    Px,
    Pc,
    Pt,
    Mm,
    Cm,
    In,
};
*/

enum class SvgFillFlags
{};

constexpr bool operator &(SvgFillFlags a, SvgFillFlags b)
{}

constexpr SvgFillFlags operator |(SvgFillFlags a, SvgFillFlags b)
{}

enum class SvgStrokeFlags
{};

constexpr bool operator &(SvgStrokeFlags a, SvgStrokeFlags b)
{}

constexpr SvgStrokeFlags operator |(SvgStrokeFlags a, SvgStrokeFlags b)
{}


enum class SvgGradientType
{};

enum class SvgStyleFlags
{};

constexpr bool operator &(SvgStyleFlags a, SvgStyleFlags b)
{}

constexpr SvgStyleFlags operator |(SvgStyleFlags a, SvgStyleFlags b)
{}

enum class SvgStopStyleFlags
{};

constexpr bool operator &(SvgStopStyleFlags a, SvgStopStyleFlags b)
{}

constexpr SvgStopStyleFlags operator |(SvgStopStyleFlags a, SvgStopStyleFlags b)
{}

enum class SvgGradientFlags
{};

constexpr bool operator &(SvgGradientFlags a, SvgGradientFlags b)
{}

constexpr SvgGradientFlags operator |(SvgGradientFlags a, SvgGradientFlags b)
{}

enum class SvgFillRule
{};

enum class SvgMaskType
{};

//Length type to recalculate %, pt, pc, mm, cm etc
enum class SvgParserLengthType
{};

enum class SvgViewFlag
{};

constexpr bool operator &(SvgViewFlag a, SvgViewFlag b)
{}

constexpr SvgViewFlag operator |(SvgViewFlag a, SvgViewFlag b)
{}

constexpr SvgViewFlag operator ^(SvgViewFlag a, SvgViewFlag b)
{}

enum class AspectRatioAlign
{};

enum class AspectRatioMeetOrSlice
{};

struct SvgDocNode
{};

struct SvgGNode
{};

struct SvgDefsNode
{};

struct SvgSymbolNode
{};

struct SvgUseNode
{};

struct SvgEllipseNode
{};

struct SvgCircleNode
{};

struct SvgRectNode
{};

struct SvgLineNode
{};

struct SvgImageNode
{};

struct SvgPathNode
{};

struct SvgPolygonNode
{};

struct SvgClipNode
{};

struct SvgMaskNode
{};

struct SvgCssStyleNode
{};

struct SvgTextNode
{};

struct SvgLinearGradient
{};

struct SvgRadialGradient
{};

struct SvgComposite
{};

struct SvgColor
{};

struct SvgPaint
{};

struct SvgDash
{};

struct SvgStyleGradient
{};

struct SvgStyleFill
{};

struct SvgStyleStroke
{};

struct SvgStyleProperty
{};

struct SvgNode
{};

struct SvgParser
{};

struct SvgNodeIdPair
{};

enum class OpenedTagType : uint8_t
{};

struct SvgLoaderData
{};

struct Box
{};

#endif