Merge pull request #12811 from Chaosus/quadsize

Add size to QuadMesh
This commit is contained in:
Rémi Verschelde 2017-11-13 22:42:32 +01:00 committed by GitHub
commit f3d812e3a0
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 30 additions and 13 deletions

View file

@ -1299,14 +1299,16 @@ void QuadMesh::_create_mesh_array(Array &p_arr) const {
tangents.resize(4 * 4);
uvs.resize(4);
for (int i = 0; i < 4; i++) {
Vector2 _size = Vector2(size.x / 2.0f, size.y / 2.0f);
static const Vector3 quad_faces[4] = {
Vector3(-1, -1, 0),
Vector3(-1, 1, 0),
Vector3(1, 1, 0),
Vector3(1, -1, 0),
};
Vector3 quad_faces[4] = {
Vector3(-_size.x, -_size.y, 0),
Vector3(-_size.x, _size.y, 0),
Vector3(_size.x, _size.y, 0),
Vector3(_size.x, -_size.y, 0),
};
for (int i = 0; i < 4; i++) {
faces.set(i, quad_faces[i]);
normals.set(i, Vector3(0, 0, 1));
@ -1325,18 +1327,30 @@ void QuadMesh::_create_mesh_array(Array &p_arr) const {
uvs.set(i, quad_uv[i]);
}
p_arr[ARRAY_VERTEX] = faces;
p_arr[ARRAY_NORMAL] = normals;
p_arr[ARRAY_TANGENT] = tangents;
p_arr[ARRAY_TEX_UV] = uvs;
p_arr[VS::ARRAY_VERTEX] = faces;
p_arr[VS::ARRAY_NORMAL] = normals;
p_arr[VS::ARRAY_TANGENT] = tangents;
p_arr[VS::ARRAY_TEX_UV] = uvs;
};
void QuadMesh::_bind_methods() {
// nothing here yet...
ClassDB::bind_method(D_METHOD("set_size", "size"), &QuadMesh::set_size);
ClassDB::bind_method(D_METHOD("get_size"), &QuadMesh::get_size);
ADD_PROPERTY(PropertyInfo(Variant::VECTOR2, "size"), "set_size", "get_size");
}
QuadMesh::QuadMesh() {
primitive_type = PRIMITIVE_TRIANGLE_FAN;
size = Size2(1.0, 1.0);
}
void QuadMesh::set_size(const Size2 &p_size) {
size = p_size;
_request_update();
}
Size2 QuadMesh::get_size() const {
return size;
}
/**

View file

@ -263,7 +263,7 @@ class QuadMesh : public PrimitiveMesh {
GDCLASS(QuadMesh, PrimitiveMesh)
private:
// nothing? really? Maybe add size some day atleast... :)
Size2 size;
protected:
static void _bind_methods();
@ -271,6 +271,9 @@ protected:
public:
QuadMesh();
void set_size(const Size2 &p_size);
Size2 get_size() const;
};
/**