mirror of
https://github.com/EsotericSoftware/spine-runtimes.git
synced 2026-02-05 06:44:56 +08:00
[godot] Clean-up SpineBoneData, move TransformMode to SpineConstant
This commit is contained in:
parent
b6018275f1
commit
34d3f34b25
@ -28,136 +28,169 @@
|
||||
*****************************************************************************/
|
||||
|
||||
#include "SpineBoneData.h"
|
||||
#include <spine/BoneData.h>
|
||||
#include "common.h"
|
||||
|
||||
void SpineBoneData::_bind_methods() {
|
||||
ClassDB::bind_method(D_METHOD("get_index"), &SpineBoneData::get_index);
|
||||
ClassDB::bind_method(D_METHOD("get_bone_name"), &SpineBoneData::get_bone_name);
|
||||
ClassDB::bind_method(D_METHOD("get_parent"), &SpineBoneData::get_parent);
|
||||
|
||||
ClassDB::bind_method(D_METHOD("get_length"), &SpineBoneData::get_length);
|
||||
ClassDB::bind_method(D_METHOD("set_length", "v"), &SpineBoneData::set_length);
|
||||
|
||||
ClassDB::bind_method(D_METHOD("get_x"), &SpineBoneData::get_x);
|
||||
ClassDB::bind_method(D_METHOD("set_x", "v"), &SpineBoneData::set_x);
|
||||
|
||||
ClassDB::bind_method(D_METHOD("get_y"), &SpineBoneData::get_y);
|
||||
ClassDB::bind_method(D_METHOD("set_y", "v"), &SpineBoneData::set_y);
|
||||
|
||||
ClassDB::bind_method(D_METHOD("get_rotation"), &SpineBoneData::get_rotation);
|
||||
ClassDB::bind_method(D_METHOD("set_rotation", "v"), &SpineBoneData::set_rotation);
|
||||
|
||||
ClassDB::bind_method(D_METHOD("get_scale_x"), &SpineBoneData::get_scale_x);
|
||||
ClassDB::bind_method(D_METHOD("set_scale_x", "v"), &SpineBoneData::set_scale_x);
|
||||
|
||||
ClassDB::bind_method(D_METHOD("get_scale_y"), &SpineBoneData::get_scale_y);
|
||||
ClassDB::bind_method(D_METHOD("set_scale_y", "v"), &SpineBoneData::set_scale_y);
|
||||
|
||||
ClassDB::bind_method(D_METHOD("get_shear_x"), &SpineBoneData::get_shear_x);
|
||||
ClassDB::bind_method(D_METHOD("set_shear_x", "v"), &SpineBoneData::set_shear_x);
|
||||
|
||||
ClassDB::bind_method(D_METHOD("get_shear_y"), &SpineBoneData::get_shear_y);
|
||||
ClassDB::bind_method(D_METHOD("set_shear_y", "v"), &SpineBoneData::set_shear_y);
|
||||
|
||||
ClassDB::bind_method(D_METHOD("get_transform_mode"), &SpineBoneData::get_transform_mode);
|
||||
ClassDB::bind_method(D_METHOD("set_transform_mode", "v"), &SpineBoneData::set_transform_mode);
|
||||
|
||||
ClassDB::bind_method(D_METHOD("is_skin_required"), &SpineBoneData::is_skin_required);
|
||||
ClassDB::bind_method(D_METHOD("set_skin_required", "v"), &SpineBoneData::set_skin_required);
|
||||
|
||||
BIND_ENUM_CONSTANT(TRANSFORMMODE_NORMAL);
|
||||
BIND_ENUM_CONSTANT(TRANSFORMMODE_ONLYTRANSLATION);
|
||||
BIND_ENUM_CONSTANT(TRANSFORMMODE_NOROTATIONORREFLECTION);
|
||||
BIND_ENUM_CONSTANT(TRANSFORMMODE_NOSCALE);
|
||||
BIND_ENUM_CONSTANT(TRANSFORMMODE_NOSCALEORREFLECTION);
|
||||
ClassDB::bind_method(D_METHOD("get_color"), &SpineBoneData::get_color);
|
||||
ClassDB::bind_method(D_METHOD("set_color", "v"), &SpineBoneData::set_color);
|
||||
}
|
||||
|
||||
SpineBoneData::SpineBoneData() : bone_data(NULL) {}
|
||||
SpineBoneData::~SpineBoneData() {}
|
||||
SpineBoneData::SpineBoneData() : bone_data(nullptr) {
|
||||
}
|
||||
|
||||
SpineBoneData::~SpineBoneData() {
|
||||
}
|
||||
|
||||
int SpineBoneData::get_index() {
|
||||
SPINE_CHECK(bone_data, 0)
|
||||
return bone_data->getIndex();
|
||||
}
|
||||
|
||||
String SpineBoneData::get_bone_name() {
|
||||
SPINE_CHECK(bone_data, "")
|
||||
return bone_data->getName().buffer();
|
||||
}
|
||||
|
||||
Ref<SpineBoneData> SpineBoneData::get_parent() {
|
||||
SPINE_CHECK(bone_data, nullptr)
|
||||
auto p = bone_data->getParent();
|
||||
if (p == NULL) return NULL;
|
||||
if (p == nullptr) return nullptr;
|
||||
Ref<SpineBoneData> gd_bone_data(memnew(SpineBoneData));
|
||||
gd_bone_data->set_spine_object(p);
|
||||
return gd_bone_data;
|
||||
}
|
||||
|
||||
float SpineBoneData::get_length() {
|
||||
SPINE_CHECK(bone_data, 0)
|
||||
return bone_data->getLength();
|
||||
}
|
||||
|
||||
void SpineBoneData::set_length(float v) {
|
||||
SPINE_CHECK(bone_data,)
|
||||
bone_data->setLength(v);
|
||||
}
|
||||
|
||||
float SpineBoneData::get_x() {
|
||||
SPINE_CHECK(bone_data, 0)
|
||||
return bone_data->getX();
|
||||
}
|
||||
|
||||
void SpineBoneData::set_x(float v) {
|
||||
SPINE_CHECK(bone_data,)
|
||||
bone_data->setX(v);
|
||||
}
|
||||
|
||||
float SpineBoneData::get_y() {
|
||||
SPINE_CHECK(bone_data, 0)
|
||||
return bone_data->getY();
|
||||
}
|
||||
|
||||
void SpineBoneData::set_y(float v) {
|
||||
SPINE_CHECK(bone_data,)
|
||||
bone_data->setY(v);
|
||||
}
|
||||
|
||||
float SpineBoneData::get_rotation() {
|
||||
SPINE_CHECK(bone_data, 0)
|
||||
return bone_data->getRotation();
|
||||
}
|
||||
|
||||
void SpineBoneData::set_rotation(float v) {
|
||||
SPINE_CHECK(bone_data,)
|
||||
bone_data->setRotation(v);
|
||||
}
|
||||
|
||||
float SpineBoneData::get_scale_x() {
|
||||
SPINE_CHECK(bone_data, 0)
|
||||
return bone_data->getScaleX();
|
||||
}
|
||||
|
||||
void SpineBoneData::set_scale_x(float v) {
|
||||
SPINE_CHECK(bone_data,)
|
||||
bone_data->setScaleX(v);
|
||||
}
|
||||
|
||||
float SpineBoneData::get_scale_y() {
|
||||
SPINE_CHECK(bone_data, 0)
|
||||
return bone_data->getScaleY();
|
||||
}
|
||||
|
||||
void SpineBoneData::set_scale_y(float v) {
|
||||
SPINE_CHECK(bone_data,)
|
||||
bone_data->setScaleY(v);
|
||||
}
|
||||
|
||||
float SpineBoneData::get_shear_x() {
|
||||
SPINE_CHECK(bone_data, 0)
|
||||
return bone_data->getShearX();
|
||||
}
|
||||
|
||||
void SpineBoneData::set_shear_x(float v) {
|
||||
SPINE_CHECK(bone_data,)
|
||||
bone_data->setShearX(v);
|
||||
}
|
||||
|
||||
float SpineBoneData::get_shear_y() {
|
||||
SPINE_CHECK(bone_data, 0)
|
||||
return bone_data->getShearY();
|
||||
}
|
||||
|
||||
void SpineBoneData::set_shear_y(float v) {
|
||||
SPINE_CHECK(bone_data,)
|
||||
bone_data->setShearY(v);
|
||||
}
|
||||
|
||||
SpineBoneData::TransformMode SpineBoneData::get_transform_mode() {
|
||||
auto tm = (int) bone_data->getTransformMode();
|
||||
return (TransformMode) tm;
|
||||
SpineConstant::TransformMode SpineBoneData::get_transform_mode() {
|
||||
SPINE_CHECK(bone_data, SpineConstant::TransformMode::TransformMode_Normal)
|
||||
return (SpineConstant::TransformMode) bone_data->getTransformMode();
|
||||
}
|
||||
void SpineBoneData::set_transform_mode(TransformMode v) {
|
||||
auto tm = (int) v;
|
||||
bone_data->setTransformMode((spine::TransformMode) tm);
|
||||
|
||||
void SpineBoneData::set_transform_mode(SpineConstant::TransformMode v) {
|
||||
SPINE_CHECK(bone_data,)
|
||||
bone_data->setTransformMode((spine::TransformMode) v);
|
||||
}
|
||||
|
||||
bool SpineBoneData::is_skin_required() {
|
||||
SPINE_CHECK(bone_data, false)
|
||||
return bone_data->isSkinRequired();
|
||||
}
|
||||
|
||||
void SpineBoneData::set_skin_required(bool v) {
|
||||
SPINE_CHECK(bone_data,)
|
||||
bone_data->setSkinRequired(v);
|
||||
}
|
||||
|
||||
Color SpineBoneData::get_color() {
|
||||
SPINE_CHECK(bone_data, Color())
|
||||
auto color = bone_data->getColor();
|
||||
return Color(color.r, color.g, color.b, color.a);
|
||||
}
|
||||
|
||||
void SpineBoneData::set_color(Color color) {
|
||||
SPINE_CHECK(bone_data,)
|
||||
bone_data->getColor().set(color.r, color.g, color.b, color.a);
|
||||
}
|
||||
@ -30,9 +30,12 @@
|
||||
#ifndef GODOT_SPINEBONEDATA_H
|
||||
#define GODOT_SPINEBONEDATA_H
|
||||
|
||||
#include "core/variant_parser.h"
|
||||
#include "core/reference.h"
|
||||
#include "SpineConstant.h"
|
||||
|
||||
#include <spine/spine.h>
|
||||
namespace spine {
|
||||
class BoneData;
|
||||
}
|
||||
|
||||
class SpineBoneData : public Reference {
|
||||
GDCLASS(SpineBoneData, Reference);
|
||||
@ -47,20 +50,9 @@ public:
|
||||
SpineBoneData();
|
||||
~SpineBoneData();
|
||||
|
||||
inline void set_spine_object(spine::BoneData *b) {
|
||||
bone_data = b;
|
||||
}
|
||||
inline spine::BoneData *get_spine_object() {
|
||||
return bone_data;
|
||||
}
|
||||
void set_spine_object(spine::BoneData *_bone_data) { bone_data = _bone_data; }
|
||||
|
||||
enum TransformMode {
|
||||
TRANSFORMMODE_NORMAL = 0,
|
||||
TRANSFORMMODE_ONLYTRANSLATION,
|
||||
TRANSFORMMODE_NOROTATIONORREFLECTION,
|
||||
TRANSFORMMODE_NOSCALE,
|
||||
TRANSFORMMODE_NOSCALEORREFLECTION
|
||||
};
|
||||
spine::BoneData *get_spine_object() { return bone_data; }
|
||||
|
||||
int get_index();
|
||||
|
||||
@ -69,35 +61,48 @@ public:
|
||||
Ref<SpineBoneData> get_parent();
|
||||
|
||||
float get_length();
|
||||
|
||||
void set_length(float v);
|
||||
|
||||
float get_x();
|
||||
|
||||
void set_x(float v);
|
||||
|
||||
float get_y();
|
||||
|
||||
void set_y(float v);
|
||||
|
||||
float get_rotation();
|
||||
|
||||
void set_rotation(float v);
|
||||
|
||||
float get_scale_x();
|
||||
|
||||
void set_scale_x(float v);
|
||||
|
||||
float get_scale_y();
|
||||
|
||||
void set_scale_y(float v);
|
||||
|
||||
float get_shear_x();
|
||||
|
||||
void set_shear_x(float v);
|
||||
|
||||
float get_shear_y();
|
||||
|
||||
void set_shear_y(float v);
|
||||
|
||||
TransformMode get_transform_mode();
|
||||
void set_transform_mode(TransformMode v);
|
||||
SpineConstant::TransformMode get_transform_mode();
|
||||
|
||||
void set_transform_mode(SpineConstant::TransformMode v);
|
||||
|
||||
bool is_skin_required();
|
||||
|
||||
void set_skin_required(bool v);
|
||||
|
||||
Color get_color();
|
||||
|
||||
void set_color(Color color);
|
||||
};
|
||||
|
||||
VARIANT_ENUM_CAST(SpineBoneData::TransformMode);
|
||||
#endif//GODOT_SPINEBONEDATA_H
|
||||
|
||||
@ -30,32 +30,38 @@
|
||||
#include "SpineConstant.h"
|
||||
|
||||
void SpineConstant::_bind_methods() {
|
||||
BIND_ENUM_CONSTANT(MixBlend_Setup);
|
||||
BIND_ENUM_CONSTANT(MixBlend_First);
|
||||
BIND_ENUM_CONSTANT(MixBlend_Replace);
|
||||
BIND_ENUM_CONSTANT(MixBlend_Add);
|
||||
BIND_ENUM_CONSTANT(MixBlend_Setup)
|
||||
BIND_ENUM_CONSTANT(MixBlend_First)
|
||||
BIND_ENUM_CONSTANT(MixBlend_Replace)
|
||||
BIND_ENUM_CONSTANT(MixBlend_Add)
|
||||
|
||||
BIND_ENUM_CONSTANT(MixDirection_In);
|
||||
BIND_ENUM_CONSTANT(MixDirection_Out);
|
||||
BIND_ENUM_CONSTANT(MixDirection_In)
|
||||
BIND_ENUM_CONSTANT(MixDirection_Out)
|
||||
|
||||
BIND_ENUM_CONSTANT(Property_Rotate);
|
||||
BIND_ENUM_CONSTANT(Property_X);
|
||||
BIND_ENUM_CONSTANT(Property_Y);
|
||||
BIND_ENUM_CONSTANT(Property_ScaleX);
|
||||
BIND_ENUM_CONSTANT(Property_ScaleY);
|
||||
BIND_ENUM_CONSTANT(Property_ShearX);
|
||||
BIND_ENUM_CONSTANT(Property_ShearY);
|
||||
BIND_ENUM_CONSTANT(Property_Rgb);
|
||||
BIND_ENUM_CONSTANT(Property_Alpha);
|
||||
BIND_ENUM_CONSTANT(Property_Rgb2);
|
||||
BIND_ENUM_CONSTANT(Property_Attachment);
|
||||
BIND_ENUM_CONSTANT(Property_Deform);
|
||||
BIND_ENUM_CONSTANT(Property_Event);
|
||||
BIND_ENUM_CONSTANT(Property_DrawOrder);
|
||||
BIND_ENUM_CONSTANT(Property_IkConstraint);
|
||||
BIND_ENUM_CONSTANT(Property_TransformConstraint);
|
||||
BIND_ENUM_CONSTANT(Property_PathConstraintPosition);
|
||||
BIND_ENUM_CONSTANT(Property_PathConstraintSpacing);
|
||||
BIND_ENUM_CONSTANT(Property_PathConstraintMix);
|
||||
BIND_ENUM_CONSTANT(Property_Sequence);
|
||||
BIND_ENUM_CONSTANT(Property_Rotate)
|
||||
BIND_ENUM_CONSTANT(Property_X)
|
||||
BIND_ENUM_CONSTANT(Property_Y)
|
||||
BIND_ENUM_CONSTANT(Property_ScaleX)
|
||||
BIND_ENUM_CONSTANT(Property_ScaleY)
|
||||
BIND_ENUM_CONSTANT(Property_ShearX)
|
||||
BIND_ENUM_CONSTANT(Property_ShearY)
|
||||
BIND_ENUM_CONSTANT(Property_Rgb)
|
||||
BIND_ENUM_CONSTANT(Property_Alpha)
|
||||
BIND_ENUM_CONSTANT(Property_Rgb2)
|
||||
BIND_ENUM_CONSTANT(Property_Attachment)
|
||||
BIND_ENUM_CONSTANT(Property_Deform)
|
||||
BIND_ENUM_CONSTANT(Property_Event)
|
||||
BIND_ENUM_CONSTANT(Property_DrawOrder)
|
||||
BIND_ENUM_CONSTANT(Property_IkConstraint)
|
||||
BIND_ENUM_CONSTANT(Property_TransformConstraint)
|
||||
BIND_ENUM_CONSTANT(Property_PathConstraintPosition)
|
||||
BIND_ENUM_CONSTANT(Property_PathConstraintSpacing)
|
||||
BIND_ENUM_CONSTANT(Property_PathConstraintMix)
|
||||
BIND_ENUM_CONSTANT(Property_Sequence)
|
||||
|
||||
BIND_ENUM_CONSTANT(TransformMode_Normal)
|
||||
BIND_ENUM_CONSTANT(TransformMode_OnlyTranslation)
|
||||
BIND_ENUM_CONSTANT(TransformMode_NoRotationOrReflection)
|
||||
BIND_ENUM_CONSTANT(TransformMode_NoScale)
|
||||
BIND_ENUM_CONSTANT(TransformMode_NoScaleOrReflection)
|
||||
}
|
||||
|
||||
@ -73,10 +73,19 @@ public:
|
||||
Property_PathConstraintMix = 1 << 18,
|
||||
Property_Sequence = 1 << 19
|
||||
};
|
||||
|
||||
enum TransformMode {
|
||||
TransformMode_Normal = 0,
|
||||
TransformMode_OnlyTranslation,
|
||||
TransformMode_NoRotationOrReflection,
|
||||
TransformMode_NoScale,
|
||||
TransformMode_NoScaleOrReflection
|
||||
};
|
||||
};
|
||||
|
||||
VARIANT_ENUM_CAST(SpineConstant::MixBlend);
|
||||
VARIANT_ENUM_CAST(SpineConstant::MixDirection);
|
||||
VARIANT_ENUM_CAST(SpineConstant::PropertyId);
|
||||
VARIANT_ENUM_CAST(SpineConstant::TransformMode);
|
||||
|
||||
#endif//GODOT_SPINECONSTANT_H
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user