Ejemplo n.º 1
0
        /// <summary>
        /// Save a snapshot that contains all the data currently associated with a query result
        /// </summary>
        /// <param name="queryResult">The query result to get the data from.</param>
        public void TakeSnapshot(QueryResult queryResult)
        {
            Clear();
            DataID = -1;

            var db = ModuleLoaderCore.instance.GetModule <MARSDatabase>();

            if (db == null || queryResult == null)
            {
                return;
            }

            DataID = queryResult.DataID;

            db.GetTraitProvider(out MARSTraitDataProvider <System.Boolean> semanticTagProvider);
            MARSDatabase.GetAllTraitsForId(queryResult.DataID, semanticTagProvider, m_SemanticTagTraits);

            db.GetTraitProvider(out MARSTraitDataProvider <System.Int32> intProvider);
            MARSDatabase.GetAllTraitsForId(queryResult.DataID, intProvider, m_IntTraits);

            db.GetTraitProvider(out MARSTraitDataProvider <System.Single> floatProvider);
            MARSDatabase.GetAllTraitsForId(queryResult.DataID, floatProvider, m_FloatTraits);

            db.GetTraitProvider(out MARSTraitDataProvider <System.String> stringProvider);
            MARSDatabase.GetAllTraitsForId(queryResult.DataID, stringProvider, m_StringTraits);

            db.GetTraitProvider(out MARSTraitDataProvider <UnityEngine.Pose> poseProvider);
            MARSDatabase.GetAllTraitsForId(queryResult.DataID, poseProvider, m_PoseTraits);

            db.GetTraitProvider(out MARSTraitDataProvider <UnityEngine.Vector2> vector2Provider);
            MARSDatabase.GetAllTraitsForId(queryResult.DataID, vector2Provider, m_Vector2Traits);
        }