| OLD | NEW |
| 1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "modules/vr/VRPose.h" | 5 #include "modules/vr/VRPose.h" |
| 6 | 6 |
| 7 namespace blink { | 7 namespace blink { |
| 8 | 8 |
| 9 namespace { | 9 namespace { |
| 10 | 10 |
| 11 DOMFloat32Array* vecToFloat32Array(const mojom::blink::VRVector4Ptr& vec) | 11 DOMFloat32Array* mojoArrayToFloat32Array(const mojo::WTFArray<float>& vec) |
| 12 { | 12 { |
| 13 if (!vec.is_null()) { | 13 if (vec.is_null()) |
| 14 DOMFloat32Array* out = DOMFloat32Array::create(4); | 14 return nullptr; |
| 15 out->data()[0] = vec->x; | |
| 16 out->data()[1] = vec->y; | |
| 17 out->data()[2] = vec->z; | |
| 18 out->data()[3] = vec->w; | |
| 19 return out; | |
| 20 } | |
| 21 return nullptr; | |
| 22 } | |
| 23 | 15 |
| 24 DOMFloat32Array* vecToFloat32Array(const mojom::blink::VRVector3Ptr& vec) | 16 return DOMFloat32Array::create(&(vec.front()), vec.size()); |
| 25 { | |
| 26 if (!vec.is_null()) { | |
| 27 DOMFloat32Array* out = DOMFloat32Array::create(3); | |
| 28 out->data()[0] = vec->x; | |
| 29 out->data()[1] = vec->y; | |
| 30 out->data()[2] = vec->z; | |
| 31 return out; | |
| 32 } | |
| 33 return nullptr; | |
| 34 } | 17 } |
| 35 | 18 |
| 36 } // namespace | 19 } // namespace |
| 37 | 20 |
| 38 VRPose::VRPose() | 21 VRPose::VRPose() |
| 39 : m_timeStamp(0.0) | 22 : m_timeStamp(0.0) |
| 40 { | 23 { |
| 41 } | 24 } |
| 42 | 25 |
| 43 void VRPose::setPose(const mojom::blink::VRSensorStatePtr& state) | 26 void VRPose::setPose(const mojom::blink::VRPosePtr& state) |
| 44 { | 27 { |
| 45 if (state.is_null()) | 28 if (state.is_null()) |
| 46 return; | 29 return; |
| 47 | 30 |
| 48 m_timeStamp = state->timestamp; | 31 m_timeStamp = state->timestamp; |
| 49 m_orientation = vecToFloat32Array(state->orientation); | 32 m_orientation = mojoArrayToFloat32Array(state->orientation); |
| 50 m_position = vecToFloat32Array(state->position); | 33 m_position = mojoArrayToFloat32Array(state->position); |
| 51 m_angularVelocity = vecToFloat32Array(state->angularVelocity); | 34 m_angularVelocity = mojoArrayToFloat32Array(state->angularVelocity); |
| 52 m_linearVelocity = vecToFloat32Array(state->linearVelocity); | 35 m_linearVelocity = mojoArrayToFloat32Array(state->linearVelocity); |
| 53 m_angularAcceleration = vecToFloat32Array(state->angularAcceleration); | 36 m_angularAcceleration = mojoArrayToFloat32Array(state->angularAcceleration); |
| 54 m_linearAcceleration = vecToFloat32Array(state->linearAcceleration); | 37 m_linearAcceleration = mojoArrayToFloat32Array(state->linearAcceleration); |
| 55 } | 38 } |
| 56 | 39 |
| 57 DEFINE_TRACE(VRPose) | 40 DEFINE_TRACE(VRPose) |
| 58 { | 41 { |
| 59 visitor->trace(m_orientation); | 42 visitor->trace(m_orientation); |
| 60 visitor->trace(m_position); | 43 visitor->trace(m_position); |
| 61 visitor->trace(m_angularVelocity); | 44 visitor->trace(m_angularVelocity); |
| 62 visitor->trace(m_linearVelocity); | 45 visitor->trace(m_linearVelocity); |
| 63 visitor->trace(m_angularAcceleration); | 46 visitor->trace(m_angularAcceleration); |
| 64 visitor->trace(m_linearAcceleration); | 47 visitor->trace(m_linearAcceleration); |
| 65 } | 48 } |
| 66 | 49 |
| 67 } // namespace blink | 50 } // namespace blink |
| OLD | NEW |