third-party-mirror / fuchsia-benchmarks / 4d8f191f6f9b09beca24415d898f0c31e2b8db44 / . / third_party / fuchsia-sdk / fidl / fuchsia.ui.gfx / hit.fidl

// 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; | |

}; |