diff options
| author | Saracen | 2015-11-18 23:18:10 +0000 |
|---|---|---|
| committer | Saracen | 2015-11-18 23:18:10 +0000 |
| commit | dd00452997122029dd2f74a278574d781fd2bf5f (patch) | |
| tree | e36f0c62cac499500724c2929100c042972d1a5c /core/variant_op.cpp | |
| parent | c1d19ad258139c73e7aa81cf6e1fbd99e1bfe38b (diff) | |
| parent | 94fdd01241749cb7a575ed5f9fa4c7bbb286901a (diff) | |
| download | godot-dd00452997122029dd2f74a278574d781fd2bf5f.tar.gz godot-dd00452997122029dd2f74a278574d781fd2bf5f.tar.zst godot-dd00452997122029dd2f74a278574d781fd2bf5f.zip | |
Diffstat (limited to 'core/variant_op.cpp')
| -rw-r--r-- | core/variant_op.cpp | 18 |
1 files changed, 16 insertions, 2 deletions
diff --git a/core/variant_op.cpp b/core/variant_op.cpp index 1cdf6d731..eabd64783 100644 --- a/core/variant_op.cpp +++ b/core/variant_op.cpp @@ -586,7 +586,21 @@ void Variant::evaluate(const Operator& p_op, const Variant& p_a, const Variant& } break; DEFAULT_OP_LOCALMEM_NUM(*,VECTOR3,Vector3); DEFAULT_OP_FAIL(PLANE); - DEFAULT_OP_FAIL(QUAT); + case QUAT: { + + switch(p_b.type) { + case VECTOR3: { + + _RETURN( reinterpret_cast<const Quat*>(p_a._data._mem)->xform( *(const Vector3*)p_b._data._mem) ); + } break; + case QUAT: { + + _RETURN( *reinterpret_cast<const Quat*>(p_a._data._mem) * *reinterpret_cast<const Quat*>(p_b._data._mem) ); + } break; + }; + r_valid=false; + return; + } break; DEFAULT_OP_FAIL(_AABB); case MATRIX3: { @@ -2573,7 +2587,7 @@ bool Variant::in(const Variant& p_index, bool *r_valid) const { String idx=p_index; const String *str=reinterpret_cast<const String*>(_data._mem); - return str->find("idx")!=-1; + return str->find(idx)!=-1; } } break; |
