/** * The MIT License (MIT) * * Copyright (c) 2012-2018 DragonBones team and other contributors * * 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 DRAGONBONES_DATA_PARSER_H #define DRAGONBONES_DATA_PARSER_H #include "../core/DragonBones.h" #include "../model/UserData.h" #include "../model/DragonBonesData.h" #include "../model/ArmatureData.h" #include "../model/CanvasData.h" #include "../model/ConstraintData.h" #include "../model/SkinData.h" #include "../model/DisplayData.h" #include "../model/BoundingBoxData.h" #include "../model/AnimationData.h" #include "../model/TextureAtlasData.h" DRAGONBONES_NAMESPACE_BEGIN /** * @internal */ class DataParser { ABSTRACT_CLASS(DataParser) protected: static const char* DATA_VERSION_2_3; static const char* DATA_VERSION_3_0; static const char* DATA_VERSION_4_0; static const char* DATA_VERSION_4_5; static const char* DATA_VERSION_5_0; static const char* DATA_VERSION_5_5; static const char* DATA_VERSION; static const std::vector DATA_VERSIONS; static const char* TEXTURE_ATLAS; static const char* SUB_TEXTURE; static const char* FORMAT; static const char* IMAGE_PATH; static const char* WIDTH; static const char* HEIGHT; static const char* ROTATED; static const char* FRAME_X; static const char* FRAME_Y; static const char* FRAME_WIDTH; static const char* FRAME_HEIGHT; static const char* DRADON_BONES; static const char* USER_DATA; static const char* ARMATURE; static const char* BONE; static const char* SLOT; static const char* CONSTRAINT; static const char* IK; static const char* SKIN; static const char* DISPLAY; static const char* ANIMATION; static const char* Z_ORDER; static const char* FFD; static const char* FRAME; static const char* TRANSLATE_FRAME; static const char* ROTATE_FRAME; static const char* SCALE_FRAME; static const char* DISPLAY_FRAME; static const char* COLOR_FRAME; static const char* DEFAULT_ACTIONS; static const char* ACTIONS; static const char* EVENTS; static const char* INTS; static const char* FLOATS; static const char* STRINGS; static const char* CANVAS; static const char* PIVOT; static const char* TRANSFORM; static const char* AABB; static const char* COLOR; static const char* VERSION; static const char* COMPATIBLE_VERSION; static const char* FRAME_RATE; static const char* TYPE; static const char* SUB_TYPE; static const char* NAME; static const char* PARENT; static const char* TARGET; static const char* STAGE; static const char* SHARE; static const char* PATH; static const char* LENGTH; static const char* DISPLAY_INDEX; static const char* BLEND_MODE; static const char* INHERIT_TRANSLATION; static const char* INHERIT_ROTATION; static const char* INHERIT_SCALE; static const char* INHERIT_REFLECTION; static const char* INHERIT_ANIMATION; static const char* INHERIT_DEFORM; static const char* BEND_POSITIVE; static const char* CHAIN; static const char* WEIGHT; static const char* FADE_IN_TIME; static const char* PLAY_TIMES; static const char* SCALE; static const char* OFFSET; static const char* POSITION; static const char* DURATION; static const char* TWEEN_EASING; static const char* TWEEN_ROTATE; static const char* TWEEN_SCALE; static const char* CLOCK_WISE; static const char* CURVE; static const char* EVENT; static const char* SOUND; static const char* ACTION; static const char* X; static const char* Y; static const char* SKEW_X; static const char* SKEW_Y; static const char* SCALE_X; static const char* SCALE_Y; static const char* VALUE; static const char* ROTATE; static const char* SKEW; static const char* ALPHA_OFFSET; static const char* RED_OFFSET; static const char* GREEN_OFFSET; static const char* BLUE_OFFSET; static const char* ALPHA_MULTIPLIER; static const char* RED_MULTIPLIER; static const char* GREEN_MULTIPLIER; static const char* BLUE_MULTIPLIER; static const char* UVS; static const char* VERTICES; static const char* TRIANGLES; static const char* WEIGHTS; static const char* SLOT_POSE; static const char* BONE_POSE; static const char* GOTO_AND_PLAY; static const char* DEFAULT_NAME; static TextureFormat _getTextureFormat(std::string_view value); static ArmatureType _getArmatureType(std::string_view value); static DisplayType _getDisplayType(std::string_view value); static BoundingBoxType _getBoundingBoxType(std::string_view value); static ActionType _getActionType(std::string_view value); static BlendMode _getBlendMode(std::string_view value); public: virtual DragonBonesData* parseDragonBonesData(const char* rawData, float scale = 1.0f) = 0; virtual bool parseTextureAtlasData(const char* rawData, TextureAtlasData& textureAtlasData, float scale = 1.0f) = 0; }; DRAGONBONES_NAMESPACE_END #endif // DRAGONBONES_DATA_PARSER_H