// Copyright 2017 The Fuchsia Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. library fuchsia.ui.gfx; // Describes where a hit occurred within the content of a node tagged // by this session. // // To compute the point of intersection within the node's local coordinate // system, perform the following calculation using the ray which was // originally passed to |Session.HitTest()|. // // hit_point = ray.origin + (hit.distance * ray.direction) // local_point = hit.inverse_transform * hit_point struct Hit { // The node's tag value. uint32 tag_value; // The origin of the ray that was used for the hit test, in the hit // node's coordinate system. vec4 ray_origin; // The direction of the ray that was used for the hit test, in the hit // node's coordinate system. vec4 ray_direction; // The inverse transformation matrix which maps the coordinate system of // the node at which the hit test was initiated into the local coordinate // system of the node which was hit. mat4 inverse_transform; // The distance from the ray's origin to the closest point of intersection // in multiples of the ray's direction vector. float32 distance; };