Adding ViroKit. Needs AWSCore :(

This commit is contained in:
John Lyon-Smith
2018-03-27 17:46:15 -07:00
parent 2ab15e7dc1
commit 02e06dface
844 changed files with 86921 additions and 21 deletions

View File

@@ -0,0 +1,83 @@
//
// VROARHitTestResult.h
// ViroRenderer
//
// Created by Raj Advani on 6/12/17.
// Copyright © 2017 Viro Media. All rights reserved.
//
#ifndef VROARHitTestResult_h
#define VROARHitTestResult_h
#include <stdio.h>
#include "VROARAnchor.h"
/*
Types of hit test results:
ExistingPlaneUsingExtent: Hit test found a plane for which we have an anchor,
and the hit location was within the plane's estimated
extent.
ExistingPlane: Hit test found a plane for which we have an anchor, but our hit
test did not take into account the estimated extent. The hit point
may be outside the actual extent of the surface.
EstimatedHorizontalPlane: Hit test found a plane, but one for which we have no
anchor.
Feature Point: Hit test found a point that the AR session believes is part of a
continuous surface. This surface may not be horizontal.
*/
enum class VROARHitTestResultType {
ExistingPlaneUsingExtent,
ExistingPlane,
EstimatedHorizontalPlane,
FeaturePoint,
};
/*
Return value of AR hit tests. AR hit tests determine anchors or
less defined features the user hits in the camera view.
*/
class VROARHitTestResult {
public:
VROARHitTestResult(VROARHitTestResultType type, std::shared_ptr<VROARAnchor> anchor, float distance,
VROMatrix4f worldTransform, VROMatrix4f localTransform) :
_type(type), _anchor(anchor), _distance(distance), _worldTransform(worldTransform), _localTransform(localTransform) {}
/*
Get the type of hit test result.
*/
VROARHitTestResultType getType() const { return _type; }
/*
Return the anchor associated with the hit test, if any.
*/
const std::shared_ptr<VROARAnchor> getAnchor() const { return _anchor; }
/*
Get the distance from the camera to the hit test result.
*/
float getDistance() const { return _distance; }
/*
Get the position and orientation of the hit test result surface, in world coordinates.
*/
VROMatrix4f getWorldTransform() const { return _worldTransform; }
/*
Get the position and orientation of the hit test result surface, in the coordinate
space of the anchor. Undefined if there is no anchor associated with this result.
*/
VROMatrix4f getLocalTransform() const { return _localTransform; }
private:
VROARHitTestResultType _type;
std::shared_ptr<VROARAnchor> _anchor;
float _distance;
VROMatrix4f _worldTransform;
VROMatrix4f _localTransform;
};
#endif /* VROARHitTestResult_h */