<?xml version="1.0"?>
<doc>
    <assembly>
        <name>eudk</name>
    </assembly>
    <members>
        <member name="M:Google.EUDK.Assertions.DAssert(System.Boolean,System.String)">
            <summary>Assertion wrapper function that's only executed in development builds.</summary>
            <param name="condition">The condition that needs to be true.</param>
            <param name="message">The message to log.</param>
        </member>
        <member name="M:Google.EUDK.Assertions.RAssert(System.Boolean,System.String)">
            <summary>
            Assertion wrapper function that's executed in release and development builds.
            </summary>
            <param name="message">The message to log.</param>
        </member>
        <member name="T:Google.EUDK.GeoTransform">
            <summary>
            Geo Transform class to provide latitude, longitude and altitude based control over game
            objects.
            </summary>
            <remarks>TODO(mscharer): Add rotation calculations to all operations.</remarks>
        </member>
        <member name="F:Google.EUDK.GeoTransform._relocationService">
            <summary>
            Reference to the relocation service.
            </summary>
        </member>
        <member name="F:Google.EUDK.GeoTransform._altitude">
            <summary>
            The altitude in meters.
            </summary>
        </member>
        <member name="F:Google.EUDK.GeoTransform._globeFromGeoTransform">
            <summary>
            Transformation matrix between globe and this GeoTransform to update the transform based on
            EUDKPlugin._StartFromGlobe, respecting changes to viewer scale, heading, anchor offsets and
            the start space's Lla
            </summary>
        </member>
        <member name="F:Google.EUDK.GeoTransform._latitude">
            <summary>
            The latitude in degrees.
            </summary>
        </member>
        <member name="F:Google.EUDK.GeoTransform._longitude">
            <summary>
            The longitude in degrees.
            </summary>
        </member>
        <member name="F:Google.EUDK.GeoTransform._geoOrientation">
            <summary>
            The orientation of this GeoTransform relative to the current East-Up-North reference frame.
            </summary>
            <remarks>
            The unity world-space orientation of said East-Up-North reference frame is cached in
            _cachedGeoFrameOrientationInUnityWorldSpace.
            </remarks>
        </member>
        <member name="F:Google.EUDK.GeoTransform._cachedGeoFrameOrientationInUnityWorldSpace">
            <summary>
            The cached orientation of the local East-Up-North reference frame in unity world-space. This
            cache is updated whenever the latitude and/or longitude of this GeoTransform change, as well
            as during a relocation event. We cache this frame here such that multiple calls to
            SetGeoOrientation will not recompute this frame every time.
            </summary>
        </member>
        <!-- Badly formed XML comment ignored for member "F:Google.EUDK.GeoTransform._transform" -->
        <member name="M:Google.EUDK.GeoTransform.SetGeoLocation(System.Double,System.Double,System.Double)">
            <summary>
            Sets this GeoTransform's new location for all 3 geo coordinates in a single step.
            </summary>
            <param name="latitude">The GeoTransform's new latitude in degrees.</param>
            <param name="longitude">The GeoTransform's new longitude in degrees.</param>
            <param name="altitude">The GeoTransform's new altitude in meters.</param>
            <returns>
            Returns <c>true</c>, if the longitude was altered by +/-180 degrees due to exceeding
            latitude -90 / 90 degrees.
            </returns>
        </member>
        <member name="M:Google.EUDK.GeoTransform.SetGeoOrientation(UnityEngine.Quaternion)">
            <summary>
            Sets this GeoTransform's new geoOrientation, which is a quaternion describing the
            orientation of the object relative to the East-Up-North reference frame at its current
            LLA location.
            </summary>
            <param name="geoOrientation">
            The new orientation of this GameObject relative to the local
            East-Up-North reference frame.
            </param>
        </member>
        <member name="M:Google.EUDK.GeoTransform.TransformUnityWorldDirectionToLLADirection(Google.EUDK.Vector3d,System.Double@,System.Double@,System.Double@)">
            <summary>
            Transform a direction vector from Unity world coordinates to LLA coordinates at the LLA
            location of this GeoTransform.
            </summary>
            <param name="worldDirection">The direction vector in Unity world space.</param>
            <param name="latitudeDelta">Latitude component in degrees of the direction in LLA space.</param>
            <param name="longitudeDelta">Longitude compoment in degrees of the direction in LLA space.</param>
            <param name="altitudeDelta">Altitude component in meters of the direction in LLA space.</param>
            <remarks>
            If the output values of this method are used as arguments for GeoTransform.Translate, this
            GeoTransform's new LLA location will be such that, if transformed to Unity world space, the
            new world position is the same as if the original worldDirection would have been used as
            argument for UnityEngine.Transform.Translate(). The difference is that, by translating in
            LLA space, the LLA relative orientation will be preserved.
            </remarks>
        </member>
        <member name="M:Google.EUDK.GeoTransform.Translate(System.Double,System.Double,System.Double)">
            <summary>
            Translates the GeoTransform by a given amount in LLA. Translate will automatically handle
            the wrapping of latitude to [-90,90] and longitude to [-180,180].
            </summary>
            <param name="latitudeDelta">
            The latitude difference in degrees by which to translate the GeoTransform.
            </param>
            <param name="longitudeDelta">
            The longitude difference in degrees by which to translate the GeoTransform.
            </param>
            <param name="altitudeDelta">
            The altitude difference in meters by which to translate the GeoTransform.
            </param>
            <returns>
            Returns <c>true</c>, if the heading towards north was rotated by 180 degrees due to crossing
            the north or south pole (latitude +- 90).
            </returns>
        </member>
        <member name="M:Google.EUDK.GeoTransform.UpdateGeoTransformFromUnityTransform(System.Boolean,System.Boolean)">
            <summary>
            Updates this GeoTransforms LLA coordinates and geoOrientation based on the current
            Unity.Transform of this object.
            </summary>
            <param name="updateLocation">
            Whether to update the LLA location based on the Unity Transform. Only set this to false
            when you are going to overwrite _longitude, _latitude and _altitude right after this call.
            </param>
            <param name="updateOrientation">
            Whether to update _geoOrientation based on the Unity Transform. Only set this to false
            when you are going to overwrite _geoOrientation right after this call.
            </param>
        </member>
        <member name="M:Google.EUDK.GeoTransform.InitializeGeoTransform">
            <summary>
            Initializes this geo transform.
            </summary>
        </member>
        <member name="M:Google.EUDK.GeoTransform.UpdateGlobeFromGeo">
            <summary>
            Updates the globeFromGeoTransform matrix.
            </summary>
        </member>
        <member name="M:Google.EUDK.GeoTransform.WrapLla(System.Double,System.Double,System.Double,System.Double@,System.Double@,System.Double@)">
            <summary>
            Wraps the provided Lla values and provides the resulting new Lla as out parameters. The
            return value is true, if the heading around the Up direction was flipped.
            </summary>
            <param name="latitude">The latitude to wrap.</param>
            <param name="longitude">The longitude to wrap.</param>
            <param name="altitude">The altitude to wrap.</param>
            <param name="newLatitude">The new, wrapped latitude.</param>
            <param name="newLongitude">The new, wrapped longitude.</param>
            <param name="newAltitude">The new, wrapped altitude.</param>
            <returns>True if the orientation around the Up direction was flipped.</returns>
        </member>
        <member name="M:Google.EUDK.GeoTransform.OnDisable">
            <summary>
            Called by Unity when this component is disabled.
            </summary>
        </member>
        <member name="M:Google.EUDK.GeoTransform.OnEnable">
            <summary>
            Called by Unity when this component is enabled.
            </summary>
        </member>
        <member name="M:Google.EUDK.GeoTransform.OnPreLocationUpdated">
            <summary>
            Called by the relocation manager before the world has been relocated.
            </summary>
        </member>
        <member name="M:Google.EUDK.GeoTransform.OnLocationUpdated">
            <summary>
            Called by the relocation manager after the world has been relocated.
            </summary>
        </member>
        <member name="P:Google.EUDK.GeoTransform.Position">
            <summary>
            True position of the GeoTransform in Unity cartesian world coordinates
            </summary>
            <returns>The GeoTransform position</returns>
        </member>
        <member name="P:Google.EUDK.GeoTransform.Altitude">
            <summary>
            Gets and sets the GameObject's altitude in meters in LLA space.
            </summary>
            <returns>The altitude in meters.</returns>
        </member>
        <member name="P:Google.EUDK.GeoTransform.Latitude">
            <summary>
            Gets and sets the GameObject's latitude in degrees in LLA space.
            </summary>
            <returns>The latitude in degrees.</returns>
        </member>
        <member name="P:Google.EUDK.GeoTransform.Longitude">
            <summary>
            Gets and sets the GameObject's longitude in degrees in LLA space.
            </summary>
            <returns>The longitude in degrees.</returns>
        </member>
        <member name="P:Google.EUDK.GeoTransform.GeoOrientation">
            <summary>
            Gets and sets the GameObject's geoOrientation, which is a quaternion describing the
            orientation of the object relative to the East-Up-North reference frame at its current
            LLA location.
            </summary>
        </member>
        <member name="T:Google.EUDK.MoveGeoTransformInLLA">
            <summary>
            Component to move a GeoTransform in LLA coordinates. The component uses Time.deltaTime to
            calculate the change per frame to apply.
            </summary>
        </member>
        <member name="F:Google.EUDK.MoveGeoTransformInLLA._LatitudePerSecond">
            <summary>
            The amount in degrees by which the latitude shall change per second.
            </summary>
        </member>
        <member name="F:Google.EUDK.MoveGeoTransformInLLA._LongitudePerSecond">
            <summary>
            The amount in degrees by which the longitude shall change per second.
            </summary>
        </member>
        <member name="F:Google.EUDK.MoveGeoTransformInLLA._AltitudePerSecond">
            <summary>
            The amount in meters by which the altitude shall change per second.
            </summary>
        </member>
        <member name="F:Google.EUDK.MoveGeoTransformInLLA._transform">
            <summary>
            Cached reference to the Transform component on this game object for fast access.
            </summary>
        </member>
        <member name="F:Google.EUDK.MoveGeoTransformInLLA._geoTransform">
            <summary>
            Cached reference to the GeoTransform component on this game object for fast access.
            </summary>
        </member>
        <member name="M:Google.EUDK.MoveGeoTransformInLLA.OnEnable">
            <summary>
            Called by Unity upon activation of this component.
            </summary>
        </member>
        <member name="M:Google.EUDK.MoveGeoTransformInLLA.OnDisable">
            <summary>
            Called by Unity upon deactivation of this component.
            </summary>
        </member>
        <member name="M:Google.EUDK.MoveGeoTransformInLLA.Start">
            <summary>
            Called by Unity upon initialization of this component.
            </summary>
        </member>
        <member name="M:Google.EUDK.MoveGeoTransformInLLA.OnLateUpdate">
            <summary>
            Called at the end of Unity's main loop prior to rendering. Used to calculate if a world
            relocation is required.
            </summary>
        </member>
        <member name="T:Google.EUDK.CoordinateSpaceTransformations">
            <summary>
            Unity class to calculate coordinate space transformations between different coordinate spaces.
            </summary>
        </member>
        <member name="M:Google.EUDK.CoordinateSpaceTransformations.GetGeoLocationFromWorldPosition(Google.EUDK.Vector3d,System.Double@,System.Double@,System.Double@)">
            <summary>
            Gets the geo location of a transform in Unity world space.
            </summary>
            <param name="position">The Unity world position to convert into Lla space.</param>
            <param name="latitude">The latitude in degrees for this position in Lla space.</param>
            <param name="longitude">The longitude in degrees for this position in Lla space.</param>
            <param name="altitude">The altitude in meters for this position in Lla space.</param>
        </member>
        <member name="M:Google.EUDK.CoordinateSpaceTransformations.GetWorldPositionFromGeoLocation(System.Double,System.Double,System.Double)">
            <summary>
            Gets the world position of a set of latitude, longitude and altitude in Lla space.
            </summary>
            <param name="latitude">The desired Lla space latitude in degrees.</param>
            <param name="longitude">The desired Lla spacelongitude in degrees.</param>
            <param name="altitude">The desired Lla spacelatitude in meters.</param>
        </member>
        <member name="M:Google.EUDK.CoordinateSpaceTransformations.GetWorldspaceReferenceFrameOrientationFromGeoLocation(System.Double,System.Double)">
            <summary>
            Returns a quaternion that encodes the current Unity world-space orientation of the
            East-Up-North reference frame at the given lat/long. The particular axis order
            (East-Up-North) is chosen such that, if applied to a regular unity Transform, the
            GameObjects' local X axis will point east, the Y axis will point towards the sky and the
            Z axis will point north.
            </summary>
            <param name="latitude">The LLA space latitude in degrees.</param>
            <param name="longitude">The LLA space longitude in degrees.</param>
            <returns>
            A quaternion q for which the following holds:
            q * Vector3.right equals a unit vector in unity world space that points east at the
            given latitude/longitude.
            q * Vector3.up equals a unit vector in unity world space that points skywards at the
            given latitude/longitude.
            q * Vector3.forward equals a unit vector in unity world space that points north at the
            given latitude/longitude.
            </returns>
        </member>
        <member name="T:Google.EUDK.DebugOutputDelegate">
            <summary>
            Debug output delegate for debug output pushed from the EUDK native plugin to Unity.
            </summary>
            <param name="str">The debug message written to the unity log.</param>
        </member>
        <member name="T:Google.EUDK.RockNodeRemoveCallbackDelegate">
            <summary>
            Callback called by the EUDK native plugin to remove RockNodes from Unity.
            </summary>
            <param name="nodePath">The node path of the RockNode.</param>
        </member>
        <member name="T:Google.EUDK.RockNodeProtoCallbackDelegate">
            <summary>
            Callback called by the EUDK native plugin to push rock proto buffers into Unity.
            </summary>
            <param name="data">The proto buffer data.</param>
            <param name="sizeInBytes">Size of the proto buffer data.</param>
            <param name="url">The url of the rock node.</param>
            <param name="nodePath">The node path of the RockNode.</param>
        </member>
        <member name="T:Google.EUDK.RockNodeMeshCallbackDelegate">
            <summary>
            Callback called by the EUDK native plugin to push RockMeshes into Unity.
            </summary>
            <param name="data">Pointer to ProtoRockStruct struct that cointains RockMesh data.</param>
            <param name="url">The url of the rock node.</param>
            <param name="nodePath">The node path of the RockNode.</param>
        </member>
        <member name="T:Google.EUDK.UpDirection">
            <summary>
            Represents the up direction of the EUDK native plugin coordinate space.
            </summary>
            <remarks>
            The definition of the enum values need to match the same enum in plugin binary.
            </remarks>
        </member>
        <member name="F:Google.EUDK.UpDirection.SKY">
            <summary>
            The up direction points to the sky. That is the inverse of the gravity.
            </summary>
        </member>
        <member name="F:Google.EUDK.UpDirection.LOCAL_NORTH">
            <summary>
            The up direction points to the local north, used for maps for example.
            </summary>
        </member>
        <member name="T:Google.EUDK.EUDKNativeBindings">
            <summary>Bindings to native EUDKPlugin for EUDK.</summary>
        </member>
        <member name="F:Google.EUDK.EUDKNativeBindings.DLL_NAME">
            <summary>
            The native plugin's library name used for DllImport.
            </summary>
        </member>
        <member name="F:Google.EUDK.EUDKNativeBindings.EPOCH">
            <summary>
            The epoch, representing the start point in time for timestamp calculation.
            </summary>
        </member>
        <member name="M:Google.EUDK.EUDKNativeBindings.ComputeUnityWorldFromGlobeTransform(Google.EUDK.EUDKNativeBindings.GeoView)">
            <summary>
            Computes the new transformation matrix that maps from Globe coordinates to Unity world
            coordinates based on a geoView that encodes the new start space coordinates.
            </summary>
            <param name="geoView">The geo view containing the geo view we want to convert.</param>
            <returns>The resulting Matrix4x4d transformation matrix.</returns>
        </member>
        <member name="M:Google.EUDK.EUDKNativeBindings.GetGeoLocationFromPointInWorldSpace(Google.EUDK.Vector3d,System.Double@,System.Double@,System.Double@)">
            <summary>
            Calculates LLA coordinates from a point in Unity world space. This function is relative to
            the EUDK native plugin anchor.
            </summary>
            <param name="pointInWorldSpace">The point in Unity World space we want to convert.</param>
            <param name="latitudeDegrees">Latitude in degrees for the specified world space.</param>
            <param name="longitudeDegrees">Longitude in degrees for the specified world space.</param>
            <param name="altitudeMeters">Altitude in meters for the specified world space.</param>
        </member>
        <member name="M:Google.EUDK.EUDKNativeBindings.GetPointInWorldSpaceFromGeoLocation(System.Double,System.Double,System.Double)">
            <summary>
            Calculates a point in Unity world coordinates from given LLA coordinates. This function is
            relative to the EUDK native plugin anchor.
            </summary>
            <param name="latitudeDegrees">Latitude in degrees we want to convert.</param>
            <param name="longitudeDegrees">Longitude in degrees we want to convert.</param>
            <param name="altitudeMeters">Altitude in meters we want to convert.</param>
            <returns>The resulting point in Unity world coordinates.</returns>
        </member>
        <member name="M:Google.EUDK.EUDKNativeBindings.GetNorthEastSkyVectorsInUnityWorldSpaceFromGeoLocation(System.Double,System.Double,System.Double,Google.EUDK.Vector3d@,Google.EUDK.Vector3d@,Google.EUDK.Vector3d@)">
            <summary>
            Gets the North, East and Sky unit vectors in unity world space at a specific LLA coordinate.
            </summary>
            <param name="latitudeDegrees">Latitude in degrees.</param>
            <param name="longitudeDegrees">Longitude in degrees.</param>
            <param name="altitudeMeters">Altitude over sea level in meters.</param>
            <param name="northInUnityWorldSpace">Resulting north direction in unity world space.</param>
            <param name="eastInUnityWorldSpace">Resulting east direction in unity world space.</param>
            <param name="skyInUnityWorldSpace">Resulting sky direction in unity world space.</param>
        </member>
        <member name="M:Google.EUDK.EUDKNativeBindings.IntersectWithRay(UnityEngine.Ray,System.Single@,System.Double@,System.Double@,System.Double@)">
            <summary>
            Calculates if a given ray intersects with rock mesh geometry and if so, where it
            intersected.
            </summary>
            <param name="ray">The ray for which we want to test the intersection.</param>
            <param name="distance">The distance of the intersection point from the ray.origin.</param>
            <param name="latitude_degrees">The latitude of the intersection point.</param>
            <param name="longitude_degrees">The longitude of the intersection point.</param>
            <param name="altitude_meters">The altitude of the intersection point.</param>
            <returns>Returns <c>true</c> if the ray intersected with a rock mesh.</returns>
        </member>
        <member name="M:Google.EUDK.EUDKNativeBindings.StartSpaceFromUnityWorldSpace(UnityEngine.Vector3)">
            <summary>
            Method to convert between Unity world space and GVR Start space: both spaces use real
            world meters with +Y-axis pointing upwards (reverse of gravity vector), but with opposite
            handedness.
            </summary>
            <param name="vector">The vector to convert in Unity world space.</param>
            <returns>The resulting converted coordinate in GVR start space.</returns>
        </member>
        <member name="M:Google.EUDK.EUDKNativeBindings.StartSpaceFromUnityWorldSpace(Google.EUDK.Vector3d)">
            <summary>
            Method to convert between Unity world space and GVR Start space: both spaces use real
            world meters with +Y-axis pointing upwards (reverse of gravity vector), but with opposite
            handedness.
            </summary>
            <param name="vector">The vector to convert in Unity world space.</param>
            <returns>The resulting converted coordinate in GVR start space.</returns>
        </member>
        <!-- Badly formed XML comment ignored for member "M:Google.EUDK.EUDKNativeBindings.TimestampFromDateTime(System.DateTime)" -->
        <member name="M:Google.EUDK.EUDKNativeBindings.UnityWorldSpaceFromStartSpace(UnityEngine.Vector3)">
            <summary>
            Method to convert between Unity world space and GVR Start space: both spaces use real
            world meters with +Y-axis pointing upwards (reverse of gravity vector), but with opposite
            handedness.
            </summary>
            <param name="vector">The vector to convert in GVR start space.</param>
            <returns>The resulting converted coordinate in Unity world space.</returns>
        </member>
        <member name="M:Google.EUDK.EUDKNativeBindings.UnityWorldSpaceFromStartSpace(Google.EUDK.Vector3d)">
            <summary>
            Method to convert between Unity world space and GVR Start space: both spaces use real
            world meters with +Y-axis pointing upwards (reverse of gravity vector), but with opposite
            handedness.
            </summary>
            <param name="vector">The vector to convert in GVR start space.</param>
            <returns>The resulting converted coordinate in Unity world space.</returns>
        </member>
        <member name="M:Google.EUDK.EUDKNativeBindings.ToRadians(System.Double)">
            <summary>Double precision function to convert degrees to radians.</summary>
            <param name="degrees">Degrees to convert to radians.</param>
            <returns>The radian representation for the provided degrees.</returns>
        </member>
        <member name="M:Google.EUDK.EUDKNativeBindings.ClearRequiredClipPlanes">
            <summary>
            Clears the required clip planes.
            </summary>
        </member>
        <member name="M:Google.EUDK.EUDKNativeBindings.GetApproximateTerrainElevationFromMemory(System.Double,System.Double)">
            <summary>
            Gets the approximate terrain elevation from memory for a given latitude longitude pair.
            </summary>
            <param name="latitudeDegrees">Latitude in degrees.</param>
            <param name="longitudeDegrees">Longitude in degrees.</param>
            <returns></returns>
        </member>
        <member name="M:Google.EUDK.EUDKNativeBindings.GetClipPlanesInEyeSpace(System.Single@,System.Single@)">
            <summary>
            Gets the clip planes in eye space.
            </summary>
            <param name="nearPlane">The received near plane.</param>
            <param name="farPlane">The received far plane.</param>
        </member>
        <member name="M:Google.EUDK.EUDKNativeBindings.ComputeStartFromKeyholeTransform(Google.EUDK.EUDKNativeBindings.GeoView@,System.Double[])">
            <summary>
            Computes the start space coordinates from the keyhole matrix.
            </summary>
            <param name="geoView">GeoView representing the start space coordinate.</param>
            <param name="startFromKeyholeMatrix">The keyhole matrix to convert.</param>
        </member>
        <member name="M:Google.EUDK.EUDKNativeBindings.GetAllowedClipPlanesInHeadSpace(System.Single@,System.Single@)">
            <summary>
            Gets the allowed clip planes in head space. If there is a conflict with required clipping
            planes, the allowance takes precedence i.e. the actual range used for rendering never lies
            outside of the allowed clip planes.
            </summary>
            <param name="nearPlane">The received near plane in head space.</param>
            <param name="farPlane">The received far plane in head space.</param>
        </member>
        <member name="M:Google.EUDK.EUDKNativeBindings.GetRequiredClipPlanesInHeadSpace(System.Single@,System.Single@)">
            <summary>
            Gets the required clip planes in head space. The actually used range will contain these
            planes (but may be larger), unless these required clip planes lie outside of the range
            defined by the allowed clipping planes, in which case the respective allowed clip plane
            will be used.
            </summary>
            <param name="nearPlane">The received near plane in head space.</param>
            <param name="farPlane">The received far plane in head space.</param>
        </member>
        <member name="M:Google.EUDK.EUDKNativeBindings.GetDateAndTime">
            <summary>
            Gets the current date and time of the data.
            </summary>
            <returns>Timestamp in seconds since EPOCH.</returns>
        </member>
        <member name="M:Google.EUDK.EUDKNativeBindings.GetGeoLocationFromPointInStartSpace(System.Double[],System.Double@,System.Double@,System.Double@)">
            <summary>
            Calculates the geo location from a point in start space.
            </summary>
            <remarks>
            Note this method is private since we have wrapper functions using Ray and
            Vector3 instead of float arrays.
            </remarks>
            <param name="pointInStartSpace">
            Point in start space we want to convert to geo location.
            </param>
            <param name="latitudeDegrees">Resulting points latitude in degrees.</param>
            <param name="longitudeDegrees">Resulting points longitude in degrees.</param>
            <param name="altitudeMeters">Resulting points altitude in meters.</param>
        </member>
        <member name="M:Google.EUDK.EUDKNativeBindings.GetGeoView(Google.EUDK.EUDKNativeBindings.GeoView@)">
            <summary>
            Gets the current geo view.
            </summary>
            <param name="geoView">Reference to the geo view that's to be filled with the data.</param>
        </member>
        <member name="M:Google.EUDK.EUDKNativeBindings.GetPointInStartSpaceFromGeoLocation(System.Double,System.Double,System.Double,System.Double[])">
            <summary>
            Calculates a point in start space from LLA coordinates.
            </summary>
            <remarks>
            Note this method is private since we have wrapper functions that return the point in
            Unity world space and as Vector3d rather than as double array.
            </remarks>
            <param name="latitudeDegrees">Latitude in degrees.</param>
            <param name="longitudeDegrees">Longitude in degrees.</param>
            <param name="altitudeMeters">Altitude in meters.</param>
            <param name="pointInStartSpace">Resulting points coordinates in start space.</param>
        </member>
        <member name="M:Google.EUDK.EUDKNativeBindings.GetNorthEastSkyVectorsInStartSpaceFromGeoLocation(System.Double,System.Double,System.Double,System.Double[],System.Double[],System.Double[])">
            <summary>
            Gets the North, East and Sky unit vectors in start space at specific LLA coordinates.
            </summary>
            <param name="latitudeDegrees">Latitude in degrees.</param>
            <param name="longitudeDegrees">Longitude in degrees.</param>
            <param name="altitudeMeters">Altitude over sea level in meters.</param>
            <param name="northInStartSpace">Resulting north direction in start space.</param>
            <param name="eastInStartSpace">Resulting east direction in start space.</param>
            <param name="skyInStartSpace">Resulting sky direction in start space.</param>
        </member>
        <member name="M:Google.EUDK.EUDKNativeBindings.GetRenderEventFunc">
            <summary>
            Requests the render event function from the plugin.
            </summary>
            <returns>Native pointer to the event function.</returns>
        </member>
        <member name="M:Google.EUDK.EUDKNativeBindings.GetTraversalResult(System.IntPtr@)">
            <summary>
            Fetches the currently visible traversal result from the EUDK native plugin.
            </summary>
            <param name="traversalResultPtr">
            Pointer to the  EUDKNativePluginData.TraversalResult containing the data.
            </param>
        </member>
        <member name="M:Google.EUDK.EUDKNativeBindings.OnGameObjectCreated(Google.EUDK.NodePath@)">
            <summary>
            This is invoked when the GameObject of a RockNode is created.
            </summary>
            <param name="nodePath">The node path of the RockNode.</param>
        </member>
        <member name="M:Google.EUDK.EUDKNativeBindings.InitPlugin">
            <summary>Initializes the EUDK native plugin.</summary>
            <remarks>This function is not used on Windows.</remarks>
        </member>
        <member name="M:Google.EUDK.EUDKNativeBindings.IntersectWithRay(System.Single[],System.Single[],System.Single@,System.Double@,System.Double@,System.Double@)">
            <summary>
            Private function called by the IntersectWithRay wrapper function.
            </summary>
            <remarks>
            Note this method is private since we have wrapper functions using Ray and
            Vector3 instead of float arrays.
            </remarks>
            <param name="rayOriginInStartSpace">Ray origin in start space coordinates.</param>
            <param name="rayDirectionInStartSpace">Ray direction in start space coordinates.</param>
            <param name="distanceInStartSpace">Intersection points distance in start space.</param>
            <param name="latitudeDegrees">Intersection points latitude in degrees.</param>
            <param name="longitudeDegrees">Intersection points longitude in degrees.</param>
            <param name="altitudeMeters">Intersection points altitude in meters.</param>
            <returns><c>true</c> if an intersection took place.</returns>
        </member>
        <member name="M:Google.EUDK.EUDKNativeBindings.PrepareMultisampling">
            <summary>
            Prepares the plugin for multisample rendering.
            </summary>
        </member>
        <member name="M:Google.EUDK.EUDKNativeBindings.SetAllowedClipPlanesInHeadSpace(System.Single,System.Single)">
            <summary>
            Sets the allowed clip planes in head space. If there is a conflict with required clipping
            planes, the allowance takes precedence i.e. the actual range used for rendering never lies
            outside of the allowed clip planes.
            </summary>
            <param name="nearPlane">The near plane in head space.</param>
            <param name="farPlane">The far plane in head space.</param>
        </member>
        <member name="M:Google.EUDK.EUDKNativeBindings.SetDateAndTime(System.Double)">
            <summary>
            Sets the date and time of the data.
            </summary>
            <param name="secondsSinceEpoch">Timestamp in seconds since EPOCH.</param>
        </member>
        <member name="M:Google.EUDK.EUDKNativeBindings.SetEarthLevelOfDetailBias(System.Double)">
            <summary>
            Sets the target earth LoD bias.
            </summary>
            <param name="lodBias">The new target lod bias.</param>
        </member>
        <member name="M:Google.EUDK.EUDKNativeBindings.SetGeoView(Google.EUDK.EUDKNativeBindings.GeoView@)">
            <summary>
            Sets the current geo view.
            </summary>
            <param name="geoView">Reference to the geo view data of the new state.</param>
        </member>
        <member name="M:Google.EUDK.EUDKNativeBindings.SetMaxCacheSize(System.Int32)">
            <summary>
            Sets the maximum ammout of memory the EUDK native plugin is allowed to use in MB.
            </summary>
            <param name="maxCache">Maximum cache size in MB.</param>
        </member>
        <member name="M:Google.EUDK.EUDKNativeBindings.SetMaxRenderDuration(System.Single)">
            <summary>
            Sets the maximum render duration in seconds.
            </summary>
            <param name="maxRenderDurationSeconds">Maximum render duration in seconds.</param>
        </member>
        <member name="M:Google.EUDK.EUDKNativeBindings.SetRenderEye(System.Int32)">
            <summary>
            Defines which eye is to be rendered next, left (0) or right (1).
            </summary>
            <param name="eyeId">The id of the eye to be rendered next.</param>
        </member>
        <member name="M:Google.EUDK.EUDKNativeBindings.SetRequiredClipPlanesInHeadSpace(System.Single,System.Single)">
            <summary>
            Sets the required clip planes in head space. The actually used range will contain these
            planes (but may be larger), unless these required clip planes lie outside of the range
            defined by the allowed clipping planes, in which case the respective allowed clip plane
            will be used.
            </summary>
            <param name="nearPlane">The near plane in head space.</param>
            <param name="farPlane">The far plane in head space.</param>
        </member>
        <member name="M:Google.EUDK.EUDKNativeBindings.SetUnityDebugOutputFunc(System.IntPtr)">
            <summary>
            Sets the callback for the Unity debug output function.
            </summary>
            <param name="functionReference">Reference to the function.</param>
        </member>
        <member name="M:Google.EUDK.EUDKNativeBindings.SetUnityRockNodeRemoveCallback(System.IntPtr)">
            <summary>
            Sets the callback to the EUDK native plugin to call Unity when RockNodes get removed.
            </summary>
            <param name="functionReference">Reference to the function.</param>
        </member>
        <member name="M:Google.EUDK.EUDKNativeBindings.SetDecodeProtoInUnityEnabled(System.Boolean)">
            <summary>
            When enabled, the EUDK native plugin sends raw protobuffers to Unity. Otherwise, protos are
            decoded and sent to Unity in EUDKNativePluginData.ProtoRockStruct.
            </summary>
            <param name="decodeProtoInUnity">True if raw protobuffer should be sent to Unity.</param>
        </member>
        <member name="M:Google.EUDK.EUDKNativeBindings.SetUnityRockMeshCallback(System.IntPtr)">
            <summary>
            Sets the callback to the EUDK native plugin to deliver loaded RockMeshes.
            </summary>
            <param name="functionReference">Reference to the function.</param>
        </member>
        <member name="M:Google.EUDK.EUDKNativeBindings.SetUnityRockProtoCallback(System.IntPtr)">
            <summary>
            Sets the callback to the EUDK native plugin to deliver loaded protobuffers of RockNodes.
            </summary>
            <param name="functionReference">Reference to the function.</param>
        </member>
        <member name="M:Google.EUDK.EUDKNativeBindings.StartPlugin(System.Int32,System.Int32,System.Single,System.String,System.String,System.Int32)">
            <summary>
            Starts the EUDK native plugin with the specified width, height and refresh rate.
            </summary>
            <param name="width">Width of the view rect.</param>
            <param name="height">Height of the view rect.</param>
            <param name="refreshRate">Output refresh rate in Hz.</param>
            <param name="cachePath">The absolute path to the EUDK native plugin cache.</param>
            <param name="khServerUrl">The keyhole server URL to load the RockTree from.</param>
            <param name="khServerEpoch">The epoch to be used on the KeyHole server.</param>
        </member>
        <member name="M:Google.EUDK.EUDKNativeBindings.StopPlugin">
            <summary>
            Stops the plugin.
            </summary>
        </member>
        <member name="M:Google.EUDK.EUDKNativeBindings.UpdateFromUnity(System.Single[],System.Int32,System.Int32,System.Single[],System.Single[],System.Single,System.Single)">
            <summary>Updates the plugin from Unity.</summary>
            <param name="startFromHeadMatrix">The start from head matrix.</param>
            <param name="windowWidth">The eye viewport width.</param>
            <param name="windowHeight">The eye viewport height.</param>
            <param name="headFromLeftEyeMatrix">The head from left eye matrix.</param>
            <param name="headFromRightEyeMatrix">The head from right eye matrix.</param>
            <param name="eyeVerticalFovInDegrees">The eye vertical field of view in degrees.</param>
            <param name="eyeAspectRatio">The eye aspect ratio.</param>
        </member>
        <member name="M:Google.EUDK.EUDKNativeBindings.WriteDebugMessage(System.String)">
            <summary>
            Extern debug message function to write debug messages to the EUDK native plugin.
            </summary>
            <param name="msg">The debug message to write out.</param>
        </member>
        <member name="T:Google.EUDK.EUDKNativeBindings.GeoLocation">
            <summary>
            Structure to hold the geo location data for interaction with the EUDK native plugin.
            </summary>
        </member>
        <member name="F:Google.EUDK.EUDKNativeBindings.GeoLocation._LatitudeDegrees">
            <summary>
            The latitude in degrees.
            </summary>
        </member>
        <member name="F:Google.EUDK.EUDKNativeBindings.GeoLocation._LongitudeDegrees">
            <summary>
            The longitude in degrees.
            </summary>
        </member>
        <member name="F:Google.EUDK.EUDKNativeBindings.GeoLocation._AltitudeMeters">
            <summary>
            The altitude in meters.
            </summary>
        </member>
        <member name="T:Google.EUDK.EUDKNativeBindings.GeoView">
            <summary>
            Structure to hold the geo view data for interaction with the EUDK native plugin.
            </summary>
        </member>
        <member name="F:Google.EUDK.EUDKNativeBindings.GeoView._GeoLocation">
            <summary>
            The geo view's geolocation.
            </summary>
        </member>
        <member name="F:Google.EUDK.EUDKNativeBindings.GeoView._AnchorPointInStartSpace">
            <summary>
            The earth anchor point in Start Space (right-handed).
            </summary>
        </member>
        <member name="F:Google.EUDK.EUDKNativeBindings.GeoView._HeadingDegrees">
            <summary>
            Initial view orientation around _UpDirection in degrees.
            </summary>
        </member>
        <member name="F:Google.EUDK.EUDKNativeBindings.GeoView._ViewerScale">
            <summary>
            The viewer world scale.
            </summary>
        </member>
        <member name="F:Google.EUDK.EUDKNativeBindings.GeoView._UpDirection">
            <summary>
            The earth up direction.
            </summary>
            <remarks>
            Explicitly use 32-bit integer instead of enum for robust argument passing between C# and
            C++.
            </remarks>
        </member>
        <member name="T:Google.EUDK.EUDKNativeBindings.Point3d">
            <summary>
            Represents a 3d point in double precision X, Y, Z coordinates.
            </summary>
        </member>
        <member name="F:Google.EUDK.EUDKNativeBindings.Point3d._X">
            <summary>
            The 3d point's X coordinate.
            </summary>
        </member>
        <member name="F:Google.EUDK.EUDKNativeBindings.Point3d._Y">
            <summary>
            The 3d point's Y coordinate.
            </summary>
        </member>
        <member name="F:Google.EUDK.EUDKNativeBindings.Point3d._Z">
            <summary>
            The 3d point's Z coordinate.
            </summary>
        </member>
        <member name="M:Google.EUDK.EUDKNativePluginData.GetAndFreeNativeArray``1(System.IntPtr,System.Int32)">
            <summary>
            Marshals an array of data of given type and returns the newly created array. Also frees the
            memory allocated for the structures on native side.
            </summary>
        </member>
        <member name="T:Google.EUDK.EUDKNativePluginData.ProtoEntry">
            <summary>
            Struct to hold the necessary data from the asynchronously received proto data.
            </summary>
        </member>
        <member name="F:Google.EUDK.EUDKNativePluginData.ProtoEntry._BufferMarshallingTime">
            <summary>
            Measured buffer marshalling time.
            </summary>
        </member>
        <member name="F:Google.EUDK.EUDKNativePluginData.ProtoEntry._GlobeFromMesh">
            <summary>
            The received globe from mesh matrix.
            </summary>
        </member>
        <member name="F:Google.EUDK.EUDKNativePluginData.ProtoEntry._HowMuchMemoryUsed">
            <summary>
            How much unmanaged memory got allocated to free by Unity.
            </summary>
        </member>
        <member name="F:Google.EUDK.EUDKNativePluginData.ProtoEntry._Meshes">
            <summary>
            The received meshes.
            </summary>
        </member>
        <member name="F:Google.EUDK.EUDKNativePluginData.ProtoEntry._NodePath">
            <summary>
            The rock proto's NodePath.
            </summary>
        </member>
        <member name="F:Google.EUDK.EUDKNativePluginData.ProtoEntry._ProtoData">
            <summary>
            The received proto buffer data from the plugin.
            </summary>
        </member>
        <member name="F:Google.EUDK.EUDKNativePluginData.ProtoEntry._Url">
            <summary>
            The rock proto's node url.
            </summary>
        </member>
        <member name="T:Google.EUDK.EUDKNativePluginData.ProtoRockStruct">
            <summary>
            Struct to hold meta information about a rock node sent from the EUDK native plugin.
            </summary>
        </member>
        <member name="F:Google.EUDK.EUDKNativePluginData.ProtoRockStruct._NodeKeyPath">
            <summary>
            The octant path sent from the plugin.
            TODO(bergerb): replace this with NodePath structure.
            </summary>
        </member>
        <member name="F:Google.EUDK.EUDKNativePluginData.ProtoRockStruct._GlobeFromMesh">
            <summary>
            The pointer to globe matrix sent from the EUDK native plugin (double array length 16).
            </summary>
        </member>
        <member name="F:Google.EUDK.EUDKNativePluginData.ProtoRockStruct._Meshes">
            <summary>
            The pointer to the array of ProtoRockStructMesh sent from the EUDK native plugin.
            </summary>
        </member>
        <member name="F:Google.EUDK.EUDKNativePluginData.ProtoRockStruct._NumMeshes">
            <summary>
            Number of meshes sent from the EUDK native plugin in the pointer _Meshes.
            </summary>
        </member>
        <member name="F:Google.EUDK.EUDKNativePluginData.ProtoRockStruct._HowMuchMemoryUsed">
            <summary>
            How much unmanaged memory got allocated to free by Unity.
            </summary>
        </member>
        <member name="T:Google.EUDK.EUDKNativePluginData.ProtoRockStructMesh">
            <summary>
            Struct to hold information about a mesh of a node sent by the EUDK native plugin.
            </summary>
        </member>
        <member name="F:Google.EUDK.EUDKNativePluginData.ProtoRockStructMesh._VerticesPtr">
            <summary>
            Pointer to float array of vertices sent from the EUDK native plugin.
            </summary>
        </member>
        <member name="F:Google.EUDK.EUDKNativePluginData.ProtoRockStructMesh._OctantsPtr">
            <summary>
            Pointer to float array of vertices sent from the EUDK native plugin.
            </summary>
        </member>
        <member name="F:Google.EUDK.EUDKNativePluginData.ProtoRockStructMesh._NumVertices">
            <summary>
            Number of vertices in _VerticesPtr.
            </summary>
        </member>
        <member name="F:Google.EUDK.EUDKNativePluginData.ProtoRockStructMesh._NormalsPtr">
            <summary>
            Pointers to float array of normals sent from the EUDK native plugin.
            </summary>
        </member>
        <member name="F:Google.EUDK.EUDKNativePluginData.ProtoRockStructMesh._TextureCoordinatesPtr">
            <summary>
            Pointer to float array of texture coordinates sent from the EUDK native plugin.
            </summary>
        </member>
        <member name="F:Google.EUDK.EUDKNativePluginData.ProtoRockStructMesh._NumTextureCoordinates">
            <summary>
            Number of texture coordinats in _TextureCoordinatesPtr.
            </summary>
        </member>
        <member name="F:Google.EUDK.EUDKNativePluginData.ProtoRockStructMesh._IndicesPtr">
            <summary>
            Pointer to int array of mesh indices sent from the EUDK native plugin.
            </summary>
        </member>
        <member name="F:Google.EUDK.EUDKNativePluginData.ProtoRockStructMesh._NumIndices">
            <summary>
            Number of indices in _IndicesPtr.
            </summary>
        </member>
        <member name="F:Google.EUDK.EUDKNativePluginData.ProtoRockStructMesh._TexturePtr">
            <summary>
            Pointer to byte array of raw texture sent from the EUDK native plugin.
            </summary>
        </member>
        <member name="F:Google.EUDK.EUDKNativePluginData.ProtoRockStructMesh._TextureSize">
            <summary>
            Size in number of bytes of the content in _TexturePtr.
            </summary>
        </member>
        <member name="F:Google.EUDK.EUDKNativePluginData.ProtoRockStructMesh._TextureFormat">
            <summary>
            Format of the texture in _TexturePtr.
            </summary>
        </member>
        <member name="F:Google.EUDK.EUDKNativePluginData.ProtoRockStructMesh._TextureWidth">
            <summary>
            Width in pixels of the texture in _TexturePtr.
            </summary>
        </member>
        <member name="F:Google.EUDK.EUDKNativePluginData.ProtoRockStructMesh._TextureHeight">
            <summary>
            Height in pixels of the texture in _TexturePtr.
            </summary>
        </member>
        <member name="T:Google.EUDK.EUDKNativePluginData.TraversalResult">
            <summary>
            Struct of Arrays used to send traversal results from the unmanaged to the managed side.
            Corresponds to unity::TraversalResult defined in plugin.h.
            </summary>
        </member>
        <member name="F:Google.EUDK.EUDKNativePluginData.TraversalResult._MajorArrayPtr">
            <summary>
            Pointer to the uint64 array of major arguments for the EUDK.NodePath constructor.
            </summary>
        </member>
        <member name="F:Google.EUDK.EUDKNativePluginData.TraversalResult._MinorArrayPtr">
            <summary>
            Pointer to the uint64 array of minor arguments for the EUDK.NodePath constructor.
            </summary>
        </member>
        <member name="F:Google.EUDK.EUDKNativePluginData.TraversalResult._NumDigitsArrayPtr">
            <summary>
            Pointer to the int array of numDigits arguments for the EUDK.NodePath constructor.
            </summary>
        </member>
        <member name="F:Google.EUDK.EUDKNativePluginData.TraversalResult._OpacityArrayPtr">
            <summary>
            Pointer to the float array of node opacities for unpopping.
            </summary>
        </member>
        <member name="F:Google.EUDK.EUDKNativePluginData.TraversalResult._OctantMaskArrayPtr">
            <summary>
            Pointer to the byte array of octant masks.
            </summary>
        </member>
        <member name="T:Google.EUDK.EUDKPlugin">
            <summary>Main access point to Google Earth imagery.</summary>
        </member>
        <member name="F:Google.EUDK.EUDKPlugin._octantMaskShaderPropertyId">
            <summary>
            Integer id that can be used instead of the property string to set shader property values.
            Value is assigned in Awake() method.
            </summary>
            <remarks> This is not const because the value can be queried earliest in Awake().</remarks>
        </member>
        <member name="F:Google.EUDK.EUDKPlugin._protoTempStorageHandle">
            <summary>Lock the lists of rocknode addition and removals.</summary>
        </member>
        <member name="F:Google.EUDK.EUDKPlugin._rockNodeAdditionDict">
            <summary>Storage for asynchronously received proto buffer objects.</summary>
        </member>
        <member name="F:Google.EUDK.EUDKPlugin._rockNodeRemovalSet">
            <summary>Storage for asynchronously received remvoals of RockNodes.</summary>
        </member>
        <member name="F:Google.EUDK.EUDKPlugin._rockNodeExtraRemovalDict">
            <summary>
            Keeps track of number of removals from the EUDK native plguin to RockPaths with no RockNode
            in Unity. (b/37890295)
            </summary>
        </member>
        <member name="F:Google.EUDK.EUDKPlugin._relocationService">
            <summary>
            Reference to the currently active relocation service.
            </summary>
        </member>
        <member name="F:Google.EUDK.EUDKPlugin._maxEUDKNativeMemory">
             <summary>
             Changes the target size of the EUDK native plugin's in-memory cache, in MB.
            
             DEVELOPERS, PLEASE READ FULLY:
            
             As an optimization, the EUDK native plugin will hold on to meshes, textures, etc. that it
             has loaded to improve performance when navigating back to a previously viewed area.
            
             The app can set a "target memory limit" to control how large this in-memory cache can grow.
             For example, if the app sets _maxEUDKNativeMemory to 2048, then the EUDK native plugin may
             store up to 2GB of data in its in-memory cache.
            
             But, there is an IMPORTANT nuance to this target memory limit:
            
             The EUDK native plugin will always try to fully draw the current scene based on the current
             rendering settings. Objects required to draw the scene get stored in the in-memory cache
             (this makes them available later).  As a consequence, it is possible that the current scene
             requires more memory than the target memory limit specified by the application.
             In this situation, the in-memory cache will grow as necessary to draw the current scene.
            
             This means that if the application does SetMemoryCacheTargetMb(1), the EUDK native plugin
             won't just use 1MB in its cache.  It'll cache what's needed to draw the current scene. This
             might be 100MB or more.
            
             The application can use GetCurrentMemoryCacheSizeMb() to inspect the current runtime size of
             the cache.
            
             Some tips for reducing memory:
               - Reduce the cache size with this method.
               - Reduce the level-of-detail for the current mode.
               - Render into a smaller viewport.
               - Instantiate an EarthMemoryManager to tune cache and LOD settings in
                 Earth mode.
             </summary>
        </member>
        <member name="M:Google.EUDK.EUDKPlugin.SetEUDKNativeMaxCacheSize(System.Int32)">
            <summary>
            Sets the cache size in MB to the EUDK native plugin, only when the size changes to previous
            calls.
            </summary>
            <returns>The current used cache size.</returns>
        </member>
        <member name="F:Google.EUDK.EUDKPlugin._decodeProtoInUnity">
            <summary>
            Changes the mode in which the EUDK native plugin delivers the loaded RockMeshes to Unity.
            True if the EUDK native plugin should send raw protobuffers, false if the EUDK native plugin
            should decode the Protobuffer and send data in a ProtoRockStruct.
            </summary>
        </member>
        <member name="F:Google.EUDK.EUDKPlugin._EarthLevelOfDetail">
            <summary>The EUDK native plugin LoD Bias level.</summary>
        </member>
        <member name="F:Google.EUDK.EUDKPlugin._EarthMaterial">
            <summary>The material to use to render the Earth geometry.</summary>
        </member>
        <member name="F:Google.EUDK.EUDKPlugin._Timestamp">
            <summary>
            The timestamp of the earth data we want to receive.
            </summary>
            <returns>The datas timestamp relative to EPOCH</returns>
            <remarks>
            TODO(b/38186625): Remove #if INTERNAL and handle it through a conditional custom inspector
            for correct variable naming.
            </remarks>
        </member>
        <member name="F:Google.EUDK.EUDKPlugin._khServerUrl">
            <summary>
            KeyHole server URL to be used to load the RockTree from. If empty string, the native plugin
            will load from the default production server.
            </summary>
        </member>
        <member name="F:Google.EUDK.EUDKPlugin._khServerEpoch">
            <summary>
            Epoch to be used on the specified KeyHole server to load the RockTree from. -1 means
            loading the newest available epoch on khserver.
            </summary>
        </member>
        <member name="F:Google.EUDK.EUDKPlugin._UpDirection">
            <summary>
            The up direction used for the EUDK native plugin coordinate system.
            </summary>
        </member>
        <member name="F:Google.EUDK.EUDKPlugin._viewerScale">
            <summary>
            The initial scale of the viewer. A value of 1.0f means human scale.
            </summary>
        </member>
        <member name="F:Google.EUDK.EUDKPlugin._camera">
            <summary>
            The camera that will be used for the traversal calculations.
            </summary>
        </member>
        <member name="F:Google.EUDK.EUDKPlugin._cameraTransform">
            <summary>
            The cached UnityEngine.Transform component of the _camera component.
            </summary>
        </member>
        <member name="F:Google.EUDK.EUDKPlugin._currentAltitude">
            <summary>
            The currently used altitude.
            </summary>
            <remarks>
            TODO(b/38186731): Group _currentAltitude, _currentLatitude, _currentLongitude.
            </remarks>
        </member>
        <member name="F:Google.EUDK.EUDKPlugin._currentLatitude">
            <summary>
            The currently used latitude.
            </summary>
            <remarks>
            TODO(b/38186731): Group _currentAltitude, _currentLatitude, _currentLongitude.
            </remarks>
        </member>
        <member name="F:Google.EUDK.EUDKPlugin._currentLongitude">
            <summary>
            The currently used longitude.
            </summary>
            <remarks>
            TODO(b/38186731): Group _currentAltitude, _currentLatitude, _currentLongitude.
            </remarks>
        </member>
        <member name="F:Google.EUDK.EUDKPlugin._previousAltitude">
            <summary>
            The cached previous altitude.
            </summary>
            <remarks>
            TODO(b/38186731): Group _previousAltitude, _previousLatitude, _previousLongitude.
            </remarks>
        </member>
        <member name="F:Google.EUDK.EUDKPlugin._previousEarthLevelOfDetail">
            <summary>
            The cached previous EUDK native plugin LoD bias.
            </summary>
        </member>
        <member name="F:Google.EUDK.EUDKPlugin._previousLatitude">
            <summary>
            The cached previous latitude.
            </summary>
            <remarks>
            TODO(b/38186731): Group _previousAltitude, _previousLatitude, _previousLongitude.
            </remarks>
        </member>
        <member name="F:Google.EUDK.EUDKPlugin._previousLongitude">
            <summary>
            The cached previous longitude.
            </summary>
            <remarks>
            TODO(b/38186731): Group _previousAltitude, _previousLatitude, _previousLongitude.
            </remarks>
        </member>
        <member name="F:Google.EUDK.EUDKPlugin._previousTimestamp">
            <summary>
            The cached previous timestamp.
            </summary>
        </member>
        <member name="F:Google.EUDK.EUDKPlugin._previousUpDirection">
            <summary>
            The cached previous up direction.
            </summary>
        </member>
        <member name="F:Google.EUDK.EUDKPlugin._previousViewerScale">
            <summary>
            The cached previous viewer scale.
            </summary>
        </member>
        <member name="F:Google.EUDK.EUDKPlugin._rockObjects">
            <summary>Caching dictionary to map NodePaths to RockNode structures.</summary>
        </member>
        <member name="M:Google.EUDK.EUDKPlugin.EudkLog(System.String)">
            <summary>Custom logging function that's only executed in development builds.</summary>
            <param name="message">The message to log.</param>
        </member>
        <member name="M:Google.EUDK.EUDKPlugin.RockNodeRemoveCallback(Google.EUDK.NodePath@)">
            <summary>
            RockNode removal callback function called by the EUDK native plugin to remove those
            RockNodes in Unity. This callback is called on a different thread.
            </summary>
            <param name="pathToRemove">The NodePath of the rock node.</param>
        </member>
        <member name="M:Google.EUDK.EUDKPlugin.RockNodeMeshCallback(System.IntPtr,System.String,Google.EUDK.NodePath@)">
            <summary>
            RockNode mesh callback function called by the EUDK native plugin to provide Unity with the
            rock mesh data. This callback maybe called from different threads.
            </summary>
            <param name="rockprotoData">The RockMesh data packed into a ProtoRockStruct.</param>
            <param name="nodeUrl">The rock node url.</param>
            <param name="nodePath">The NodePath of the rock node.</param>
        </member>
        <member name="M:Google.EUDK.EUDKPlugin.RockNodeProtoCallback(System.IntPtr,System.Int32,System.String,Google.EUDK.NodePath@)">
            <summary>
            Rock proto callback function called by the EUDK native plugin to provide Unity with the
            rock proto data. This callback is called on a different thread.
            </summary>
            <param name="rockprotoData">The rock proto data.</param>
            <param name="dataSizeInBytes">The size of the rock proto data.</param>
            <param name="nodeUrl">The rock node url.</param>
            <param name="major">The major of the NodePath of the rock node.</param>
            <param name="minor">The minor of the NodePath of the rock node.</param>
            <param name="numDigits">The number of digits of the NodePath of the rock node.</param>
        </member>
        <member name="M:Google.EUDK.EUDKPlugin.AddNewRockNodeToProcess(Google.EUDK.EUDKNativePluginData.ProtoEntry)">
            <summary>
            Helper function for RockNodeMeshCallback and RockNodeProtoCallback to finalize the addition.
            </summary>
        </member>
        <member name="M:Google.EUDK.EUDKPlugin.StringFromMatrix3x4(System.Single[])">
            <summary>
            Function to print a string from a 3x4 matrix in float[12] format.
            </summary>
            <param name="matrix">The matrix of which to produce the string output.</param>
            <returns>String representation of the 3x4 matrix.</returns>
        </member>
        <member name="M:Google.EUDK.EUDKPlugin.WriteToDebugLog(System.String)">
            <summary>
            Callback function used to write the EUDK native plugin debug output to the Unity log.
            </summary>
            <param name="str">The string to write to the debug log.</param>
        </member>
        <member name="M:Google.EUDK.EUDKPlugin.OnApplicationQuit">
            <summary>
            Unity invoked quit event called before the application is being terminated.
            </summary>
        </member>
        <member name="M:Google.EUDK.EUDKPlugin.Awake">
            <summary>Called by Unity at the creation of the object. Is only called once.</summary>
        </member>
        <member name="M:Google.EUDK.EUDKPlugin.RefreshCamera">
            <summary>
            Refreshes the used camera to allow for play mode / runtime cameras as well as editor view
            cameras to drive the EUDK native plugin.
            </summary>
        </member>
        <member name="M:Google.EUDK.EUDKPlugin.Start">
            <summary>
            Unity start function. Called in the frame after Awake() but before Update() is being called
            for the first time. This function is used to setup relationship between game objects and
            parent - child.
            </summary>
        </member>
        <member name="M:Google.EUDK.EUDKPlugin.Update">
            <summary>Unity update function, called once every frame.</summary>
        </member>
        <member name="M:Google.EUDK.EUDKPlugin.DestroyRockNodeGameObject(Google.EUDK.RockNode)">
            <summary>
            Destroys the GameObject of a RockNode and frees Texture, Material and Mesh of all its
            childrens.
            </summary>
        </member>
        <member name="M:Google.EUDK.EUDKPlugin.LateUpdate">
            <summary>
            Called by Unity at the end of the frame's main loop before culling and rendering.
            </summary>
        </member>
        <member name="M:Google.EUDK.EUDKPlugin.OnDestroy">
            <summary>
            Called by Unity upon destruction of this MonoBehaviour.
            </summary>
        </member>
        <member name="M:Google.EUDK.EUDKPlugin.Stop">
            <summary>
            Stops the EUDK native plugin.
            </summary>
        </member>
        <member name="M:Google.EUDK.EUDKPlugin.SetUnityWorldSpaceLla(System.Double,System.Double,System.Double)">
            <summary>
            Sets a new Lla for [0,0,0] in Unity world coordinates used for the unityWorldFromGlobe
            transformation, updating the EUDK native plugin and the traversal accordingly.
            </summary>
            <param name="latitude">The latitude in degrees.</param>
            <param name="longitude">The longitude in degrees.</param>
            <param name="altitude">The altitude in meters.</param>
            <returns>The new unityWorldFromGlobe transformation matrix.</returns>
        </member>
        <member name="M:Google.EUDK.EUDKPlugin.ParseAndAddRockNode(Google.EUDK.EUDKNativePluginData.ProtoEntry)">
            <summary>
            Asynchronous function to parse a ProtoEntry, create the game object add it to _rockObjects.
            </summary>
            <param name="entry">The proto entry to parse and integrate.</param>
            <returns>An IEnumerator to execute asynchronously.</returns>
        </member>
        <member name="M:Google.EUDK.EUDKPlugin.UpdateFromPublicAttributes">
            <summary>Updates the attributes from the public attributes.</summary>
        </member>
        <member name="M:Google.EUDK.EUDKPlugin.UpdateEUDKPlugin">
            <summary>
            Updates the EUDK native plugin.
            </summary>
            <remarks>
            This method is called once per eye per frame. We assume the left eye is rendered
            first, and is when we update the HMD for the plugin.
            </remarks>
        </member>
        <member name="E:Google.EUDK.EUDKPlugin._IsInitialized">
            <summary>
            This event is called when the plugin finished initialization.
            </summary>
        </member>
        <member name="E:Google.EUDK.EUDKPlugin.IsInitialized">
            <summary>
            Public property to subscribe to the initialization event.
            </summary>
        </member>
        <member name="P:Google.EUDK.EUDKPlugin.GlobeFromUnityWorld">
            <summary>
            The transformation matrix that maps from Unity world to Globe space coordinates.
            </summary>
        </member>
        <member name="P:Google.EUDK.EUDKPlugin.Instance">
            <summary>
            The instance of the currently active EUDKPlugin. This is valid only if
            PluginIsInitialized is true.
            </summary>
        </member>
        <member name="P:Google.EUDK.EUDKPlugin.PluginIsInitialized">
            <summary>
            Indicate that the EUDK native plugin has been initialized. If it is not initialized,
            the EUDK native plugin API usage will crash the editor.
            </summary>
        </member>
        <member name="P:Google.EUDK.EUDKPlugin.UnityWorldFromGlobe">
            <summary>
            The transformation matrix that maps from Globe to Unity world space coordinates.
            </summary>
        </member>
        <member name="P:Google.EUDK.EUDKPlugin.RelocationService">
            <summary>
            Internal static reference to expose the used RelocationService to Earth components for
            relocation offset calculations.
            </summary>
        </member>
        <member name="P:Google.EUDK.EUDKPlugin.Camera">
            <summary>
            Reference to the camera currently used to calculate the visible part of the Earth.
            </summary>
            <returns></returns>
        </member>
        <member name="T:Google.EUDK.NodePath">
             <summary>
             Represents the path of a Rocktree node. This implementation stores the NodePath using two
             64bit unsigned integers which supports 38 tree levels (not including root).
             The root node is represented by a NodePath with NumDigits = 0.
             The eight children of the root node have paths '0', '1', '2', '3' ... '7' with NumDigits = 1.
             Each level of descent into the tree appends one digit to the path.
            
             In the Rocktree, the child numbers correspond to the following locations within the parent
             node (derived by assuming that the ordering among the dimensions is longitude, latitude,
             altitude):
             0: Lower South West
             1: Lower South East
             2: Lower North West
             3: Lower North East
             4: Upper South West
             5: Upper South East
             6: Upper North West
             7: Upper North East
            
             For "tri-nodes", i.e. nodes below level 0 or 1 which touch either the north or south pole, the
             West and East children that touch the poles are combined into one double-wide child, and put
             in the lower-numbered (West) child index.  E.g. a node that touches the south pole would have
             children:
             0: Lower South (both West and East)
             1: (shouldn't exist)
             2: Lower North West
             3: Lower North East
             4: Upper South (both West and East)
             5: (shouldn't exist)
             6: Upper North West
             7: Upper North East
            
             This structure is also used to pass the path between C# and C++, and thus only allows
             primitive data members.
             </summary>
        </member>
        <member name="F:Google.EUDK.NodePath.pow10">
            <summary>
            Lookup array for 10^n.
            </summary>
        </member>
        <member name="M:Google.EUDK.NodePath.#ctor(System.UInt64,System.UInt64,System.Int32)">
            <summary>
            Constructs a NodePath from two UInt64 and the path length. Since a NodePath can have leading
            zeroes, the length of the path is passed as argument as well.
            </summary>
            <param name="major">Stores the major (closer to the root) part of the path for paths with
            more than 19 digits. Must contain only digits in [0,7].</param>
            <param name="minor">Stores the minor (closer to the leaf) part of the path. Contains the
            full path for paths with fewer than 20 digits. Must contain only digits in [0,7].</param>
            <param name="numDigits">
            The length of the path. Must be non-negative and smaller than 39.
            </param>
        </member>
        <member name="M:Google.EUDK.NodePath.#ctor(System.String)">
            <summary>
            Constructs a NodePath from its string representation.
            </summary>
            <param name="nodePath">The string to create the NodePath from. Must contain only digits
            in the range [0,7] and be shorter than 39 characters.</param>
        </member>
        <member name="F:Google.EUDK.NodePath._major">
            <summary>
            Each UInt64 can store 19 digits of the NodePath. If NumDigits is smaller than 20, only
            _minor is used.
            </summary>
        </member>
        <member name="F:Google.EUDK.NodePath._numDigits">
            <summary>
            Baking field of NumDigits. Required because auto implemented properties are not allowed with
            more modern .NET MSBuild versions as they do not provide a baking field to set in the
            constructor, leading to a CS0188 compile error.
            </summary>
        </member>
        <member name="M:Google.EUDK.NodePath.GetHashCode">
            <summary>
            Computes a hash code for this NodePath.
            </summary>
        </member>
        <member name="M:Google.EUDK.NodePath.Equals(Google.EUDK.NodePath)">
            <summary>
            Compares two NodePaths for equality.
            </summary>
        </member>
        <member name="M:Google.EUDK.NodePath.Equals(System.Object)">
            <summary>
            Compares two NodePaths for equality.
            </summary>
        </member>
        <member name="M:Google.EUDK.NodePath.op_Equality(Google.EUDK.NodePath,Google.EUDK.NodePath)">
            <summary>
            Compares two NodePaths for equality.
            </summary>
        </member>
        <member name="M:Google.EUDK.NodePath.op_Inequality(Google.EUDK.NodePath,Google.EUDK.NodePath)">
            <summary>
            Compares two NodePaths for inequality.
            </summary>
        </member>
        <member name="M:Google.EUDK.NodePath.ToString">
            <summary>
            Converts the NodePath to a string.
            </summary>
        </member>
        <member name="M:Google.EUDK.NodePath.TruncateToNumDigits(System.Int32)">
            <summary>
            Truncates a NodePath. Does not change the NodePath if the new length is longer than the
            current length.
            </summary>
            <param name="numDigitsNew">The number of digits after the truncation, if shorter.</param>
        </member>
        <member name="M:Google.EUDK.NodePath.AssertInvariants">
            <summary>
            Object invariants that should always evaluate to true.
            </summary>
        </member>
        <member name="P:Google.EUDK.NodePath.NumDigits">
            <summary>
            Since a NodePath can start with leading zeroes, we store the number of digits explicitly.
            </summary>
        </member>
        <member name="T:Google.EUDK.Octant">
            <summary>
            Represents an octant index, which is an index with a value between 0 and 7 that is used to
            refer to the different octants of a cube.
            </summary>
        </member>
        <member name="F:Google.EUDK.Octant._octant">
            <summary>
            The byte storing the octant. This is a value in [0,7].
            </summary>
        </member>
        <member name="M:Google.EUDK.Octant.op_Explicit(Google.EUDK.Octant)~System.Byte">
            <summary>
            Casts from Octant to byte.
            </summary>
        </member>
        <member name="M:Google.EUDK.Octant.op_Explicit(System.Byte)~Google.EUDK.Octant">
            <summary>
            Casts from byte to Octant.
            </summary>
        </member>
        <!-- Badly formed XML comment ignored for member "M:Google.EUDK.Octant.#ctor(System.Byte)" -->
        <!-- Badly formed XML comment ignored for member "M:Google.EUDK.Octant.#ctor(Google.EUDK.Octant.OctantName)" -->
        <member name="M:Google.EUDK.Octant.GetMask">
            <summary>
            Returns the OctantMask that masks exactly this Octant.
            </summary>
        </member>
        <member name="M:Google.EUDK.Octant.IsValid">
            <summary>
            Returns true iff this is a valid octant.
            </summary>
        </member>
        <member name="M:Google.EUDK.Octant.GetHashCode">
            <summary>
            Computes a hash code for this Octant.
            </summary>
        </member>
        <member name="M:Google.EUDK.Octant.Equals(Google.EUDK.Octant)">
            <summary>
            Compares two Octants for equality.
            </summary>
        </member>
        <member name="M:Google.EUDK.Octant.Equals(System.Object)">
            <summary>
            Compares two Octants for equality.
            </summary>
        </member>
        <member name="M:Google.EUDK.Octant.op_Equality(Google.EUDK.Octant,Google.EUDK.Octant)">
            <summary>
            Compares two Octants for equality.
            </summary>
        </member>
        <member name="M:Google.EUDK.Octant.op_Inequality(Google.EUDK.Octant,Google.EUDK.Octant)">
            <summary>
            Compares two Octants for inequality.
            </summary>
        </member>
        <member name="M:Google.EUDK.Octant.ToString">
            <summary>
            Converts the Octant to a string.
            </summary>
        </member>
        <member name="P:Google.EUDK.Octant.Name">
            <summary>
            Gets the OctantName of this Octant.
            </summary>
        </member>
        <member name="T:Google.EUDK.Octant.OctantName">
            <summary>
            Enumeration to distinguish the octants.
            </summary>
        </member>
        <member name="T:Google.EUDK.OctantMask">
            <summary>
            Represents a mask that has individual bits set for the 8 possible Octants.
            </summary>
        </member>
        <member name="F:Google.EUDK.OctantMask.NO_OCTANTS">
            <summary>
            OctantMask constant masking no octants.
            </summary>
        </member>
        <member name="F:Google.EUDK.OctantMask.ALL_OCTANTS">
            <summary>
            OctantMask constant masking all octants.
            </summary>
        </member>
        <member name="F:Google.EUDK.OctantMask._bits">
            <summary>
            The byte storing a bit mask with each bit corresponding to one octant.
            </summary>
        </member>
        <member name="M:Google.EUDK.OctantMask.op_Implicit(Google.EUDK.OctantMask)~System.Byte">
            <summary>
            Casts from OctantMask to byte.
            </summary>
        </member>
        <member name="M:Google.EUDK.OctantMask.op_Implicit(System.Byte)~Google.EUDK.OctantMask">
            <summary>
            Casts from byte to OctantMask.
            </summary>
        </member>
        <member name="M:Google.EUDK.OctantMask.op_BitwiseOr(Google.EUDK.OctantMask,Google.EUDK.OctantMask)">
            <summary>
            Implements bitwise or operator.
            </summary>
        </member>
        <member name="M:Google.EUDK.OctantMask.op_BitwiseAnd(Google.EUDK.OctantMask,Google.EUDK.OctantMask)">
            <summary>
            Implements bitwise and operator.
            </summary>
        </member>
        <member name="M:Google.EUDK.OctantMask.op_ExclusiveOr(Google.EUDK.OctantMask,Google.EUDK.OctantMask)">
            <summary>
            Implements bitwise xor operator.
            </summary>
        </member>
        <member name="M:Google.EUDK.OctantMask.op_OnesComplement(Google.EUDK.OctantMask)">
            <summary>
            Implements bitwise not operator.
            </summary>
        </member>
        <!-- Badly formed XML comment ignored for member "M:Google.EUDK.OctantMask.#ctor(Google.EUDK.Octant)" -->
        <!-- Badly formed XML comment ignored for member "M:Google.EUDK.OctantMask.#ctor(System.Byte)" -->
        <member name="M:Google.EUDK.OctantMask.ContainsOctant(Google.EUDK.Octant)">
            <summary>
            Returns true iff this OctantMask has the bit for octant set.
            </summary>
        </member>
        <member name="M:Google.EUDK.OctantMask.ContainsMask(Google.EUDK.OctantMask)">
            <summary>
            Returns true iff this OctantMask has the bits of octantMask (and potentially more) set.
            </summary>
        </member>
        <member name="M:Google.EUDK.OctantMask.GetHashCode">
            <summary>
            Computes a hash code for this OctantMask.
            </summary>
        </member>
        <member name="M:Google.EUDK.OctantMask.Equals(Google.EUDK.OctantMask)">
            <summary>
            Compares two OctantMasks for equality.
            </summary>
        </member>
        <member name="M:Google.EUDK.OctantMask.Equals(System.Object)">
            <summary>
            Compares two OctantMasks for equality.
            </summary>
        </member>
        <member name="M:Google.EUDK.OctantMask.op_Equality(Google.EUDK.OctantMask,Google.EUDK.OctantMask)">
            <summary>
            Compares two OctantMasks for equality.
            </summary>
        </member>
        <member name="M:Google.EUDK.OctantMask.op_Inequality(Google.EUDK.OctantMask,Google.EUDK.OctantMask)">
            <summary>
            Compares two OctantMasks for inequality.
            </summary>
        </member>
        <member name="M:Google.EUDK.OctantMask.ToString">
            <summary>
            Converts the OctantMask to a string.
            </summary>
        </member>
        <member name="T:Google.EUDK.Logging">
            <summary>
            Wrapper class to provide logging functionality in EUDK.
            </summary>
        </member>
        <member name="M:Google.EUDK.Logging.Log(System.String,Google.EUDK.Logging.LogType)">
            <summary>Logging wrapper function.</summary>
            <param name="message">The message to log.</param>
            <param name="type">The type of message to log.</param>
        </member>
        <member name="M:Google.EUDK.Logging.Log(System.Exception)">
            <summary>Logging wrapper function.</summary>
            <param name="exception">The exception to log.</param>
        </member>
        <member name="T:Google.EUDK.Logging.LogType">
            <summary>
            Enumeration that identifies the type of a log message.
            </summary>
        </member>
        <member name="T:Google.EUDK.MathdInternal">
            <summary>
            This class is implemented analogously to Unity's internal class MathfInternal.
            It implements an Epsilon that is the smallest positive double precision value that does not
            equate to Zero.
            Since System.Double.Epsilon is too small to be detected on ARM systems, this class
            exposes a different Epsilon value on such systems. See "Platform Notes" on
            https://msdn.microsoft.com/en-us/library/system.double.epsilon(v=vs.110).aspx
            </summary>
        </member>
        <member name="F:Google.EUDK.MathdInternal.DoubleMinNormal">
            <summary>
            This magic number is taken from DBL_MIN defined in
            http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.dui0491i/Babbfeda.html
            The analogous floating point value in MathfInternal is 1.17549435E-38f.
            </summary>
        </member>
        <member name="F:Google.EUDK.MathdInternal.DoubleMinDenormal">
            <summary>
            The smallest positive Double value that is significant in numeric operations on
            non-ARM systems. Corresponds to System.Double.Epsilon.
            </summary>
        </member>
        <member name="F:Google.EUDK.MathdInternal.IsFlushToZeroEnabled">
            <summary>
            True if this is an ARM system. See Platform Notes in
            https://msdn.microsoft.com/en-us/library/system.double.epsilon(v=vs.110).aspx
            </summary>
        </member>
        <member name="F:Google.EUDK.MathdInternal.Epsilon">
            <summary>
            The smallest positive double value that does not equate to zero.
            </summary>
        </member>
        <member name="T:Google.EUDK.Matrix4x4d">
            <summary>
            This is a double precision 4x4 Matrix implementation. The interface of this class does
            intentionally not adhere to EUDK naming conventions and instead replicates the naming
            conventions of UnityEngine.Matrix4x4 in order to be in-place replaceable with it.
            </summary>
        </member>
        <member name="M:Google.EUDK.Matrix4x4d.Inverse(Google.EUDK.Matrix4x4d@)">
            <summary>
            Computes and returns the inverse of this matrix. If the determinant of the matrix is 0
            it will return the zero-matrix.
            </summary>
            <returns>The inverse of this matrix.</returns>
        </member>
        <member name="M:Google.EUDK.Matrix4x4d.Transpose(Google.EUDK.Matrix4x4d@)">
            <summary>Returns a transposed version of this matrix.</summary>
            <returns>
            A transposed <see cref="T:Google.EUDK.Matrix4x4d"/> copy of the current
            <see cref="T:Google.EUDK.Matrix4x4d"/>.
            </returns>
        </member>
        <member name="M:Google.EUDK.Matrix4x4d.Determinant(Google.EUDK.Matrix4x4d@)">
            <summary>Computes the determinant of a matrix.</summary>
            <returns>The determinant of the matrix.</returns>
        </member>
        <member name="M:Google.EUDK.Matrix4x4d.SetTRS(Google.EUDK.Vector3d,UnityEngine.Quaternion,Google.EUDK.Vector3d)">
            <summary>
            Sets this matrix to a translation, rotation and scaling matrix.
            </summary>
            <param name="pos">The translation.</param>
            <param name="q">The rotation.</param>
            <param name="s">The scale.</param>
        </member>
        <member name="M:Google.EUDK.Matrix4x4d.TRS(Google.EUDK.Vector3d,UnityEngine.Quaternion,Google.EUDK.Vector3d)">
            <summary>
            Creates a translation, rotation and scaling matrix.
            </summary>
            <param name="pos">The translation.</param>
            <param name="q">The rotation.</param>
            <param name="s">The scale.</param>
            <returns></returns>
        </member>
        <member name="M:Google.EUDK.Matrix4x4d.LookAt(Google.EUDK.Vector3d,Google.EUDK.Vector3d,Google.EUDK.Vector3d)">
            <summary>
            Given a source point, a target point, and an up vector, computes a transformation matrix
            that corresponds to a camera viewing the target from the source, such that the right-hand
            vector is perpendicular to the up vector.
            </summary>
            <param name="from">The source point.</param>
            <param name="to">The target point.</param>
            <param name="up">The vector describing the up direction (typically Vector3d.up).</param>
            <returns></returns>
        </member>
        <member name="M:Google.EUDK.Matrix4x4d.GetHashCode">
            <summary>
            Computes a hash code for this matrix.
            </summary>
        </member>
        <member name="M:Google.EUDK.Matrix4x4d.Equals(System.Object)">
            <summary>
            Checks for equality with another object.
            </summary>
            <param name="other">The object to compare this matrix to.</param>
            <returns>True iff the other object is a Matrix4x4d and each element-wise equality check
            returns true.</returns>
        </member>
        <member name="M:Google.EUDK.Matrix4x4d.op_Multiply(Google.EUDK.Matrix4x4d,Google.EUDK.Matrix4x4d)">
            <summary>
            Multiplies two matrices.
            </summary>
            <param name="lhs">The matrix multiplied from the left.</param>
            <param name="rhs">The matrix multiplied from the right.</param>
            <returns>The returned result is lhs * rhs.</returns>
        </member>
        <member name="M:Google.EUDK.Matrix4x4d.op_Multiply(Google.EUDK.Matrix4x4d,Google.EUDK.Vector4d)">
            <summary>
            Transforms a Vector4 by a matrix.
            </summary>
            <param name="lhs">The matrix multiplied from the left.</param>
            <param name="v">The vector multiplied from the right.</param>
            <returns>The returned result is lhs * v.</returns>
        </member>
        <member name="M:Google.EUDK.Matrix4x4d.op_Equality(Google.EUDK.Matrix4x4d,Google.EUDK.Matrix4x4d)">
            <summary>
            Checks whether two matrices are equal.
            </summary>
            <remarks>
            This is implemented column-wise
            using the == operator implemented on Vector4d, which does not check for
            bitwise equality of elements but rather checks whether the distance
            between the two arguments is smaller than a sigma error.
            </remarks>
        </member>
        <member name="M:Google.EUDK.Matrix4x4d.op_Inequality(Google.EUDK.Matrix4x4d,Google.EUDK.Matrix4x4d)">
            <summary>
            Checks whether two matrices are not equal.
            </summary>
            <remarks>
            See remarks of == operator.
            </remarks>
        </member>
        <member name="M:Google.EUDK.Matrix4x4d.GetColumn(System.Int32)">
            <summary>
            Get a column of the matrix.
            </summary>
            <param name="i">The zero based index of the column to return.</param>
            <returns>The column as a Vector4d.</returns>
        </member>
        <member name="M:Google.EUDK.Matrix4x4d.GetRow(System.Int32)">
            <summary>
            Get a row of the matrix.
            </summary>
            <param name="i">The zero based index of the row to return.</param>
            <returns>The row as a Vector4d.</returns>
        </member>
        <member name="M:Google.EUDK.Matrix4x4d.SetColumn(System.Int32,Google.EUDK.Vector4d)">
            <summary>
            Sets a column of the matrix.
            </summary>
            <param name="i">The zero based index of the column to set.</param>
            <param name="v">The Vector4d to set the specified column to.</param>
        </member>
        <member name="M:Google.EUDK.Matrix4x4d.SetRow(System.Int32,Google.EUDK.Vector4d)">
            <summary>
            Sets a row of the matrix.
            </summary>
            <param name="i">The zero based index of the row to set.</param>
            <param name="v">The Vector4d to set the specified row to.</param>
        </member>
        <member name="M:Google.EUDK.Matrix4x4d.MultiplyPoint(Google.EUDK.Vector3d)">
            <summary>
            Transforms a position by this matrix (generic).
            </summary>
            <remarks>
            Returns a position v transformed by the current fully arbitrary matrix. If the matrix is a
            regular 3D transformation matrix, it is much faster to use MultiplyPoint3x4 instead.
            MultiplyPoint is slower, but can handle projective transformations as well.
            </remarks>
            <param name="v">The point to transform.</param>
            <returns>The transformed point.</returns>
        </member>
        <member name="M:Google.EUDK.Matrix4x4d.MultiplyPoint3x4(Google.EUDK.Vector3d)">
            <summary>
            Transforms a position by this matrix (fast).
            </summary>
            <remarks>
            Returns a position v transformed by the current transformation matrix. This function is a
            faster version of MultiplyPoint; but it can only handle regular 3D transformations.
            MultiplyPoint is slower, but can handle projective transformations as well.
            </remarks>
            <param name="v">The point to transform.</param>
            <returns>The transformed point.</returns>
        </member>
        <member name="M:Google.EUDK.Matrix4x4d.MultiplyVector(Google.EUDK.Vector3d)">
            <summary>
            Transforms a direction by this matrix.
            </summary>
            <remarks>
            This function is similar to MultiplyPoint; but it transforms directions and not positions.
            When transforming a direction, only the rotation part of the matrix is taken into account.
            </remarks>
            <param name="v">The direction to transform.</param>
            <returns>The transformed direction.</returns>
        </member>
        <member name="M:Google.EUDK.Matrix4x4d.Scale(Google.EUDK.Vector3d)">
            <summary>
            Creates a scaling matrix.
            </summary>
        </member>
        <member name="M:Google.EUDK.Matrix4x4d.Translate(Google.EUDK.Vector3d)">
            <summary>
            Creates a translation matrix.
            </summary>
        </member>
        <member name="M:Google.EUDK.Matrix4x4d.ToString">
            <summary>
            Returns a nicely formatted string for this matrix.
            </summary>
        </member>
        <member name="M:Google.EUDK.Matrix4x4d.ToString(System.String)">
            <summary>
            Returns a nicely formatted string for this matrix. Each element is
            formated using format.
            </summary>
        </member>
        <member name="M:Google.EUDK.Matrix4x4d.#ctor(System.Double,System.Double,System.Double,System.Double,System.Double,System.Double,System.Double,System.Double,System.Double,System.Double,System.Double,System.Double,System.Double,System.Double,System.Double,System.Double)">
            <summary>
            Constructor that takes 16 doubles in row major order.
            </summary>
        </member>
        <member name="M:Google.EUDK.Matrix4x4d.Equals(Google.EUDK.Matrix4x4d)">
            <summary>
            Non-boxing Equals comparison.
            </summary>
            <param name="other">The other Matrix4x4d to compare against</param>
            <returns>True iff an element wise quality test returns true for all elements.</returns>
        </member>
        <member name="M:Google.EUDK.Matrix4x4d.op_Explicit(Google.EUDK.Matrix4x4d)~UnityEngine.Matrix4x4">
            <summary>
            Explicit cast from double precision Matrix to float precision matrix.
            </summary>
            <param name="md">The double precision matrix.</param>
        </member>
        <!-- Badly formed XML comment ignored for member "M:Google.EUDK.Matrix4x4d.op_Explicit(UnityEngine.Matrix4x4)~Google.EUDK.Matrix4x4d" -->
        <member name="M:Google.EUDK.Matrix4x4d.#ctor(UnityEngine.Matrix4x4@)">
            <summary>
            Initializes a new instance of <see cref="T:Google.EUDK.Matrix4x4d"/> from a Matrix4x4.
            </summary>
            <param name="mat">The floating point Matrix4x4.</param>
        </member>
        <member name="M:Google.EUDK.Matrix4x4d.ToMatrix4x4">
            <summary>Returns a floating point Matrix4x4.</summary>
            <returns>
            The <see cref="T:UnityEngine.Matrix4x4"/> representation of the current
            <see cref="T:Google.EUDK.Matrix4x4d"/>.
            </returns>
        </member>
        <member name="M:Google.EUDK.Matrix4x4d.CreateFromColumnMajor(System.Double[])">
            <summary>Creates a new <see cref="T:Google.EUDK.Matrix4x4d"/> from a double array.</summary>
            <param name="d">16 4x4 matrix values in column major order.</param>
        </member>
        <member name="M:Google.EUDK.Matrix4x4d.CreateFromRowMajor(System.Double[])">
            <summary>Creates a new <see cref="T:Google.EUDK.Matrix4x4d"/> from a double array.</summary>
            <param name="d">16 4x4 marix values in row major order.</param>
        </member>
        <member name="M:Google.EUDK.Matrix4x4d.ToRowMajorDoubleArray">
            <summary>
            Creates a row major double[16] array from this Matrix4x4d.
            </summary>
            <returns>A double[16] containing the fields of the matrix in row major order.</returns>
        </member>
        <member name="M:Google.EUDK.Matrix4x4d.ToColumnMajorDoubleArray">
            <summary>
            Creates a column major double[16] array from this Matrix4x4d.
            </summary>
            <returns>A double[16] containing the fields of the matrix in column major order.</returns>
        </member>
        <member name="M:Google.EUDK.Matrix4x4d.op_Multiply(Google.EUDK.Matrix4x4d,System.Double)">
            <summary>
            Implements matrix scalar multiplication.
            </summary>
            <param name="lhs">The matrix to multiply with the scalar.</param>
            <param name="scalar">The scalar to multiply the matrix with.</param>
            <returns></returns>
        </member>
        <member name="M:Google.EUDK.Matrix4x4d.op_Multiply(System.Double,Google.EUDK.Matrix4x4d)">
            <summary>
            Implements scalar matrix multiplication.
            </summary>
            <param name="scalar">The scalar to multiply the matrix with.</param>
            <param name="rhs">The matrix to multiply with the scalar.</param>
            <returns></returns>
        </member>
        <member name="M:Google.EUDK.Matrix4x4d.GetPosition">
            <summary>
            Get the translation vector from a transformation matrix.
            </summary>
            <returns>The translation vector.</returns>
        </member>
        <member name="M:Google.EUDK.Matrix4x4d.GetRotation">
            <summary>
            Extracts rotation from transformation matrix.
            </summary>
            <returns>The rotation quaternion.</returns>
        </member>
        <member name="M:Google.EUDK.Matrix4x4d.GetScale">
            <summary>
            Get the scale vector from a transformation matrix.
            </summary>
            <returns>The scale vector.</returns>
        </member>
        <member name="M:Google.EUDK.Matrix4x4d.SwapColumns(System.Int32,System.Int32)">
            <summary>Swaps two columns.</summary>
            <param name="i1">The index of the first column to swap with.</param>
            <param name="i2">The index of the second column to swap with.</param>
        </member>
        <member name="M:Google.EUDK.Matrix4x4d.SwapRows(System.Int32,System.Int32)">
            <summary>Swaps two rows.</summary>
            <param name="j1">The index of the first row to swap with.</param>
            <param name="j2">The index of the second row to swap with.</param>
        </member>
        <member name="M:Google.EUDK.Matrix4x4d.Adjoint">
            <summary>Computes the classical adjoint of this matrix.</summary>
            <returns>
            A copy of the current <see cref="T:Google.EUDK.Matrix4x4d"/> with the classical adjoint of this
            matrix.
            </returns>
        </member>
        <member name="M:Google.EUDK.Matrix4x4d.Minor(System.Int32,System.Int32,System.Int32,System.Int32,System.Int32,System.Int32)">
            <summary>
            Computes a minor of this matrix, with the submatrix specified by indices r0, r1, r2, c0,
            c1, c2.
            </summary>
            <returns>The minor of the current <see cref="T:Google.EUDK.Matrix4x4d"/>.</returns>
        </member>
        <member name="P:Google.EUDK.Matrix4x4d.inverse">
            <summary>
            The inverse of this matrix (Read Only).
            If the determinant of the matrix is 0 it will return the zero-matrix.
            </summary>
        </member>
        <member name="P:Google.EUDK.Matrix4x4d.transpose">
            <summary>
            Returns the transpose of this matrix (Read Only).
            </summary>
        </member>
        <member name="P:Google.EUDK.Matrix4x4d.isIdentity">
            <summary>
            Is this the identity matrix?
            </summary>
        </member>
        <member name="P:Google.EUDK.Matrix4x4d.determinant">
            <summary>
            The determinant of the matrix.
            </summary>
        </member>
        <member name="P:Google.EUDK.Matrix4x4d.Item(System.Int32,System.Int32)">
            <summary>
            Access element at [row, column].
            </summary>
            <param name="row">The row of the element.</param>
            <param name="column">The column of the element.</param>
            <returns></returns>
        </member>
        <member name="P:Google.EUDK.Matrix4x4d.Item(System.Int32)">
            <summary>
            Gets/Sets the i-th element in column-major order.
            </summary>
            <param name="index">The index of the element to look up in column-major order.</param>
            <returns>The element.</returns>
        </member>
        <member name="P:Google.EUDK.Matrix4x4d.zero">
            <summary>
            Returns a matrix with all elements set to zero (Read Only).
            </summary>
        </member>
        <member name="P:Google.EUDK.Matrix4x4d.identity">
            <summary>
            Returns the identity matrix (Read Only).
            </summary>
        </member>
        <member name="T:UnityEngine.Matrix4x4Extensions">
            <summary>Extension methods for Matrix4x4 class.</summary>
        </member>
        <member name="M:UnityEngine.Matrix4x4Extensions.GetPosition(UnityEngine.Matrix4x4)">
            <summary>Get the translation vector from a transformation matrix.</summary>
            <param name="matrix">The transformation matrix. Must be orthogonal.</param>
            <returns>The translation vector.</returns>
        </member>
        <member name="M:UnityEngine.Matrix4x4Extensions.GetRotation(UnityEngine.Matrix4x4)">
            <summary>Extracts rotation from orthogonal transformation matrix.</summary>
            <param name="matrix">The transformation matrix. Must be orthogonal.</param>
            <returns>The rotation quaternion.</returns>
        </member>
        <member name="M:UnityEngine.Matrix4x4Extensions.GetScale(UnityEngine.Matrix4x4)">
            <summary>Get the scale vector from a transformation matrix.</summary>
            <param name="m">The transformation matrix. Must be orthogonal.</param>
            <returns>The scale vector.</returns>
        </member>
        <member name="M:UnityEngine.Matrix4x4Extensions.ToRowMajorFloatArray(UnityEngine.Matrix4x4)">
            <summary>
            Creates a row major float[16] array from this Matrix4x4.
            </summary>
            <returns>A float[16] containing the fields of the matrix in row major order.</returns>
        </member>
        <member name="M:UnityEngine.Matrix4x4Extensions.ToColumnMajorFloatArray(UnityEngine.Matrix4x4)">
            <summary>
            Creates a column major float[16] array from this Matrix4x4d.
            </summary>
            <returns>A float[16] containing the fields of the matrix in column major order.</returns>
        </member>
        <member name="T:Google.EUDK.Vector3d">
            <summary>
            This is a double precision Vector3d implementation. The interface of this class does
            intentionally not adhere to EUDK naming conventions and instead replicates the naming
            conventions of UnityEngine.Vector3 in order to be in-place replaceable with it.
            </summary>
        </member>
        <member name="F:Google.EUDK.Vector3d.x">
            <summary>
            X component of the vector.
            </summary>
        </member>
        <member name="F:Google.EUDK.Vector3d.y">
            <summary>
            Y component of the vector.
            </summary>
        </member>
        <member name="F:Google.EUDK.Vector3d.z">
            <summary>
            Z component of the vector.
            </summary>
        </member>
        <member name="M:Google.EUDK.Vector3d.#ctor(System.Double,System.Double,System.Double)">
            <summary>
            Creates a new vector with given x, y, z components.
            </summary>
        </member>
        <member name="M:Google.EUDK.Vector3d.#ctor(System.Double,System.Double)">
            <summary>
            Creates a new vector with given x, y components and sets z to zero.
            </summary>
        </member>
        <member name="M:Google.EUDK.Vector3d.Slerp(Google.EUDK.Vector3d,Google.EUDK.Vector3d,System.Double)">
            <summary>
            Spherically interpolates between two vectors.
            </summary>
            <remarks>
            Interpolates between a and b by amount t. The difference between this and linear
            interpolation (aka, "lerp") is that the vectors are treated as directions rather than points
            in space. The direction of the returned vector is interpolated by the angle and its
            magnitude is interpolated between the magnitudes of a and b.
            The parameter t is clamped to the range [0, 1].
            </remarks>
        </member>
        <member name="M:Google.EUDK.Vector3d.SlerpUnclamped(Google.EUDK.Vector3d,Google.EUDK.Vector3d,System.Double)">
            <summary>
            Spherically interpolates between two vectors.
            </summary>
            <remarks>
            Interpolates between a and b by amount t. The difference between this and linear
            interpolation (aka, "lerp") is that the vectors are treated as directions rather than points
            in space. The direction of the returned vector is interpolated by the angle and its
            magnitude is interpolated between the magnitudes of a and b.
            </remarks>
        </member>
        <member name="M:Google.EUDK.Vector3d.OrthoNormalize(Google.EUDK.Vector3d@,Google.EUDK.Vector3d@)">
            <summary>
            Makes vectors normalized and orthogonal to each other.
            </summary>
            <remarks>
            Normalizes normal. Normalizes tangent and makes sure it is orthogonal to normal (that is,
            angle between them is 90 degrees).
            </remarks>
        </member>
        <member name="M:Google.EUDK.Vector3d.OrthoNormalize(Google.EUDK.Vector3d@,Google.EUDK.Vector3d@,Google.EUDK.Vector3d@)">
            <summary>
            Makes vectors normalized and orthogonal to each other.
            </summary>
            <remarks>
            Normalizes normal. Normalizes tangent and makes sure it is orthogonal to normal. Normalizes
            binormal and makes sure it is orthogonal to both normal and tangent.
            </remarks>
        </member>
        <member name="M:Google.EUDK.Vector3d.RotateTowards(Google.EUDK.Vector3d,Google.EUDK.Vector3d,System.Double,System.Double)">
            <summary>
            Rotates a vector current towards target.
            </summary>
            <remarks>
            This function is similar to MoveTowards except that the vector is treated as a direction
            rather than a position. The current vector will be rotated round toward the target direction
            by an angle of maxRadiansDelta, although it will land exactly on the target rather than
            overshoot. If the magnitudes of current and target are different then the magnitude of the
            result will be linearly interpolated during the rotation. If a negative value is used for
            maxRadiansDelta, the vector will rotate away from target until it is pointing in exactly the
            opposite direction, then stop.
            </remarks>
        </member>
        <!-- Badly formed XML comment ignored for member "M:Google.EUDK.Vector3d.Lerp(Google.EUDK.Vector3d,Google.EUDK.Vector3d,System.Double)" -->
        <member name="M:Google.EUDK.Vector3d.LerpUnclamped(Google.EUDK.Vector3d,Google.EUDK.Vector3d,System.Double)">
            <summary>
            Linearly interpolates between two vectors a and b by the interpolant t. Extrapolates if t is
            outside of the range [0,1].
            </summary>
            <param name="a">The first vector.</param>
            <param name="b">The second vector.</param>
            <param name="t">The interpolant.</param>
            <returns>a * (1-t) + b * t.</returns>
        </member>
        <member name="M:Google.EUDK.Vector3d.MoveTowards(Google.EUDK.Vector3d,Google.EUDK.Vector3d,System.Double)">
            <summary>
            Moves a point current in a straight line towards a target point.
            </summary>
            <param name="current">The point to move.</param>
            <param name="target">The target to move the point towards.</param>
            <param name="maxDistanceDelta">The maximum distance the point will be moved.</param>
            <returns>The new position of the moved point.</returns>
        </member>
        <member name="M:Google.EUDK.Vector3d.SmoothDamp(Google.EUDK.Vector3d,Google.EUDK.Vector3d,Google.EUDK.Vector3d@,System.Double,System.Double)">
            <summary>
            Gradually changes a vector towards a desired goal over time.
            </summary>
            <remarks>
            The vector is smoothed by some spring-damper like function, which will never overshoot. The
            most common use is for smoothing a follow camera.
            </remarks>
            <param name="current">The current position.</param>
            <param name="target">The position we are trying to reach.</param>
            <param name="currentVelocity">The current velocity, this value is modified by the function
            every time you call it.</param>
            <param name="smoothTime">Approximately the time it will take to reach the target. A smaller
            value will reach the target faster.</param>
            <param name="maxSpeed">Optionally allows you to clamp the maximum speed.</param>
            <returns>The changed vector.</returns>
        </member>
        <member name="M:Google.EUDK.Vector3d.SmoothDamp(Google.EUDK.Vector3d,Google.EUDK.Vector3d,Google.EUDK.Vector3d@,System.Double)">
            <summary>
            Gradually changes a vector towards a desired goal over time.
            </summary>
            <remarks>
            The vector is smoothed by some spring-damper like function, which will never overshoot. The
            most common use is for smoothing a follow camera.
            </remarks>
            <param name="current">The current position.</param>
            <param name="target">The position we are trying to reach.</param>
            <param name="currentVelocity">The current velocity, this value is modified by the function
            every time you call it.</param>
            <param name="smoothTime">Approximately the time it will take to reach the target. A smaller
            value will reach the target faster.</param>
            <returns>The changed vector.</returns>
        </member>
        <member name="M:Google.EUDK.Vector3d.SmoothDamp(Google.EUDK.Vector3d,Google.EUDK.Vector3d,Google.EUDK.Vector3d@,System.Double,System.Double,System.Double)">
            <summary>
            Gradually changes a vector towards a desired goal over time.
            </summary>
            <remarks>
            The vector is smoothed by some spring-damper like function, which will never overshoot. The
            most common use is for smoothing a follow camera.
            </remarks>
            <param name="current">The current position.</param>
            <param name="target">The position we are trying to reach.</param>
            <param name="currentVelocity">The current velocity, this value is modified by the function
            every time you call it.</param>
            <param name="smoothTime">Approximately the time it will take to reach the target. A smaller
            value will reach the target faster.</param>
            <param name="maxSpeed">Optionally allows you to clamp the maximum speed.</param>
            <param name="deltaTime">The time since the last call to this function. By default
            Time.deltaTime.</param>
            <returns>The changed vector.</returns>
        </member>
        <member name="M:Google.EUDK.Vector3d.Set(System.Double,System.Double,System.Double)">
            <summary>
            Sets the components of this vector.
            </summary>
            <param name="newX">The new X value.</param>
            <param name="newY">The new Y value.</param>
            <param name="newZ">The new Z value.</param>
        </member>
        <member name="M:Google.EUDK.Vector3d.Scale(Google.EUDK.Vector3d,Google.EUDK.Vector3d)">
            <summary>
            Multiplies two vectors component-wise.
            </summary>
            <remarks>
            Every component in the result is a component of a multiplied by the same component of b.
            </remarks>
            <param name="a">The first vector.</param>
            <param name="b">The second vector.</param>
            <returns>A new vector with all elements being the element-wise products of a and b.
            </returns>
        </member>
        <member name="M:Google.EUDK.Vector3d.Scale(Google.EUDK.Vector3d)">
            <summary>
            Multiplies the components of this vector by the components of another vector.
            </summary>
            <param name="scale">The vector to multiply by component-wise.</param>
        </member>
        <member name="M:Google.EUDK.Vector3d.Cross(Google.EUDK.Vector3d,Google.EUDK.Vector3d)">
            <summary>
            Cross Product of two vectors.
            </summary>
            <remarks>
            The cross product of two vectors results in a third vector which is perpendicular to the two
            input vectors. The result's magnitude is equal to the magnitudes of the two inputs
            multiplied together and then multiplied by the sine of the angle between the inputs.
            </remarks>
            <param name="lhs">The first vector.</param>
            <param name="rhs">The second vector.</param>
            <returns>The cross product lhs x rhs.</returns>
        </member>
        <member name="M:Google.EUDK.Vector3d.GetHashCode">
            <summary>
            Returns the hash code for this Vector3d.
            </summary>
        </member>
        <member name="M:Google.EUDK.Vector3d.Equals(System.Object)">
            <summary>
            Returns true if the given vector is exactly equal to this vector.
            </summary>
            <param name="other">The other object to compare this vector against.</param>
        </member>
        <member name="M:Google.EUDK.Vector3d.Reflect(Google.EUDK.Vector3d,Google.EUDK.Vector3d)">
            <summary>
            Reflects a vector off the plane defined by a normal.
            </summary>
            <remarks>
            The inNormal vector defines a plane (a plane's normal is the vector that is perpendicular to
            its surface). the inDirection vector is treated as a directional arrow coming in to the
            plane. The returned value is a vector of equal magnitude to inDirection but with its
            direction reflected.
            </remarks>
            <param name="inDirection">The direction of the incoming vector.</param>
            <param name="inNormal">The normal of the plane to reflect on.</param>
            <returns></returns>
        </member>
        <member name="M:Google.EUDK.Vector3d.Normalize(Google.EUDK.Vector3d)">
            <summary>
            Returns a vector with the same direction and a magnitude of 1.
            </summary>
            <param name="value">The vector to normalize.</param>
            <returns>The normalized vector.</returns>
        </member>
        <member name="M:Google.EUDK.Vector3d.Normalize">
            <summary>
            Makes this vector have a magnitude of 1.
            </summary>
            <remarks>
            When normalized, a vector keeps the same direction but its length is 1.0.
            Note that this function will change the current vector.If you want to keep the current
            vector unchanged, use normalized variable. If this vector is too small to be normalized it
            will be set to zero.
            </remarks>
        </member>
        <member name="M:Google.EUDK.Vector3d.Dot(Google.EUDK.Vector3d,Google.EUDK.Vector3d)">
            <summary>
            Dot Product of two vectors.
            </summary>
            <remarks>
            The dot product is a double value equal to the magnitudes of the two vectors multiplied
            together and then multiplied by the cosine of the angle between them. For normalized vectors
            Dot returns 1 if they point in exactly the same direction, -1 if they point in completely
            opposite directions and zero if the vectors are perpendicular.
            </remarks>
            <param name="lhs">The first vector.</param>
            <param name="rhs">The second vector.</param>
            <returns>Returns the Dot product lhs . rhs.</returns>
        </member>
        <member name="M:Google.EUDK.Vector3d.Project(Google.EUDK.Vector3d,Google.EUDK.Vector3d)">
            <summary>
            Projects a vector onto another vector.
            </summary>
            <remarks>
            To understand vector projection, imagine that onNormal is resting on a line pointing in its
            direction. Somewhere along that line will be the nearest point to the tip of vector. The
            projection is just onNormal rescaled so that it reaches that point on the line.
            The function will return a zero vector if onNormal is almost zero.
            </remarks>
            <param name="vector">The vector to project.</param>
            <param name="onNormal">The normal to project the vector onto.</param>
            <returns>The projected vector.</returns>
        </member>
        <member name="M:Google.EUDK.Vector3d.ProjectOnPlane(Google.EUDK.Vector3d,Google.EUDK.Vector3d)">
            <summary>
            Projects a vector onto a plane defined by a normal orthogonal to the plane.
            </summary>
            <param name="vector">The vector to project.</param>
            <param name="planeNormal">The normal of the plane to project the vector onto.</param>
            <returns></returns>
        </member>
        <member name="M:Google.EUDK.Vector3d.Angle(Google.EUDK.Vector3d,Google.EUDK.Vector3d)">
            <summary>
            Returns the angle in degrees between from and to.
            </summary>
            <remarks>
            The angle returned is always the non reflex angle between the two vectors - ie the smaller
            of the two possible angles between them and never greater than 180 degrees.
            </remarks>
            <param name="from">The angle extends round from this vector.</param>
            <param name="to">The angle extends round to this vector.</param>
            <returns></returns>
        </member>
        <member name="M:Google.EUDK.Vector3d.Distance(Google.EUDK.Vector3d,Google.EUDK.Vector3d)">
            <summary>
            Returns the distance between a and b.
            </summary>
        </member>
        <member name="M:Google.EUDK.Vector3d.ClampMagnitude(Google.EUDK.Vector3d,System.Double)">
            <summary>
            Returns a copy of vector with its magnitude clamped to maxLength.
            </summary>
        </member>
        <member name="M:Google.EUDK.Vector3d.Magnitude(Google.EUDK.Vector3d)">
            <summary>
            Computes the magnitude of a vector.
            </summary>
            <param name="a">The vector to compute the magnitude of.</param>
            <returns>The magnitude of vector a.</returns>
        </member>
        <member name="M:Google.EUDK.Vector3d.SqrMagnitude(Google.EUDK.Vector3d)">
            <summary>
            Computes the squared magnitude of a vector.
            </summary>
            <param name="a">The vector to compute the squared magnitude of.</param>
            <returns>The squared magnitude of vector a.</returns>
        </member>
        <member name="M:Google.EUDK.Vector3d.Min(Google.EUDK.Vector3d,Google.EUDK.Vector3d)">
            <summary>
            Returns a vector that is made from the smallest components of two vectors.
            </summary>
        </member>
        <member name="M:Google.EUDK.Vector3d.Max(Google.EUDK.Vector3d,Google.EUDK.Vector3d)">
            <summary>
            Returns a vector that is made from the largest components of two vectors.
            </summary>
        </member>
        <member name="M:Google.EUDK.Vector3d.op_Addition(Google.EUDK.Vector3d,Google.EUDK.Vector3d)">
            <summary>
            Adds two vectors.
            </summary>
        </member>
        <member name="M:Google.EUDK.Vector3d.op_Subtraction(Google.EUDK.Vector3d,Google.EUDK.Vector3d)">
            <summary>
            Subtracts one vector from another.
            </summary>
        </member>
        <member name="M:Google.EUDK.Vector3d.op_UnaryNegation(Google.EUDK.Vector3d)">
            <summary>
            Negates a vector.
            </summary>
        </member>
        <member name="M:Google.EUDK.Vector3d.op_Multiply(Google.EUDK.Vector3d,System.Double)">
            <summary>
            Multiplies a vector by a number.
            </summary>
        </member>
        <member name="M:Google.EUDK.Vector3d.op_Multiply(System.Double,Google.EUDK.Vector3d)">
            <summary>
            Multiplies a vector by a number.
            </summary>
        </member>
        <member name="M:Google.EUDK.Vector3d.op_Division(Google.EUDK.Vector3d,System.Double)">
            <summary>
            Divides a vector by a number.
            </summary>
        </member>
        <member name="M:Google.EUDK.Vector3d.op_Equality(Google.EUDK.Vector3d,Google.EUDK.Vector3d)">
            <summary>
            Returns true if two vectors are approximately equal.
            </summary>
            <remarks>
            To allow for double precision inaccuracies, the two vectors are considered equal if the
            magnitude of their difference is less than 1e-15.
            </remarks>
        </member>
        <member name="M:Google.EUDK.Vector3d.op_Inequality(Google.EUDK.Vector3d,Google.EUDK.Vector3d)">
            <summary>
            Returns true if two vectors are not approximately equal.
            </summary>
            <remarks>
            See documentation of the == operator.
            </remarks>
        </member>
        <member name="M:Google.EUDK.Vector3d.ToString">
            <summary>
            Returns a nicely formatted string for this vector.
            </summary>
        </member>
        <member name="M:Google.EUDK.Vector3d.ToString(System.String)">
            <summary>
            Returns a nicely formatted string for this vector where each component is formated using
            format.
            </summary>
            <param name="format">The format to use for the components.</param>
        </member>
        <member name="M:Google.EUDK.Vector3d.Equals(Google.EUDK.Vector3d)">
            <summary>
            Non-boxing Equals method.
            </summary>
            <param name="other">The other Vector3d to compare against.</param>
            <returns>True iff a component wise equality test returns true for all components.</returns>
        </member>
        <member name="M:Google.EUDK.Vector3d.ToDoubleArray">
            <summary>
            Creates a double[3] array from this Vector3d.
            </summary>
            <returns>A double[3] containing the x, y, z fields of the vector.</returns>
        </member>
        <member name="M:Google.EUDK.Vector3d.op_Explicit(UnityEngine.Vector3)~Google.EUDK.Vector3d">
            <summary>
            Explicit cast from float precision Vector3 to double precision Vector3d.
            </summary>
            <remarks>
            We could make this conversion implicit, as we're not losing precision. However it makes
            sense to clearly see in code when such a conversion is happening.
            </remarks>
            <param name="v">The float precision vector.</param>
        </member>
        <member name="M:Google.EUDK.Vector3d.op_Explicit(Google.EUDK.Vector3d)~UnityEngine.Vector3">
            <summary>
            Explicit cast from double precision Vector3 to float precision Vector3.
            </summary>
            <param name="v">The double precision vector.</param>
        </member>
        <member name="M:Google.EUDK.Vector3d.Clamp(System.Double,System.Double,System.Double)">
            <summary>
            Clamps value to the range [min, max].
            </summary>
        </member>
        <member name="P:Google.EUDK.Vector3d.Item(System.Int32)">
            <summary>
            Access the x, y, z components using [0], [1], [2] respectively.
            </summary>
            <param name="index">The index of the component to access.</param>
            <returns></returns>
        </member>
        <member name="P:Google.EUDK.Vector3d.normalized">
            <summary>
            Returns this vector with a magnitude of 1 (Read Only).
            </summary>
        </member>
        <member name="P:Google.EUDK.Vector3d.magnitude">
            <summary>
            Returns the length of this vector (Read Only).
            </summary>
        </member>
        <member name="P:Google.EUDK.Vector3d.sqrMagnitude">
            <summary>
            Returns the squared length of this vector (Read Only).
            </summary>
        </member>
        <member name="P:Google.EUDK.Vector3d.zero">
            <summary>
            Shorthand for writing Vector3d(0, 0, 0).
            </summary>
        </member>
        <member name="P:Google.EUDK.Vector3d.one">
            <summary>
            Shorthand for writing Vector3d(1, 1, 1).
            </summary>
        </member>
        <member name="P:Google.EUDK.Vector3d.forward">
            <summary>
            Shorthand for writing Vector3d(0, 0, 1).
            </summary>
        </member>
        <member name="P:Google.EUDK.Vector3d.back">
            <summary>
            Shorthand for writing Vector3d(0, 0, -1).
            </summary>
        </member>
        <member name="P:Google.EUDK.Vector3d.up">
            <summary>
            Shorthand for writing Vector3d(0, 1, 0).
            </summary>
        </member>
        <member name="P:Google.EUDK.Vector3d.down">
            <summary>
            Shorthand for writing Vector3d(0, -1, 0).
            </summary>
        </member>
        <member name="P:Google.EUDK.Vector3d.left">
            <summary>
            Shorthand for writing Vector3d(-1, 0, 0).
            </summary>
        </member>
        <member name="P:Google.EUDK.Vector3d.right">
            <summary>
            Shorthand for writing Vector3d(1, 0, 0).
            </summary>
        </member>
        <member name="T:UnityEngine.Vector3Extensions">
            <summary>Extension methods for UnityEngine.Vector3.</summary>
        </member>
        <member name="M:UnityEngine.Vector3Extensions.ToFloatArray(UnityEngine.Vector3)">
            <summary>
            Creates a float[3] array from this Vector3.
            </summary>
            <param name="vector">The vector to convert to float[].</param>
            <returns>A float[3] containing the x, y, z fields of the vector.</returns>
        </member>
        <member name="T:Google.EUDK.Vector4d">
            <summary>
            This is a double precision Vector4d implementation. The interface of this class does
            intentionally not adhere to EUDK naming conventions and instead replicates the naming
            conventions of UnityEngine.Vector4 in order to be in-place replaceable with it.
            </summary>
        </member>
        <member name="F:Google.EUDK.Vector4d.x">
            <summary>
            X component of the vector.
            </summary>
        </member>
        <member name="F:Google.EUDK.Vector4d.y">
            <summary>
            Y component of the vector.
            </summary>
        </member>
        <member name="F:Google.EUDK.Vector4d.z">
            <summary>
            Z component of the vector.
            </summary>
        </member>
        <member name="F:Google.EUDK.Vector4d.w">
            <summary>
            W component of the vector.
            </summary>
        </member>
        <member name="M:Google.EUDK.Vector4d.#ctor(System.Double,System.Double,System.Double,System.Double)">
            <summary>
            Creates a new vector with given x, y, z, w components.
            </summary>
        </member>
        <member name="M:Google.EUDK.Vector4d.#ctor(System.Double,System.Double,System.Double)">
            <summary>
            Creates a new vector with given x, y, z components and sets w to zero.
            </summary>
        </member>
        <member name="M:Google.EUDK.Vector4d.#ctor(System.Double,System.Double)">
            <summary>
            Creates a new vector with given x, y components and sets z and w to zero.
            </summary>
        </member>
        <member name="M:Google.EUDK.Vector4d.Set(System.Double,System.Double,System.Double,System.Double)">
            <summary>
            Sets the components of this vector.
            </summary>
            <param name="newX">The new X value.</param>
            <param name="newY">The new Y value.</param>
            <param name="newZ">The new Z value.</param>
            <param name="newW">The new W value.</param>
        </member>
        <!-- Badly formed XML comment ignored for member "M:Google.EUDK.Vector4d.Lerp(Google.EUDK.Vector4d,Google.EUDK.Vector4d,System.Double)" -->
        <member name="M:Google.EUDK.Vector4d.LerpUnclamped(Google.EUDK.Vector4d,Google.EUDK.Vector4d,System.Double)">
            <summary>
            Linearly interpolates between two vectors a and b by the interpolant t. Extrapolates if t is
            outside of the range [0,1].
            </summary>
            <param name="a">The first vector.</param>
            <param name="b">The second vector.</param>
            <param name="t">The interpolant.</param>
            <returns>a * (1-t) + b * t.</returns>
        </member>
        <member name="M:Google.EUDK.Vector4d.MoveTowards(Google.EUDK.Vector4d,Google.EUDK.Vector4d,System.Double)">
            <summary>
            Moves a point current towards target.
            </summary>
            <remarks>
            This is essentially the same as Vector4.Lerp but instead the function will ensure that the
            speed never exceeds maxDistanceDelta. Negative values of maxDistanceDelta pushes the vector
            away from target.
            </remarks>
        </member>
        <member name="M:Google.EUDK.Vector4d.Scale(Google.EUDK.Vector4d,Google.EUDK.Vector4d)">
            <summary>
            Multiplies two vectors component-wise.
            </summary>
        </member>
        <member name="M:Google.EUDK.Vector4d.Scale(Google.EUDK.Vector4d)">
            <summary>
            Multiplies the components of this vector by the components of another vector.
            </summary>
            <param name="scale">The vector to multiply by component-wise.</param>
        </member>
        <member name="M:Google.EUDK.Vector4d.GetHashCode">
            <summary>
            Returns the hash code for this Vector4d.
            </summary>
        </member>
        <member name="M:Google.EUDK.Vector4d.Equals(Google.EUDK.Vector4d)">
            <summary>
            Non-boxing Equals method.
            </summary>
            <param name="other">The other Vector3d to compare against.</param>
            <returns>True iff a component wise equality test returns true for all components.</returns>
        </member>
        <member name="M:Google.EUDK.Vector4d.Equals(System.Object)">
            <summary>
            Returns true if the given vector is exactly equal to this vector.
            </summary>
            <param name="other">The other object to compare this vector against.</param>
        </member>
        <member name="M:Google.EUDK.Vector4d.Normalize(Google.EUDK.Vector4d)">
            <summary>
            Returns a vector with the same direction and a magnitude of 1.
            </summary>
            <param name="value">The vector to normalize.</param>
            <returns>The normalized vector.</returns>
        </member>
        <member name="M:Google.EUDK.Vector4d.Normalize">
            <summary>
            Makes this vector have a magnitude of 1. If this vector is too small to be normalized it
            will be set to zero.
            </summary>
        </member>
        <member name="M:Google.EUDK.Vector4d.Dot(Google.EUDK.Vector4d,Google.EUDK.Vector4d)">
            <summary>
            Dot Product of two vectors.
            </summary>
            <param name="a">The first vector.</param>
            <param name="b">The second vector.</param>
            <returns>Returns a . b.</returns>
        </member>
        <member name="M:Google.EUDK.Vector4d.Project(Google.EUDK.Vector4d,Google.EUDK.Vector4d)">
            <summary>
            Projects a vector onto another vector.
            </summary>
            <returns>Returns a projected onto b.</returns>
        </member>
        <member name="M:Google.EUDK.Vector4d.Distance(Google.EUDK.Vector4d,Google.EUDK.Vector4d)">
            <summary>
            Returns the distance between a and b.
            </summary>
        </member>
        <member name="M:Google.EUDK.Vector4d.Magnitude(Google.EUDK.Vector4d)">
            <summary>
            Computes the length of a vector.
            The length of the vector is square root of (x*x+y*y+z*z+w*w).
            </summary>
            <param name="a">The vector to compute the magnitude of.</param>
            <returns>The magnitude of the vector.</returns>
        </member>
        <member name="M:Google.EUDK.Vector4d.Min(Google.EUDK.Vector4d,Google.EUDK.Vector4d)">
            <summary>
            Returns a vector that is made from the smallest components of two vectors.
            </summary>
        </member>
        <member name="M:Google.EUDK.Vector4d.Max(Google.EUDK.Vector4d,Google.EUDK.Vector4d)">
            <summary>
            Returns a vector that is made from the largest components of two vectors.
            </summary>
        </member>
        <member name="M:Google.EUDK.Vector4d.op_Addition(Google.EUDK.Vector4d,Google.EUDK.Vector4d)">
            <summary>
            Adds two vectors.
            </summary>
        </member>
        <member name="M:Google.EUDK.Vector4d.op_Subtraction(Google.EUDK.Vector4d,Google.EUDK.Vector4d)">
            <summary>
            Subtracts one vector from another.
            </summary>
        </member>
        <member name="M:Google.EUDK.Vector4d.op_UnaryNegation(Google.EUDK.Vector4d)">
            <summary>
            Negates a vector.
            </summary>
        </member>
        <member name="M:Google.EUDK.Vector4d.op_Multiply(Google.EUDK.Vector4d,System.Double)">
            <summary>
            Multiplies a vector by a number.
            </summary>
        </member>
        <member name="M:Google.EUDK.Vector4d.op_Multiply(System.Double,Google.EUDK.Vector4d)">
            <summary>
            Multiplies a vector by a number.
            </summary>
        </member>
        <member name="M:Google.EUDK.Vector4d.op_Division(Google.EUDK.Vector4d,System.Double)">
            <summary>
            Divides a vector by a number.
            </summary>
        </member>
        <member name="M:Google.EUDK.Vector4d.op_Equality(Google.EUDK.Vector4d,Google.EUDK.Vector4d)">
            <summary>
            Returns true if two vectors are approximately equal.
            </summary>
            <remarks>
            To allow for double precision inaccuracies, the two vectors are considered equal if the
            magnitude of their difference is less than 1e-15.
            </remarks>
        </member>
        <member name="M:Google.EUDK.Vector4d.op_Inequality(Google.EUDK.Vector4d,Google.EUDK.Vector4d)">
            <summary>
            Returns true if two vectors are not approximately equal.
            </summary>
            <remarks>
            See documentation of the == operator.
            </remarks>
        </member>
        <member name="M:Google.EUDK.Vector4d.op_Implicit(Google.EUDK.Vector3d)~Google.EUDK.Vector4d">
            <summary>
            Converts a Vector3d to a Vector4d.
            </summary>
        </member>
        <member name="M:Google.EUDK.Vector4d.op_Implicit(Google.EUDK.Vector4d)~Google.EUDK.Vector3d">
            <summary>
            Converts a Vector4d to a Vector3d.
            </summary>
        </member>
        <member name="M:Google.EUDK.Vector4d.op_Implicit(UnityEngine.Vector2)~Google.EUDK.Vector4d">
            <summary>
            Converts a Vector2 to a Vector4d.
            </summary>
        </member>
        <member name="M:Google.EUDK.Vector4d.op_Explicit(Google.EUDK.Vector4d)~UnityEngine.Vector2">
            <summary>
            Converts a Vector4d to a Vector2.
            </summary>
        </member>
        <member name="M:Google.EUDK.Vector4d.ToString">
            <summary>
            Returns a nicely formatted string for this vector.
            </summary>
        </member>
        <member name="M:Google.EUDK.Vector4d.ToString(System.String)">
            <summary>
            Returns a nicely formatted string for this vector where each component is formated using
            format.
            </summary>
            <param name="format">The format to use for the components.</param>
        </member>
        <member name="M:Google.EUDK.Vector4d.SqrMagnitude(Google.EUDK.Vector4d)">
            <summary>
            Returns the squared length of a vector.
            </summary>
            <param name="a">The vector to compute the squared magnitude of.</param>
            <returns>The squared magnitude of the vector.</returns>
        </member>
        <member name="M:Google.EUDK.Vector4d.SqrMagnitude">
            <summary>
            Returns the squared length of this a vector.
            </summary>
        </member>
        <member name="M:Google.EUDK.Vector4d.Clamp(System.Double,System.Double,System.Double)">
            <summary>
            Clamps value to the range [min, max].
            </summary>
        </member>
        <member name="P:Google.EUDK.Vector4d.Item(System.Int32)">
            <summary>
            Access the x, y, z, w components using [0], [1], [2], [3] respectively.
            </summary>
            <param name="index">The index of the component to access.</param>
            <returns></returns>
        </member>
        <member name="P:Google.EUDK.Vector4d.normalized">
            <summary>
            Returns this vector with a magnitude of 1 (Read Only).
            </summary>
        </member>
        <member name="P:Google.EUDK.Vector4d.magnitude">
            <summary>
            Returns the length of this vector (Read Only).
            </summary>
        </member>
        <member name="P:Google.EUDK.Vector4d.sqrMagnitude">
            <summary>
            Returns the squared length of this vector (Read Only).
            </summary>
        </member>
        <member name="P:Google.EUDK.Vector4d.zero">
            <summary>
            Shorthand for writing Vector4d(0, 0, 0, 0).
            </summary>
        </member>
        <member name="P:Google.EUDK.Vector4d.one">
            <summary>
            Shorthand for writing Vector4d(1, 1, 1, 1).
            </summary>
        </member>
        <member name="T:Google.EUDK.Memory">
            <summary>Class to manage memory that got allocated on the native side.</summary>
        </member>
        <member name="F:Google.EUDK.Memory.DLL_NAME">
            <summary>
            The native plugin's library name used for DllImport.
            </summary>
        </member>
        <member name="M:Google.EUDK.Memory.FreeNativeMemory(System.IntPtr)">
            <summary>
            Free memory that got allocated in different ways on the native side.
            </summary>
            <param name="memoryReference">Pointer to memory adress to be freed.</param>
        </member>
        <member name="T:Google.EUDK.RockNode">
            <summary>
            Structure to hold the relevant datasructures of a RockNode together.
            </summary>
        </member>
        <member name="F:Google.EUDK.RockNode._Status">
            <summary>
            Current status of the RockNode.
            </summary>
        </member>
        <member name="F:Google.EUDK.RockNode._GameObject">
            <summary>
            The root GameObject of this RockNode. The meshes are stored in it's children.
            </summary>
        </member>
        <member name="F:Google.EUDK.RockNode._Renderers">
            <summary>
            The renderers of all meshes of this RockNode.
            </summary>
        </member>
        <member name="F:Google.EUDK.RockNode._Materials">
            <summary>
            The materials of all meshes of this RockNode.
            </summary>
        </member>
        <member name="F:Google.EUDK.RockNode._Transform">
            <summary>
            The Unity transform of the GameObject.
            </summary>
        </member>
        <member name="F:Google.EUDK.RockNode._NodePath">
            <summary>
            The RockPath of the RockNode.
            </summary>
        </member>
        <member name="F:Google.EUDK.RockNode._ExtraAdditions">
            <summary>
            Keeps track of extra additions of the RockPaths from the EUDK native plugin to Unity,
            compared to removals on the same Path. An addition of a RockNode that is already in Unity
            incremenets _ExtraAdditions by 1, a removal only removes the RockNode from Unity if
            _ExtraAdditions is 0 or else just decrements _ExtraAdditions by 1 (b/37890295).
            </summary>
        </member>
        <!-- Badly formed XML comment ignored for member "M:Google.EUDK.RockNode.#ctor(Google.EUDK.NodePath)" -->
        <member name="M:Google.EUDK.RockNode.Populate(UnityEngine.GameObject)">
            <summary>
            Populates the fields of this RockNode based on the passed GameObject, which must be the
            parsing result of a rock proto.
            </summary>
        </member>
        <member name="M:Google.EUDK.RockNode.Dispose">
            <summary>
            Frees all Unity Resources this RockNode currently references and destroys the associated
            GameObjects.
            </summary>
        </member>
        <member name="T:Google.EUDK.RockNode.RockNodeStatus">
            <summary>
            Status of a RockNode on the Unity side regarding decoding/parsing or creation of GameObject.
            </summary>
        </member>
        <member name="F:Google.EUDK.RockNode.RockNodeStatus.LOADING">
            <summary>
            Before the GameObject is created and added to the scene.
            </summary>
        </member>
        <member name="F:Google.EUDK.RockNode.RockNodeStatus.READY">
            <summary>
            Loaded and rendered in scene.
            </summary>
        </member>
        <member name="F:Google.EUDK.RockNode.RockNodeStatus.REMOVED">
            <summary>
            Still loading but already removed again.
            </summary>
        </member>
        <member name="F:Google.EUDK.RockNode.RockNodeStatus.DESTROYED">
            <summary>
            GameObject got destroyed.
            </summary>
        </member>
        <member name="T:Google.EUDK.RockProtoParser">
            <summary>Class to parse one RockNode from a RockProto stream.</summary>
        </member>
        <member name="F:Google.EUDK.RockProtoParser._materialPropertyBlock">
            <summary>
            Reference to the MaterialPropertyBlock used to supply all created Rocknode meshes with
            texture data without unnecessary GC allocations on each Rocknode parse.
            </summary>
        </member>
        <member name="F:Google.EUDK.RockProtoParser._mainTextureId">
            <summary>
            Shader Id of the main texture.
            </summary>
        </member>
        <member name="M:Google.EUDK.RockProtoParser.ParseAsync(Google.EUDK.RockProtoParser.DecodeContainer,UnityEngine.Material,Google.EUDK.EUDKNativePluginData.ProtoRockStructMesh[],System.String,System.Int32)">
            <summary>
            Parses one RockNode from a custom datastructure passed from the EUDK native plugin and
            returns a GameObject that contains one child GameObject for each RockMesh in this RockNode.
            These children each contain one textured RockMesh.
            </summary>
            <param name="data">The data container storing the decoded data.</param>
            <param name="earthMaterial">The material used for the newly created GameObjects.</param>
            <param name="meshes">The meshes array storing the rockmeshes.</param>
            <param name="octant_path">The octant path as passed from the EUDK native plugin.</param>
            <returns>The enumerator to execute this function asynchronously.</returns>
            <remarks>
            TODO(b/38021565): Add support for per vertex octants like in ParseAsyncProto().
            </remarks>
        </member>
        <member name="M:Google.EUDK.RockProtoParser.ParseAsyncProto(System.IO.Stream,Google.EUDK.RockProtoParser.DecodeContainer,UnityEngine.Material)">
            <summary>
            Parses one RockNode from a RockProto passed as Stream and returns a GameObject that
            contains one child GameObject for each RockMesh in this RockNode. These children each
            contain one textured RockMesh.
            TODO(mbuhlmann): Current implementation is synchronous, refactor to make asynchronous and
            then access Unity API from main thread.
            </summary>
            <param name="stream">Stream containing the RockProto to parse.</param>
            <param name="data">The data container storing the decoded data.</param>
            <param name="earthMaterial">The material used for the generated meshes.</param>
            <returns>The enumerator to execute this function asyncronously.</returns>
        </member>
        <member name="M:Google.EUDK.RockProtoParser.ProcessContainer(System.String,Google.EUDK.RockProtoParser.Rich3DContainer[],Google.EUDK.RockProtoParser.DecodeContainer,UnityEngine.Material)">
            <summary>
            Creates a GameObject with the parsed meshes from the plugin. Is used by the
            parse methods to use the parsed data.
            </summary>
            <param name="octant_path">String representing the octant path of that RockNode.</param>
            <param name="rich3Ds">Array with parsed data from the EUDK native plugin.</param>
            <param name="data">Structure to fill in the required return values.</param>
            <param name="earthMaterial">The default material to be used for the meshes.</param>
        </member>
        <member name="M:Google.EUDK.RockProtoParser.Parse(System.IO.Stream,Google.EUDK.Matrix4x4d@)">
            <summary>
            Parses one RockNode from a RockProto passed as Stream and returns a GameObject that
            contains one child GameObject for each RockMesh in this RockNode. These children each
            contain one textured RockMesh.
            TODO(mbuhlmann): Current implementation is synchronous,
            refactor to make asynchronous and then access Unity API from main thread.
            </summary>
            <param name="stream">Stream containing the RockProto to parse.</param>
            <param name="globeFromMesh">
            Double precision matrix transforming from local mesh coordinates to global coordinates.
            </param>
            <returns>
            Returns the parsed game object for the provided stream and transformation matrix.
            </returns>
        </member>
        <member name="M:Google.EUDK.RockProtoParser.DecodeVertices(System.Byte[])">
            <summary>
            Decodes the vertices as they are encoded in rockproto's NodeData.Mesh.vertices.
            </summary>
            <returns>The decoded vertices.</returns>
            <param name="vData">The encoded vertex bytedata.</param>
        </member>
        <member name="M:Google.EUDK.RockProtoParser.DecodeTexCoords(System.Byte[],System.Collections.Generic.List{System.Single},System.Int32)">
            <summary>
            Decodes TextureCoordinates as they are encoded in rockproto's
            NodeData.Mesh.texture_coordinates.
            </summary>
            <returns>The decoded texture coordinates.</returns>
            <param name="tcData">The encoded texture coordinate data.</param>
            <param name="uvOffsetAndScale">
            Uv offset and scale, as they are stored in NodeData.Mesh.uv_offset_and_scale.
            </param>
            <param name="vertexCount">Number of vertices to decode texture coordinates for.</param>
        </member>
        <member name="M:Google.EUDK.RockProtoParser.DecodeNormalTable(System.Byte[])">
            <summary>
            Decodes the normal table as it is encoded in rockproto's NodeData.normal_table.
            </summary>
            <returns>The normal table.</returns>
            <param name="ntData">The encoded normal table data.</param>
        </member>
        <member name="M:Google.EUDK.RockProtoParser.OctahedralMapToUnitVector(System.Single,System.Single)">
             <summary>
             Decodes one normal vector from it's octahedral representation in rockproto's
             NodeData.normal_table.
             The 3D normal is encoded in a 2D value.
            
             The mapping looks like this:
            
                     -1,0,0    0,0,1   -1,0,0
              1.0        S-------*-------S
                         |      /|\      |
               ^         |    /  |  \    |
               |         |  /    |    \  |
               |         |/      |      \|
               t  0,-1,0 *-------N-------* 0,1,0
               |         |\      |1,0,0 /|
               |         |  \    |    /  |
               |         |    \  |  /    |
                         |      \|/      |
              0.0        S-------*-------S
                     -1,0,0    0,0,-1  -1,0,0
            
                        0.0 -----s----> 1.0
            
             The point marked N maps to (1,0,0) and could be considered the "north pole"
             of a unit sphere.  The four points marked S all map to (-1,0,0) and could be
             considered the "south pole" of a unit sphere.  The diamond in the middle
             covers the sphere's northern hemisphere, and the four triangles at the
             corners together fold under to collectively cover the southern hemisphere.
             </summary>
             <param name="sIn">S in.</param>
             <param name="tIn">T in.</param>
             <returns>The map to unit vector.</returns>
        </member>
        <member name="M:Google.EUDK.RockProtoParser.DecodeNormals(System.Byte[],UnityEngine.Vector3[],System.Int32)">
            <summary>
            Decodes the actual per vertex normals as they are stored in NodeData.Mesh.normals.
            </summary>
            <returns>The per vertex normals.</returns>
            <param name="nData">The encoded normal data.</param>
            <param name="normalTable">The normal table used for the encoding.</param>
            <param name="vertexCount">Number of vertices to decode normals for.</param>
        </member>
        <member name="M:Google.EUDK.RockProtoParser.ReadLayersAndOctants(System.Byte[])">
            <summary>
            Decodes the layer and octant ranges of a mesh.
            </summary>
            <param name="layerAndOctantCounts">the encoded ranges.</param>
            <returns>
            An ordered List of OctantRanges, with the first OctantRange starting at index 0 and each
            subsequent OctantRange starting at _RangeEnd+1 of the previous OctantRange.
            </returns>
        </member>
        <member name="M:Google.EUDK.RockProtoParser.DecodeTriangles(System.Byte[],System.Boolean,System.Byte[],System.Collections.Generic.List{Google.EUDK.RockProtoParser.OctantRange},UnityEngine.Vector2[])">
            <summary>
            Decodes the triangles as they are encoded in rockproto's NodeData.Mesh.indices.
            </summary>
            <returns>
            The triangles as array of indices. Every three indices make up one triangle.
            </returns>
            <param name="iData">The encoded index data.</param>
            <param name="skipSkirts">
            If set to <c>true</c> skirt triangles will be stripped out.
            </param>
            <param name="skirtFlags">
            A byte array containing one bit for each triangle, indicating whether the triangle is a
            skirt.
            </param>
            <param name="octantRanges">
            Array holding the octantRanges. The first OctantRange starts at 0, subsequent octantRanges
            start at _RangeEnd+1 of the previous range.
            </param>
            <param name="octantMasksOut">
            octantMasksOut is an array that will contain the octants of the vertices after this method
            returns. The array must have a size equal to the number of vertices. This is a Vector2[]
            rather than a byte[] (each octant is encoded as an OctantMask with the respective
            bit set. There are 8 octants.) so that it can be directly stored to the uv4 array of the
            mesh. The x component of this array holds the octants (as respective octantMask bytes
            directly cast to float).
            </param>
        </member>
        <member name="M:Google.EUDK.RockProtoParser.ParseIndexValue(System.Byte[],System.Int32@,System.Int32@)">
            <summary>
            Parses one index value from the encoded indices and advances the offset and highWaterMark
            accordingly.
            </summary>
            <returns>The index value.</returns>
            <param name="buffer">The bytedata containing the indices.</param>
            <param name="offset">
            The offset to start reading from. After calling this function, offset will point to the
            start position of the next index.
            </param>
            <param name="highWaterMark">
            The current high water mark. Calling this function will update the highWaterMark
            accordingly.
            </param>
        </member>
        <member name="M:Google.EUDK.RockProtoParser.ReadVarInt(System.Byte[],System.Int32,System.Int32@)">
            <summary>Parses one encoded VarInt and returns the number of bytes traversed.</summary>
            <returns>The number of bytes traversed.</returns>
            <param name="buffer">The bytedata containing the VarInt.</param>
            <param name="index">The offset to start reading from.</param>
            <param name="outValue">
            The VarInt returned.
            TODO(mbuhlmann): While not relevant for rockproto, VarInt's can actually contain 64bit
            integer data.
            </param>
        </member>
        <member name="T:Google.EUDK.RockProtoParser.DecodeContainer">
            <summary>
            The decode container class holds references to relevant objects for the background thread -
            unity thread sync.
            </summary>
        </member>
        <member name="F:Google.EUDK.RockProtoParser.DecodeContainer._NodePath">
            <summary>
             The node path of the rocknode to decode.
            </summary>
        </member>
        <member name="F:Google.EUDK.RockProtoParser.DecodeContainer._GlobeFromMesh">
            <summary>The globe from mesh transformation matrix.</summary>
        </member>
        <member name="F:Google.EUDK.RockProtoParser.DecodeContainer._Node">
            <summary>
            Reference to the <see cref="T:UnityEngine.GameObject"/> of this RockMesh node.
            </summary>
        </member>
        <member name="T:Google.EUDK.RockProtoParser.Rich3DContainer">
            <summary>
            The decode container class holds relevant raw Rich3D protobuffer data for the background
            thread - unity thread sync.
            </summary>
        </member>
        <member name="F:Google.EUDK.RockProtoParser.Rich3DContainer._Indices">
            <summary>Holds the indices of the RockMesh provided by the plugin.</summary>
        </member>
        <member name="F:Google.EUDK.RockProtoParser.Rich3DContainer._NodeDataHash">
            <summary>Holds the hash of the RockMesh provided by the plugin.</summary>
        </member>
        <member name="F:Google.EUDK.RockProtoParser.Rich3DContainer._Normals">
            <summary>Holds the normals of the RockMesh provided by the plugin.</summary>
        </member>
        <member name="F:Google.EUDK.RockProtoParser.Rich3DContainer._TexCoords">
            <summary>Holds the texture coordinates of the RockMesh provided by the plugin.</summary>
        </member>
        <member name="F:Google.EUDK.RockProtoParser.Rich3DContainer._TextureData">
            <summary>Holds the texture data of the RockMesh provided by the plugin.</summary>
        </member>
        <member name="F:Google.EUDK.RockProtoParser.Rich3DContainer._Vertices">
            <summary>Holds the vertices of the RockMesh provided by the plugin.</summary>
        </member>
        <member name="F:Google.EUDK.RockProtoParser.Rich3DContainer._Octants">
            <summary>
            The x component holds the per vertex octants of the RockMesh provided by the
            plugin. The y component is unused currently. The float value is directly cast from the
            byte representing the octant mask that has only this vertex's octant bit set. We use
            a Vector2[] here instead of a float[] to be able to assign it to uv4 of the Unity Mesh.
            </summary>
        </member>
        <member name="F:Google.EUDK.RockProtoParser.Rich3DContainer._TextureWidth">
            <summary>Holds the width of the texture.</summary>
        </member>
        <member name="F:Google.EUDK.RockProtoParser.Rich3DContainer._TextureHeight">
            <summary>Holds the height of the texture.</summary>
        </member>
        <member name="F:Google.EUDK.RockProtoParser.Rich3DContainer._TextureRawFormat">
            <summary>Holds the texture format of the texture stored in _TextureData.</summary>
        </member>
        <member name="T:Google.EUDK.RockProtoParser.OctantRange">
            <summary>
            Stores range of indices covering a single octant within a layer.
            </summary>
        </member>
        <member name="F:Google.EUDK.RockProtoParser.OctantRange._RangeEnd">
            <summary>
            The end of this OctantRange.
            </summary>
        </member>
        <member name="F:Google.EUDK.RockProtoParser.OctantRange._Layer">
            <summary>
            The layer of this OctantRange.
            </summary>
        </member>
        <member name="F:Google.EUDK.RockProtoParser.OctantRange._Octant">
            <summary>
            The octant of this OctantRange (a value between 0 and 7).
            </summary>
        </member>
        <member name="T:Google.EUDK.AnalyticsService">
            <summary>
            Used for EUDK wide analytics.
            </summary>
        </member>
        <member name="F:Google.EUDK.AnalyticsService._googleAnalytics">
            <summary>
            The Google Analytics third party MonoBehavior.
            </summary>
        </member>
        <member name="M:Google.EUDK.AnalyticsService.Initialize">
            <summary>
            Initializes the analytics service by adding a hidden GameObject to scene with a
            GoogleAnalyticsV4 MonoBehavior.
            </summary>
        </member>
        <member name="M:Google.EUDK.AnalyticsService.LogEvent(System.String,System.String,System.String,System.Int64)">
            <summary>
            Logs an event to the analytics backend.
            </summary>
        </member>
        <member name="T:Google.EUDK.CoreService">
            <summary>
            CoreService provides functionality to be informed about relevant Unity events without the
            overhead of implementing the corresponding invoke functions or being a
            UnityEngine.MonoBehaviour.
            </summary>
        </member>
        <member name="F:Google.EUDK.CoreService._host">
            <summary>
            MonoBehaviour host object used by the core service to receive Unity lifecycle events and
            execute coroutines if necessary.
            </summary>
        </member>
        <member name="M:Google.EUDK.CoreService.Update">
            <summary>
            Called by EUDKPlugin to inform all subscribers of OnUpdate that Unity Update took place.
            </summary>
        </member>
        <member name="M:Google.EUDK.CoreService.LateUpdate">
            <summary>
            Called by EUDKPlugin to inform all subscribers of OnUpdate that Unity LateUpdate took
            place.
            </summary>
        </member>
        <member name="M:Google.EUDK.CoreService.FixedUpdate">
            <summary>
            Called by EUDKPlugin to inform all subscribers of OnUpdate that Unity FixedUpdate took
            place.
            </summary>
        </member>
        <member name="M:Google.EUDK.CoreService.Setup">
            <summary>
            Sets the core service up.
            </summary>
        </member>
        <member name="M:Google.EUDK.CoreService.Cleanup">
            <summary>
            Cleans up the service and unregisters all event subscribers.
            </summary>
        </member>
        <member name="E:Google.EUDK.CoreService.OnUpdate">
            <summary>
            Event to which Earth Unity Development Kit plugin classes can subscribe to be informed about
            Unity's Update call without adding the overhead of the native - .NET invoke.
            </summary>
        </member>
        <member name="E:Google.EUDK.CoreService.OnLateUpdate">
            <summary>
            Event to which Earth Unity Development Kit plugin classes can subscribe to be informed about
            Unity's LateUpdate call without adding the overhead of the native - .NET invoke.
            </summary>
        </member>
        <member name="E:Google.EUDK.CoreService.OnFixedUpdate">
            <summary>
            Event to which Earth Unity Development Kit plugin classes can subscribe to be informed about
            Unity's FixedUpdate call without adding the overhead of the native - .NET invoke.
            </summary>
        </member>
        <member name="T:Google.EUDK.CoreService.UnityEventHost">
            <summary>
            Private MonoBehaviour used exclusively to forward the Unity events to the service.
            </summary>
        </member>
        <member name="M:Google.EUDK.CoreService.UnityEventHost.Update">
            <summary>
            Called by Unity every frame. Forwards the Update invocation to CoreService.Update.
            </summary>
        </member>
        <member name="M:Google.EUDK.CoreService.UnityEventHost.LateUpdate">
            <summary>
            Called by Unity every frame. Forwards the LateUpdate invocation to CoreService.LateUpdate.
            </summary>
        </member>
        <member name="M:Google.EUDK.CoreService.UnityEventHost.FixedUpdate">
            <summary>
            Called by Unity every physics timestep. Forwards the FixedUpdate invocation to
            CoreService.FixedUpdate.
            </summary>
        </member>
        <member name="T:Google.EUDK.RelocationService">
            <summary>
            Provides the world relocation functionality to keep the user and camera within a predefined
            range around the origin of Unity's canonical cartesian space. This relocation ensures
            reasonable float accuracy and stability independent of the location of the traversed camera in
            Earth Globe coordinates.
            </summary>
        </member>
        <member name="F:Google.EUDK.RelocationService._cameraTransform">
            <summary>
            The camera transform of the GameObject driving the EUDK native plugin's traversal.
            </summary>
        </member>
        <member name="F:Google.EUDK.RelocationService._eudkPlugin">
            <summary>
            Reference to the EUDK native plugin owning this service to interact with it.
            </summary>
        </member>
        <member name="F:Google.EUDK.RelocationService._unityWorldFromGlobe">
            <summary>
            The current unityWorldFromGlobe transformation matrix.
            </summary>
        </member>
        <member name="F:Google.EUDK.RelocationService._maximumRelocationOffsetSquare">
            <summary>
            The maximum squared offset of _cameraTransform in Unity world units from [0,0,0] until the
            world is relocated. This value is stored as square to avoid the usage of sqrt for
            comparision. Default value is 1500 non-squared units.
            </summary>
            <remarks>
            TODO(mscharer): Find the maximum stable range of physics operations to define this.
            </remarks>
        </member>
        <member name="M:Google.EUDK.RelocationService.#ctor(Google.EUDK.EUDKPlugin,UnityEngine.Transform)">
            <summary>
            Creates a new instance of the relocation service for a given camera.
            </summary>
            <param name="EUDKPlugin">The EUDKPlugin owning this relocation service.</param>
            <param name="cameraTransform">The transform representing the camera in the scene.</param>
        </member>
        <member name="M:Google.EUDK.RelocationService.Destroy">
            <summary>
            Destroys this instance of the RelocationService.
            </summary>
        </member>
        <member name="M:Google.EUDK.RelocationService.AddRocknodeRoot(UnityEngine.Transform,Google.EUDK.Matrix4x4d)">
            <summary>
            Adds a new Rocknode to the relocation service management.
            </summary>
            <param name="rocknodeRoot">The transform of the game object we want to manage.</param>
            <param name="globeFromMesh">The globeFromMesh matrix of this rocknode.</param>
        </member>
        <member name="M:Google.EUDK.RelocationService.OnLateUpdate">
            <summary>
            Called at the end of Unity's main loop prior to rendering. Used to calculate if a world
            relocation is required.
            </summary>
        </member>
        <member name="M:Google.EUDK.RelocationService.ApplyRelocation">
            <summary>
            Called to apply a world relocation basing on the _cameraTransform's current state.
            </summary>
        </member>
        <member name="M:Google.EUDK.RelocationService.PrepareRelocationService">
            <summary>
            Prepares the RelocationService once the the EUDKPlugin is ready.
            </summary>
        </member>
        <member name="E:Google.EUDK.RelocationService._preLocationUpdated">
            <summary>
            Event that is fired before the world is relocated.
            </summary>
        </member>
        <member name="E:Google.EUDK.RelocationService.PreLocationUpdated">
            <summary>
            Internal property to subscribe to the preLocationUpdated event.
            </summary>
        </member>
        <member name="E:Google.EUDK.RelocationService._worldLocationUpdated">
            <summary>
            Event that is fired when the world is being relocated.
            </summary>
        </member>
        <member name="E:Google.EUDK.RelocationService._locationUpdated">
            <summary>
            Event that is fired when the world is relocated. The event is called after all
            _rocknodeRoots have been repositioned but before _cameraTransform is updated.
            </summary>
        </member>
        <member name="E:Google.EUDK.RelocationService.LocationUpdated">
            <summary>
            Internal property to subscribe to the locationUpdated event.
            </summary>
        </member>
        <member name="P:Google.EUDK.RelocationService._MaximumRelocationOffset">
            <summary>
            The threshold against which the length of _cameraTransform.position is compared. If it
            exceeds the threshold, the world is relocated. Default value is 1500 units.
            </summary>
        </member>
        <member name="T:Google.EUDK.RelocationService.RocknodeRelocator">
            <summary>
            Private class to handle the relocation of rocknodes. Stores the original, untransformed
            GlobeFromUnityLocal transformation of a rocknode to provide a numerically stable relocation
            calculation.
            </summary>
        </member>
        <member name="F:Google.EUDK.RelocationService.RocknodeRelocator._GlobeFromUnityLocal">
            <summary>
            The Rocknode's globeFromUnityLocal matrix from which the new relocated Transform is
            computed during relocation.
            </summary>
        </member>
        <member name="F:Google.EUDK.RelocationService.RocknodeRelocator._Transform">
            <summary>
            The UnityEngine.Transform of the GameObject that will be relocated to retain its
            world origin relative positioning after relocation.
            </summary>
        </member>
        <member name="M:Google.EUDK.RelocationService.RocknodeRelocator.OnEnable">
            <summary>
            Called by Unity when the rocknode is enabled.
            </summary>
        </member>
        <member name="M:Google.EUDK.RelocationService.RocknodeRelocator.OnDisable">
            <summary>
            Called by Unity when the rocknode is disabled.
            </summary>
        </member>
        <member name="M:Google.EUDK.RelocationService.RocknodeRelocator.OnRelocate">
            <summary>
            Called by the RelocationService after the relocation took place. Only called if the
            rocknode is active.
            </summary>
        </member>
        <member name="T:CielaSpike.Ninja">
            <summary>
            Ninja jumps between threads.
            </summary>
        </member>
        <member name="F:CielaSpike.Ninja.JumpToUnity">
            <summary>
            Yield return it to switch to Unity main thread.
            </summary>
        </member>
        <member name="F:CielaSpike.Ninja.JumpBack">
            <summary>
            Yield return it to switch to background thread.
            </summary>
        </member>
        <member name="T:CielaSpike.Task">
            <summary>
            Represents an async task.
            </summary>
        </member>
        <member name="M:CielaSpike.Task.MoveNext">
            <summary>
            Runs next iteration.
            </summary>
            <returns><code>true</code> for continue, otherwise <code>false</code>.</returns>
        </member>
        <member name="M:CielaSpike.Task.Cancel">
            <summary>
            Cancel the task till next iteration;
            </summary>
        </member>
        <member name="M:CielaSpike.Task.Wait">
            <summary>
            A co-routine that waits the task.
            </summary>
        </member>
        <member name="P:CielaSpike.Task.Current">
            <summary>
            The current iterator yield return value.
            </summary>
        </member>
        <member name="P:CielaSpike.Task.State">
            <summary>
            Gets state of the task.
            </summary>
        </member>
        <member name="P:CielaSpike.Task.Exception">
            <summary>
            Gets exception during running.
            </summary>
        </member>
        <member name="T:CielaSpike.TaskState">
            <summary>
            Running state of a task.
            </summary>
        </member>
        <member name="F:CielaSpike.TaskState.Init">
            <summary>
            Task has been created, but has not begun.
            </summary>
        </member>
        <member name="F:CielaSpike.TaskState.Running">
            <summary>
            Task is running.
            </summary>
        </member>
        <member name="F:CielaSpike.TaskState.Done">
            <summary>
            Task has finished properly.
            </summary>
        </member>
        <member name="F:CielaSpike.TaskState.Cancelled">
            <summary>
            Task has been cancelled.
            </summary>
        </member>
        <member name="F:CielaSpike.TaskState.Error">
            <summary>
            Task terminated by errors.
            </summary>
        </member>
        <member name="M:CielaSpike.ThreadNinjaMonoBehaviourExtensions.StartCoroutineAsync(UnityEngine.MonoBehaviour,System.Collections.IEnumerator,CielaSpike.Task@)">
            <summary>
            Start a co-routine on a background thread.
            </summary>
            <param name="task">Gets a task object with more control on the background thread.</param>
            <returns></returns>
        </member>
        <member name="M:CielaSpike.ThreadNinjaMonoBehaviourExtensions.StartCoroutineAsync(UnityEngine.MonoBehaviour,System.Collections.IEnumerator)">
            <summary>
            Start a co-routine on a background thread.
            </summary>
        </member>
    </members>
</doc>
