diff --git a/.gitignore b/.gitignore index 7edaead..f5f57c6 100644 --- a/.gitignore +++ b/.gitignore @@ -4,44 +4,11 @@ ### Rider ### # Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion, Android Studio and WebStorm # Reference: https://intellij-support.jetbrains.com/hc/en-us/articles/206544839 - -# User-specific stuff -.idea/**/workspace.xml -.idea/**/tasks.xml -.idea/**/usage.statistics.xml -.idea/**/dictionaries -.idea/**/shelf - -# Generated files -.idea/**/contentModel.xml - -# Sensitive or high-churn files -.idea/**/dataSources/ -.idea/**/dataSources.ids -.idea/**/dataSources.local.xml -.idea/**/sqlDataSources.xml -.idea/**/dynamic.xml -.idea/**/uiDesigner.xml -.idea/**/dbnavigator.xml - -# Gradle -.idea/**/gradle.xml -.idea/**/libraries - -# Gradle and Maven with auto-import -# When using Gradle or Maven with auto-import, you should exclude module files, -# since they will be recreated, and may cause churn. Uncomment if using -# auto-import. -# .idea/modules.xml -# .idea/*.iml -# .idea/modules +.idea/ # CMake cmake-build-*/ -# Mongo Explorer plugin -.idea/**/mongoSettings.xml - # File-based project format *.iws @@ -54,18 +21,12 @@ out/ # JIRA plugin atlassian-ide-plugin.xml -# Cursive Clojure plugin -.idea/replstate.xml - # Crashlytics plugin (for Android Studio and IntelliJ) com_crashlytics_export_strings.xml crashlytics.properties crashlytics-build.properties fabric.properties -# Editor-based Rest Client -.idea/httpRequests - # Android studio 3.1+ serialized cache file .idea/caches/build_file_checksums.ser @@ -120,7 +81,6 @@ Assets/StreamingAssets/crashlytics-build.properties # Temp file *~ -.idea/.idea.UnityInterface # Exclude the Generated Stuff !Generated/ diff --git a/.idea/.gitignore b/.idea/.gitignore deleted file mode 100644 index e69de29..0000000 diff --git a/.idea/.idea.CineastUnityInterface/.idea/encodings.xml b/.idea/.idea.CineastUnityInterface/.idea/encodings.xml deleted file mode 100644 index df87cf9..0000000 --- a/.idea/.idea.CineastUnityInterface/.idea/encodings.xml +++ /dev/null @@ -1,4 +0,0 @@ - - - - \ No newline at end of file diff --git a/.idea/.idea.CineastUnityInterface/.idea/indexLayout.xml b/.idea/.idea.CineastUnityInterface/.idea/indexLayout.xml deleted file mode 100644 index 2220d4b..0000000 --- a/.idea/.idea.CineastUnityInterface/.idea/indexLayout.xml +++ /dev/null @@ -1,25 +0,0 @@ - - - - - - Library/PackageCache/com.unity.ads@2.0.8 - Library/PackageCache/com.unity.analytics@3.2.2 - Library/PackageCache/com.unity.collab-proxy@1.2.15 - Library/PackageCache/com.unity.package-manager-ui@2.0.7 - Library/PackageCache/com.unity.purchasing@2.0.3 - Library/PackageCache/com.unity.textmeshpro@1.4.1 - Packages - ProjectSettings - - - .git - .idea - Library - Logs - Temp - bin - obj - - - \ No newline at end of file diff --git a/.idea/.idea.CineastUnityInterface/.idea/modules.xml b/.idea/.idea.CineastUnityInterface/.idea/modules.xml deleted file mode 100644 index ac5f7a3..0000000 --- a/.idea/.idea.CineastUnityInterface/.idea/modules.xml +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - - - \ No newline at end of file diff --git a/.idea/.idea.CineastUnityInterface/.idea/projectSettingsUpdater.xml b/.idea/.idea.CineastUnityInterface/.idea/projectSettingsUpdater.xml deleted file mode 100644 index 7f5e4fe..0000000 --- a/.idea/.idea.CineastUnityInterface/.idea/projectSettingsUpdater.xml +++ /dev/null @@ -1,6 +0,0 @@ - - - - - \ No newline at end of file diff --git a/.idea/.idea.CineastUnityInterface/.idea/vcs.xml b/.idea/.idea.CineastUnityInterface/.idea/vcs.xml deleted file mode 100644 index 593e10b..0000000 --- a/.idea/.idea.CineastUnityInterface/.idea/vcs.xml +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/.idea/.idea.CineastUnityInterface/riderModule.iml b/.idea/.idea.CineastUnityInterface/riderModule.iml deleted file mode 100644 index cea4207..0000000 --- a/.idea/.idea.CineastUnityInterface/riderModule.iml +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - \ No newline at end of file diff --git a/README.md b/README.md index 0a986e7..aaa1bec 100644 --- a/README.md +++ b/README.md @@ -1,89 +1,51 @@ -# README - -**This is in very early development. Do not use in production.** - -## Features - -This is a Unity3d endpoint for vitrivr's Cineast RESTful API. +# Cineast Unity Interface +A Unity Package Manager package for the Cineast OpenAPI RESTful API. See [Cineast](https://github.com/vitrivr/cineast) for further API informations ## Prerequisites -This package provides a Unity3d endpoint for vitrivr's Cineast RESTful API. -Thus, a running cineast instance is a requirement for this package to work. +This package provides a Unity endpoint for vitrivr's Cineast RESTful API. +Thus, a running Cineast instance is a requirement for this package to work. For a guide on how to setup cineast, please see [Cineast's Github page](https://github.com/vitrivr/cineast). -## Usage -- Unity3d +## Usage -- Unity -To use this package in unity, the `manifest.json` has to be expanded by the following entry: +To use this package in Unity, the `manifest.json` has to be expanded by the following entry: ```json "com.vitrivr.unityinterface.cineastapi": "https://github.com/vitrivr/CineastUnityInterface.git" ``` -The Unity Package Manager ( _upm_ ) will take care of downloading and linking this package. +The Unity Package Manager (_upm_) will take care of downloading and linking this package. ### Versions -Besides using [semver]() to specify the package's version, there are two _upm_ packages available: - -* `#release` -- The latest released version of the package (semver version Major.Minor.Path) -* `#latest` -- Development versions of the package (semver version Major.Minor.Path-SNAPSHOT) - -In most of the cases you want to have the `#release` version. In case you would like to have the development version, -use this `manifest.json` entry: - -```json -"com.vitrivr.unityinterface.cineastapi": "https://github.com/vitrivr/UnityInterface.git#latest" -``` - -The package was tested with Unity 2018.4 LTS. - -### Example - -_TODO_ - -### Documentation - -For the underlying API documentation, please refer to `Generated/README.md` and `Generated/docs/`. +This package uses [semver](https://semver.org). It is recommended to manually specify a version in the packages manifest entry. +The package was tested with Unity 2020.3 LTS. ## Usage -- Developer This is a Unity3d project setup to easily develop (and test) the Unity3d Cineast Interface. -We strongly recommend cloning this repository into the `Assets` directory of a Unity shell project to make development and generation of `.meta` files easier. -To allow the shell project to function without compile errors, it is currently necessary to include the `jillejr.newtonsoft.json-for-unity` package as a workaround. Add the following to the root object in `manifest.json` on the same level as `dependencies`: -```json -"scopedRegistries": [ - { - "name": "Packages from jillejr", - "url": "https://npm.cloudsmith.io/jillejr/newtonsoft-json-for-unity/", - "scopes": ["jillejr"] - } -] -``` -And add the following line to the dependencies: `"jillejr.newtonsoft.json-for-unity": "12.0.201"` -To actively develop this package, follow these steps: +We strongly recommend cloning this repository into the `Packages` directory of a Unity shell project to make development and generation of `.meta` files easier. 1. If necessary, update the OpenApi Specs (OAS) of vitrivr. Reade more in [Generate OpenApi Dependencies](#generate-openapi-dependencies). 2. To test your changes and generate the **required** `.meta` files for any files you may have added, import the root directory of this repository into a Unity project as a local package with the `file:` method. 3. Do not forget to create a PR of your work to include it in the main branch. -### Generate OpenApi Dependencies +### Generate OpenAPI Dependencies Follow these steps to generate / update the cineast OAS. We provide the latest generation in this repo for convenience. For unix systems, the build requires an installation of the [.NET Core SDK](https://dotnet.microsoft.com/), [wget](https://www.gnu.org/software/wget/) and [mono](https://www.mono-project.com). Mono and wget are available through [homebrew](https://brew.sh) on mac. -1. Have an updated, running cineast api. -2. Issue the following `gradle` command: +1. Issue the following `gradle` command: ``` - $> ./gradlew clean deploy -Poas="http://cineast-host:port/openapi-specs" tidy + $> ./gradlew clean deploy tidy ``` - Replace `cineast-host:port` with your running cineast api. Most propably this will be the default (`localhost:4567`), in this case you can ommit the argument. -3. (Android Only) Delete the file `Runtime/Libs/Newtonsoft.Json.dll`. -4. Generate the **required** `.meta` files for generated files by importing the root directory of this repository into a Unity project as a local package with the `file:` method. +2. (Android Only) Delete the file `Runtime/Libs/Newtonsoft.Json.dll`. +3. Generate the **required** `.meta` files for generated files by importing the root directory of this repository into a Unity project as a local package with the `file:` method. > _Notice_ > These steps were tested under Windows 10 64bit, using OpenJDK 11 and Gradle 6.1.1. The publish script was tested with python 3.8.2. @@ -105,4 +67,4 @@ This work is licensed under the MIT open source license. Please refer to the LIC ## Credits * Credits go to @neogeek, his [Tutorial](https://github.com/neogeek/unity-package-example) lead to the transformation to a proper _upm_ package. - * Credits go to @SamuelBoerlin, his [first steps](https://github.com/SamuelBoerlin/Cineast-OpenAPI-Implementation) with Cienast and OpenApi helped a lot. + * Credits go to @SamuelBoerlin, his [first steps](https://github.com/SamuelBoerlin/Cineast-OpenAPI-Implementation) with Cineast and OpenAPI helped a lot. diff --git a/Runtime/Libs/Org.Vitrivr.CineastApi.dll b/Runtime/Libs/Org.Vitrivr.CineastApi.dll index bdc3664..0a2a7bb 100755 Binary files a/Runtime/Libs/Org.Vitrivr.CineastApi.dll and b/Runtime/Libs/Org.Vitrivr.CineastApi.dll differ diff --git a/Runtime/Libs/Org.Vitrivr.CineastApi.xml b/Runtime/Libs/Org.Vitrivr.CineastApi.xml index aa61fc8..5287e78 100644 --- a/Runtime/Libs/Org.Vitrivr.CineastApi.xml +++ b/Runtime/Libs/Org.Vitrivr.CineastApi.xml @@ -4,6 +4,73 @@ Org.Vitrivr.CineastApi + + + TemporalObject + + + + + Initializes a new instance of the class. + + segments. + objectId. + score. + + + + Gets or Sets Segments + + + + + Gets or Sets ObjectId + + + + + Gets or Sets Score + + + + + Returns the string presentation of the object + + String presentation of the object + + + + Returns the JSON string presentation of the object + + JSON string presentation of the object + + + + Returns true if objects are equal + + Object to be compared + Boolean + + + + Returns true if TemporalObject instances are equal + + Instance of TemporalObject to be compared + Boolean + + + + Gets the hash code + + Hash code + + + + To validate all properties of the instance + + Validation context + Validation Result + MediaObjectDescriptor @@ -49,20 +116,21 @@ Gets or Sets Mediatype - + Initializes a new instance of the class. - objectId. + objectid. name. path. mediatype. exists. + objectId. contentURL. - + - Gets or Sets ObjectId + Gets or Sets Objectid @@ -80,6 +148,11 @@ Gets or Sets Exists + + + Gets or Sets ObjectId + + Gets or Sets ContentURL @@ -178,6 +251,88 @@ Validation context Validation Result + + + MetadataAccessSpecification + + + + + Defines Type + + + + + Enum OBJECT for value: OBJECT + + + + + Enum SEGMENT for value: SEGMENT + + + + + Gets or Sets Type + + + + + Initializes a new instance of the class. + + type. + domain. + key. + + + + Gets or Sets Domain + + + + + Gets or Sets Key + + + + + Returns the string presentation of the object + + String presentation of the object + + + + Returns the JSON string presentation of the object + + JSON string presentation of the object + + + + Returns true if objects are equal + + Object to be compared + Boolean + + + + Returns true if MetadataAccessSpecification instances are equal + + Instance of MetadataAccessSpecification to be compared + Boolean + + + + Gets the hash code + + Hash code + + + + To validate all properties of the instance + + Validation context + Validation Result + ExtractionContainerMessage @@ -268,6 +423,11 @@ Enum QRSIMILARITY for value: QR_SIMILARITY + + + Enum QRTEMPORAL for value: QR_TEMPORAL + + Gets or Sets MessageType @@ -324,6 +484,66 @@ Validation context Validation Result + + + QueryStage + + + + + Initializes a new instance of the class. + + + + + Initializes a new instance of the class. + + terms (required). + + + + Gets or Sets Terms + + + + + Returns the string presentation of the object + + String presentation of the object + + + + Returns the JSON string presentation of the object + + JSON string presentation of the object + + + + Returns true if objects are equal + + Object to be compared + Boolean + + + + Returns true if QueryStage instances are equal + + Instance of QueryStage to be compared + Boolean + + + + Gets the hash code + + Hash code + + + + To validate all properties of the instance + + Validation context + Validation Result + MediaSegmentQueryResult @@ -414,6 +634,11 @@ Enum QRSIMILARITY for value: QR_SIMILARITY + + + Enum QRTEMPORAL for value: QR_TEMPORAL + + Gets or Sets MessageType @@ -627,6 +852,11 @@ Enum QRSIMILARITY for value: QR_SIMILARITY + + + Enum QRTEMPORAL for value: QR_TEMPORAL + + Gets or Sets MessageType @@ -701,138 +931,324 @@ Validation context Validation Result - + - FeaturesTextCategoryQueryResult + TemporalQuery - + - Initializes a new instance of the class. + Defines MessageType - queryId. - featureValues. - category. - elementID. - + - Gets or Sets QueryId + Enum PING for value: PING - + - Gets or Sets FeatureValues + Enum QSIM for value: Q_SIM - + - Gets or Sets Category + Enum QMLT for value: Q_MLT - + - Gets or Sets ElementID + Enum QNESEG for value: Q_NESEG - + - Returns the string presentation of the object + Enum QSEG for value: Q_SEG - String presentation of the object - + - Returns the JSON string presentation of the object + Enum MLOOKUP for value: M_LOOKUP - JSON string presentation of the object - + - Returns true if objects are equal + Enum QTEMPORAL for value: Q_TEMPORAL - Object to be compared - Boolean - + - Returns true if FeaturesTextCategoryQueryResult instances are equal + Enum SESSIONSTART for value: SESSION_START - Instance of FeaturesTextCategoryQueryResult to be compared - Boolean - + - Gets the hash code + Enum QRSTART for value: QR_START - Hash code - + - To validate all properties of the instance + Enum QREND for value: QR_END - Validation context - Validation Result - + - MediaObjectMetadataDescriptor + Enum QRERROR for value: QR_ERROR - + - Initializes a new instance of the class. + Enum QROBJECT for value: QR_OBJECT - objectId. - domain. - key. - value. - exists. - + - Gets or Sets ObjectId + Enum QRMETADATAO for value: QR_METADATA_O - + - Gets or Sets Domain + Enum QRMETADATAS for value: QR_METADATA_S - + - Gets or Sets Key + Enum QRSEGMENT for value: QR_SEGMENT - + - Gets or Sets Value + Enum QRSIMILARITY for value: QR_SIMILARITY - + - Gets or Sets Exists + Enum QRTEMPORAL for value: QR_TEMPORAL - + - Returns the string presentation of the object + Gets or Sets MessageType - String presentation of the object - + - Returns the JSON string presentation of the object + Initializes a new instance of the class. - JSON string presentation of the object - + - Returns true if objects are equal + Initializes a new instance of the class. - Object to be compared - Boolean - + queries (required). + config. + timeDistances. + maxLength. + metadataAccessSpec. + messageType. + + + + Gets or Sets Queries + + + + + Gets or Sets Config + + + + + Gets or Sets TimeDistances + + + + + Gets or Sets MaxLength + + + + + Gets or Sets MetadataAccessSpec + + + + + Returns the string presentation of the object + + String presentation of the object + + + + Returns the JSON string presentation of the object + + JSON string presentation of the object + + + + Returns true if objects are equal + + Object to be compared + Boolean + + + + Returns true if TemporalQuery instances are equal + + Instance of TemporalQuery to be compared + Boolean + + + + Gets the hash code + + Hash code + + + + To validate all properties of the instance + + Validation context + Validation Result + + + + FeaturesTextCategoryQueryResult + + + + + Initializes a new instance of the class. + + queryId. + featureValues. + category. + elementID. + + + + Gets or Sets QueryId + + + + + Gets or Sets FeatureValues + + + + + Gets or Sets Category + + + + + Gets or Sets ElementID + + + + + Returns the string presentation of the object + + String presentation of the object + + + + Returns the JSON string presentation of the object + + JSON string presentation of the object + + + + Returns true if objects are equal + + Object to be compared + Boolean + + + + Returns true if FeaturesTextCategoryQueryResult instances are equal + + Instance of FeaturesTextCategoryQueryResult to be compared + Boolean + + + + Gets the hash code + + Hash code + + + + To validate all properties of the instance + + Validation context + Validation Result + + + + MediaObjectMetadataDescriptor + + + + + Initializes a new instance of the class. + + objectid. + domain. + key. + value. + exists. + objectId. + + + + Gets or Sets Objectid + + + + + Gets or Sets Domain + + + + + Gets or Sets Key + + + + + Gets or Sets Value + + + + + Gets or Sets Exists + + + + + Gets or Sets ObjectId + + + + + Returns the string presentation of the object + + String presentation of the object + + + + Returns the JSON string presentation of the object + + JSON string presentation of the object + + + + Returns true if objects are equal + + Object to be compared + Boolean + Returns true if MediaObjectMetadataDescriptor instances are equal @@ -858,19 +1274,20 @@ MediaSegmentMetadataDescriptor - + Initializes a new instance of the class. - segmentId. + segmentid. domain. key. value. exists. + segmentId. - + - Gets or Sets SegmentId + Gets or Sets Segmentid @@ -893,6 +1310,11 @@ Gets or Sets Exists + + + Gets or Sets SegmentId + + Returns the string presentation of the object @@ -932,6 +1354,128 @@ Validation context Validation Result + + + SelectResult + + + + + Initializes a new instance of the class. + + columns. + + + + Gets or Sets Columns + + + + + Returns the string presentation of the object + + String presentation of the object + + + + Returns the JSON string presentation of the object + + JSON string presentation of the object + + + + Returns true if objects are equal + + Object to be compared + Boolean + + + + Returns true if SelectResult instances are equal + + Instance of SelectResult to be compared + Boolean + + + + Gets the hash code + + Hash code + + + + To validate all properties of the instance + + Validation context + Validation Result + + + + SelectSpecification + + + + + Initializes a new instance of the class. + + table. + columns. + limit. + + + + Gets or Sets Table + + + + + Gets or Sets Columns + + + + + Gets or Sets Limit + + + + + Returns the string presentation of the object + + String presentation of the object + + + + Returns the JSON string presentation of the object + + JSON string presentation of the object + + + + Returns true if objects are equal + + Object to be compared + Boolean + + + + Returns true if SelectSpecification instances are equal + + Instance of SelectSpecification to be compared + Boolean + + + + Gets the hash code + + Hash code + + + + To validate all properties of the instance + + Validation context + Validation Result + SimilarityQueryResultBatch @@ -1144,19 +1688,24 @@ Enum QRSIMILARITY for value: QR_SIMILARITY + + + Enum QRTEMPORAL for value: QR_TEMPORAL + + Gets or Sets MessageType - + Initializes a new instance of the class. filters. ids. - messageType. idList. + messageType. @@ -1324,156 +1873,313 @@ - Enum Chebyshev for value: chebyshev + Enum Chebyshev for value: chebyshev + + + + + Enum Euclidean for value: euclidean + + + + + Enum Squaredeuclidean for value: squaredeuclidean + + + + + Enum Manhattan for value: manhattan + + + + + Enum Minkowski for value: minkowski + + + + + Enum Spannorm for value: spannorm + + + + + Enum Haversine for value: haversine + + + + + Gets or Sets Distance + + + + + Initializes a new instance of the class. + + queryId. + hints. + distance. + distanceWeights. + norm. + resultsPerModule. + maxResults. + relevantSegmentIds. + correspondenceFunctionIfEmpty. + distanceIfEmpty. + correspondenceFunction. + distanceWeightsIfEmpty. + normIfEmpty. + rawResultsPerModule. + + + + Gets or Sets QueryId + + + + + Gets or Sets DistanceWeights + + + + + Gets or Sets Norm + + + + + Gets or Sets ResultsPerModule + + + + + Gets or Sets MaxResults + + + + + Gets or Sets RelevantSegmentIds + + + + + Gets or Sets CorrespondenceFunctionIfEmpty + + + + + Gets or Sets DistanceIfEmpty + + + + + Gets or Sets CorrespondenceFunction + + + + + Gets or Sets DistanceWeightsIfEmpty + + + + + Gets or Sets NormIfEmpty + + + + + Gets or Sets RawResultsPerModule + + + + + Returns the string presentation of the object + + String presentation of the object + + + + Returns the JSON string presentation of the object + + JSON string presentation of the object + + + + Returns true if objects are equal + + Object to be compared + Boolean + + + + Returns true if QueryConfig instances are equal + + Instance of QueryConfig to be compared + Boolean + + + + Gets the hash code + + Hash code + + + + To validate all properties of the instance + + Validation context + Validation Result + + + + TemporalQueryResult + + + + + Defines MessageType + + + + + Enum PING for value: PING - + - Enum Euclidean for value: euclidean + Enum QSIM for value: Q_SIM - + - Enum Squaredeuclidean for value: squaredeuclidean + Enum QMLT for value: Q_MLT - + - Enum Manhattan for value: manhattan + Enum QNESEG for value: Q_NESEG - + - Enum Minkowski for value: minkowski + Enum QSEG for value: Q_SEG - + - Enum Spannorm for value: spannorm + Enum MLOOKUP for value: M_LOOKUP - + - Enum Haversine for value: haversine + Enum QTEMPORAL for value: Q_TEMPORAL - + - Gets or Sets Distance + Enum SESSIONSTART for value: SESSION_START - + - Initializes a new instance of the class. + Enum QRSTART for value: QR_START - queryId. - hints. - distance. - distanceWeights. - norm. - resultsPerModule. - maxResults. - relevantSegmentIds. - correspondenceFunctionIfEmpty. - distanceIfEmpty. - correspondenceFunction. - normIfEmpty. - distanceWeightsIfEmpty. - rawResultsPerModule. - + - Gets or Sets QueryId + Enum QREND for value: QR_END - + - Gets or Sets DistanceWeights + Enum QRERROR for value: QR_ERROR - + - Gets or Sets Norm + Enum QROBJECT for value: QR_OBJECT - + - Gets or Sets ResultsPerModule + Enum QRMETADATAO for value: QR_METADATA_O - + - Gets or Sets MaxResults + Enum QRMETADATAS for value: QR_METADATA_S - + - Gets or Sets RelevantSegmentIds + Enum QRSEGMENT for value: QR_SEGMENT - + - Gets or Sets CorrespondenceFunctionIfEmpty + Enum QRSIMILARITY for value: QR_SIMILARITY - + - Gets or Sets DistanceIfEmpty + Enum QRTEMPORAL for value: QR_TEMPORAL - + - Gets or Sets CorrespondenceFunction + Gets or Sets MessageType - + - Gets or Sets NormIfEmpty + Initializes a new instance of the class. + content. + queryId. + messageType. - + - Gets or Sets DistanceWeightsIfEmpty + Gets or Sets Content - + - Gets or Sets RawResultsPerModule + Gets or Sets QueryId - + Returns the string presentation of the object String presentation of the object - + Returns the JSON string presentation of the object JSON string presentation of the object - + Returns true if objects are equal Object to be compared Boolean - + - Returns true if QueryConfig instances are equal + Returns true if TemporalQueryResult instances are equal - Instance of QueryConfig to be compared + Instance of TemporalQueryResult to be compared Boolean - + Gets the hash code Hash code - + To validate all properties of the instance @@ -1570,6 +2276,11 @@ Enum QRSIMILARITY for value: QR_SIMILARITY + + + Enum QRTEMPORAL for value: QR_TEMPORAL + + Gets or Sets MessageType @@ -1898,23 +2609,32 @@ Enum QRSIMILARITY for value: QR_SIMILARITY + + + Enum QRTEMPORAL for value: QR_TEMPORAL + + Gets or Sets MessageType - + + + Initializes a new instance of the class. + + + Initializes a new instance of the class. - containers. + terms (required). config. - components. messageType. - + - Gets or Sets Containers + Gets or Sets Terms @@ -1922,11 +2642,6 @@ Gets or Sets Config - - - Gets or Sets Components - - Returns the string presentation of the object @@ -2056,6 +2771,11 @@ Enum QRSIMILARITY for value: QR_SIMILARITY + + + Enum QRTEMPORAL for value: QR_TEMPORAL + + Gets or Sets MessageType @@ -2208,6 +2928,11 @@ Enum QRSIMILARITY for value: QR_SIMILARITY + + + Enum QRTEMPORAL for value: QR_TEMPORAL + + Gets or Sets MessageType @@ -2398,61 +3123,67 @@ Validation context Validation Result - + - QueryComponent + FeaturesByEntityQueryResult - + - Initializes a new instance of the class. + Initializes a new instance of the class. - terms. - containerId. + queryId. + featureMap. + entityName. - + - Gets or Sets Terms + Gets or Sets QueryId - + - Gets or Sets ContainerId + Gets or Sets FeatureMap - + + + Gets or Sets EntityName + + + Returns the string presentation of the object String presentation of the object - + Returns the JSON string presentation of the object JSON string presentation of the object - + Returns true if objects are equal Object to be compared Boolean - + - Returns true if QueryComponent instances are equal + Returns true if FeaturesByEntityQueryResult instances are equal - Instance of QueryComponent to be compared + Instance of FeaturesByEntityQueryResult to be compared Boolean - + Gets the hash code Hash code - + To validate all properties of the instance @@ -2702,6 +3433,11 @@ Enum QRSIMILARITY for value: QR_SIMILARITY + + + Enum QRTEMPORAL for value: QR_TEMPORAL + + Gets or Sets MessageType @@ -2843,6 +3579,11 @@ Enum QRSIMILARITY for value: QR_SIMILARITY + + + Enum QRTEMPORAL for value: QR_TEMPORAL + + Gets or Sets MessageType @@ -2910,11 +3651,37 @@ Tag - + + + Defines Priority + + + + + Enum REQUEST for value: REQUEST + + + + + Enum REQUIRE for value: REQUIRE + + + + + Enum EXCLUDE for value: EXCLUDE + + + + + Gets or Sets Priority + + + Initializes a new instance of the class. name. + priority. id. description. @@ -3132,6 +3899,73 @@ Validation context Validation Result + + + FeaturesByCategoryQueryResult + + + + + Initializes a new instance of the class. + + queryId. + featureMap. + category. + + + + Gets or Sets QueryId + + + + + Gets or Sets FeatureMap + + + + + Gets or Sets Category + + + + + Returns the string presentation of the object + + String presentation of the object + + + + Returns the JSON string presentation of the object + + JSON string presentation of the object + + + + Returns true if objects are equal + + Object to be compared + Boolean + + + + Returns true if FeaturesByCategoryQueryResult instances are equal + + Instance of FeaturesByCategoryQueryResult to be compared + Boolean + + + + Gets the hash code + + Hash code + + + + To validate all properties of the instance + + Validation context + Validation Result + MediaObjectQueryResult @@ -3212,72 +4046,143 @@ Enum QRMETADATAS for value: QR_METADATA_S - + + + Enum QRSEGMENT for value: QR_SEGMENT + + + + + Enum QRSIMILARITY for value: QR_SIMILARITY + + + + + Enum QRTEMPORAL for value: QR_TEMPORAL + + + + + Gets or Sets MessageType + + + + + Initializes a new instance of the class. + + content. + queryId. + messageType. + + + + Gets or Sets Content + + + + + Gets or Sets QueryId + + + + + Returns the string presentation of the object + + String presentation of the object + + + + Returns the JSON string presentation of the object + + JSON string presentation of the object + + + + Returns true if objects are equal + + Object to be compared + Boolean + + + + Returns true if MediaObjectQueryResult instances are equal + + Instance of MediaObjectQueryResult to be compared + Boolean + + + + Gets the hash code + + Hash code + + - Enum QRSEGMENT for value: QR_SEGMENT + To validate all properties of the instance + Validation context + Validation Result - + - Enum QRSIMILARITY for value: QR_SIMILARITY + StagedSimilarityQuery - + - Gets or Sets MessageType + Initializes a new instance of the class. - + - Initializes a new instance of the class. + Initializes a new instance of the class. - content. - queryId. - messageType. + stages (required). + config. - + - Gets or Sets Content + Gets or Sets Stages - + - Gets or Sets QueryId + Gets or Sets Config - + Returns the string presentation of the object String presentation of the object - + Returns the JSON string presentation of the object JSON string presentation of the object - + Returns true if objects are equal Object to be compared Boolean - + - Returns true if MediaObjectQueryResult instances are equal + Returns true if StagedSimilarityQuery instances are equal - Instance of MediaObjectQueryResult to be compared + Instance of StagedSimilarityQuery to be compared Boolean - + Gets the hash code Hash code - + To validate all properties of the instance @@ -3319,6 +4224,11 @@ Enum LOCATION for value: LOCATION + + + Enum PARAMETERISEDLOCATION for value: PARAMETERISED_LOCATION + + Enum TIME for value: TIME @@ -4964,6 +5874,54 @@ Represents a collection of functions to interact with the API endpoints + + + Find features for the given category for all (or specific) IDs + + + Find features for the given category for all (or specific) IDs + + Thrown when fails to make API call + + (optional) + FeaturesByCategoryQueryResult + + + + Find features for the given category for all (or specific) IDs + + + Find features for the given category for all (or specific) IDs + + Thrown when fails to make API call + + (optional) + ApiResponse of FeaturesByCategoryQueryResult + + + + Find features for the given entity name for all (or specific) IDs + + + Find features for the given entity name for all (or specific) IDs + + Thrown when fails to make API call + + (optional) + FeaturesByEntityQueryResult + + + + Find features for the given entity name for all (or specific) IDs + + + Find features for the given entity name for all (or specific) IDs + + Thrown when fails to make API call + + (optional) + ApiResponse of FeaturesByEntityQueryResult + Find metadata for the given object id @@ -5174,7 +6132,7 @@ The segment id to find metadata of ApiResponse of MediaSegmentMetadataQueryResult - + Find tag ids for the given id @@ -5185,7 +6143,7 @@ The id to find tagids of TagIDsForElementQueryResult - + Find tag ids for the given id @@ -5220,6 +6178,54 @@ The category for which retrieval shall be performed ApiResponse of FeaturesTextCategoryQueryResult + + + Find features for the given category for all (or specific) IDs + + + Find features for the given category for all (or specific) IDs + + Thrown when fails to make API call + + (optional) + Task of FeaturesByCategoryQueryResult + + + + Find features for the given category for all (or specific) IDs + + + Find features for the given category for all (or specific) IDs + + Thrown when fails to make API call + + (optional) + Task of ApiResponse (FeaturesByCategoryQueryResult) + + + + Find features for the given entity name for all (or specific) IDs + + + Find features for the given entity name for all (or specific) IDs + + Thrown when fails to make API call + + (optional) + Task of FeaturesByEntityQueryResult + + + + Find features for the given entity name for all (or specific) IDs + + + Find features for the given entity name for all (or specific) IDs + + Thrown when fails to make API call + + (optional) + Task of ApiResponse (FeaturesByEntityQueryResult) + Find metadata for the given object id @@ -5430,7 +6436,7 @@ The segment id to find metadata of Task of ApiResponse (MediaSegmentMetadataQueryResult) - + Find tag ids for the given id @@ -5441,7 +6447,7 @@ The id to find tagids of Task of TagIDsForElementQueryResult - + Find tag ids for the given id @@ -5538,6 +6544,78 @@ Header field value. + + + Find features for the given category for all (or specific) IDs Find features for the given category for all (or specific) IDs + + Thrown when fails to make API call + + (optional) + FeaturesByCategoryQueryResult + + + + Find features for the given category for all (or specific) IDs Find features for the given category for all (or specific) IDs + + Thrown when fails to make API call + + (optional) + ApiResponse of FeaturesByCategoryQueryResult + + + + Find features for the given category for all (or specific) IDs Find features for the given category for all (or specific) IDs + + Thrown when fails to make API call + + (optional) + Task of FeaturesByCategoryQueryResult + + + + Find features for the given category for all (or specific) IDs Find features for the given category for all (or specific) IDs + + Thrown when fails to make API call + + (optional) + Task of ApiResponse (FeaturesByCategoryQueryResult) + + + + Find features for the given entity name for all (or specific) IDs Find features for the given entity name for all (or specific) IDs + + Thrown when fails to make API call + + (optional) + FeaturesByEntityQueryResult + + + + Find features for the given entity name for all (or specific) IDs Find features for the given entity name for all (or specific) IDs + + Thrown when fails to make API call + + (optional) + ApiResponse of FeaturesByEntityQueryResult + + + + Find features for the given entity name for all (or specific) IDs Find features for the given entity name for all (or specific) IDs + + Thrown when fails to make API call + + (optional) + Task of FeaturesByEntityQueryResult + + + + Find features for the given entity name for all (or specific) IDs Find features for the given entity name for all (or specific) IDs + + Thrown when fails to make API call + + (optional) + Task of ApiResponse (FeaturesByEntityQueryResult) + Find metadata for the given object id Find metadata by the given object id @@ -5850,7 +6928,7 @@ The segment id to find metadata of Task of ApiResponse (MediaSegmentMetadataQueryResult) - + Find tag ids for the given id Find tag ids for the given id @@ -5858,7 +6936,7 @@ The id to find tagids of TagIDsForElementQueryResult - + Find tag ids for the given id Find tag ids for the given id @@ -5866,7 +6944,7 @@ The id to find tagids of ApiResponse of TagIDsForElementQueryResult - + Find tag ids for the given id Find tag ids for the given id @@ -5874,7 +6952,7 @@ The id to find tagids of Task of TagIDsForElementQueryResult - + Find tag ids for the given id Find tag ids for the given id @@ -5945,6 +7023,28 @@ (optional) ApiResponse of DistinctElementsResult + + + Find all elements of given columns + + + Find all elements of given columns + + Thrown when fails to make API call + (optional) + SelectResult + + + + Find all elements of given columns + + + Find all elements of given columns + + Thrown when fails to make API call + (optional) + ApiResponse of SelectResult + Find all distinct elements of a given column @@ -5967,6 +7067,28 @@ (optional) Task of ApiResponse (DistinctElementsResult) + + + Find all elements of given columns + + + Find all elements of given columns + + Thrown when fails to make API call + (optional) + Task of SelectResult + + + + Find all elements of given columns + + + Find all elements of given columns + + Thrown when fails to make API call + (optional) + Task of ApiResponse (SelectResult) + Represents a collection of functions to interact with the API endpoints @@ -6061,6 +7183,38 @@ (optional) Task of ApiResponse (DistinctElementsResult) + + + Find all elements of given columns Find all elements of given columns + + Thrown when fails to make API call + (optional) + SelectResult + + + + Find all elements of given columns Find all elements of given columns + + Thrown when fails to make API call + (optional) + ApiResponse of SelectResult + + + + Find all elements of given columns Find all elements of given columns + + Thrown when fails to make API call + (optional) + Task of SelectResult + + + + Find all elements of given columns Find all elements of given columns + + Thrown when fails to make API call + (optional) + Task of ApiResponse (SelectResult) + Represents a collection of functions to interact with the API endpoints @@ -6383,6 +7537,50 @@ (optional) ApiResponse of SimilarityQueryResultBatch + + + Find similar segments based on the given staged query + + + Performs a similarity search based on the formulated query stages, executing each subsequent stage on the results of the previous stage + + Thrown when fails to make API call + (optional) + SimilarityQueryResultBatch + + + + Find similar segments based on the given staged query + + + Performs a similarity search based on the formulated query stages, executing each subsequent stage on the results of the previous stage + + Thrown when fails to make API call + (optional) + ApiResponse of SimilarityQueryResultBatch + + + + Find similar segments based on the given temporal query + + + Performs a similarity search based on the formulated query stages in the given temporal order, scoring final results by their similarity to the specified temporal context + + Thrown when fails to make API call + (optional) + TemporalQueryResult + + + + Find similar segments based on the given temporal query + + + Performs a similarity search based on the formulated query stages in the given temporal order, scoring final results by their similarity to the specified temporal context + + Thrown when fails to make API call + (optional) + ApiResponse of TemporalQueryResult + Find similar segments based on the given query @@ -6405,6 +7603,50 @@ (optional) Task of ApiResponse (SimilarityQueryResultBatch) + + + Find similar segments based on the given staged query + + + Performs a similarity search based on the formulated query stages, executing each subsequent stage on the results of the previous stage + + Thrown when fails to make API call + (optional) + Task of SimilarityQueryResultBatch + + + + Find similar segments based on the given staged query + + + Performs a similarity search based on the formulated query stages, executing each subsequent stage on the results of the previous stage + + Thrown when fails to make API call + (optional) + Task of ApiResponse (SimilarityQueryResultBatch) + + + + Find similar segments based on the given temporal query + + + Performs a similarity search based on the formulated query stages in the given temporal order, scoring final results by their similarity to the specified temporal context + + Thrown when fails to make API call + (optional) + Task of TemporalQueryResult + + + + Find similar segments based on the given temporal query + + + Performs a similarity search based on the formulated query stages in the given temporal order, scoring final results by their similarity to the specified temporal context + + Thrown when fails to make API call + (optional) + Task of ApiResponse (TemporalQueryResult) + Represents a collection of functions to interact with the API endpoints @@ -6499,6 +7741,70 @@ (optional) Task of ApiResponse (SimilarityQueryResultBatch) + + + Find similar segments based on the given staged query Performs a similarity search based on the formulated query stages, executing each subsequent stage on the results of the previous stage + + Thrown when fails to make API call + (optional) + SimilarityQueryResultBatch + + + + Find similar segments based on the given staged query Performs a similarity search based on the formulated query stages, executing each subsequent stage on the results of the previous stage + + Thrown when fails to make API call + (optional) + ApiResponse of SimilarityQueryResultBatch + + + + Find similar segments based on the given staged query Performs a similarity search based on the formulated query stages, executing each subsequent stage on the results of the previous stage + + Thrown when fails to make API call + (optional) + Task of SimilarityQueryResultBatch + + + + Find similar segments based on the given staged query Performs a similarity search based on the formulated query stages, executing each subsequent stage on the results of the previous stage + + Thrown when fails to make API call + (optional) + Task of ApiResponse (SimilarityQueryResultBatch) + + + + Find similar segments based on the given temporal query Performs a similarity search based on the formulated query stages in the given temporal order, scoring final results by their similarity to the specified temporal context + + Thrown when fails to make API call + (optional) + TemporalQueryResult + + + + Find similar segments based on the given temporal query Performs a similarity search based on the formulated query stages in the given temporal order, scoring final results by their similarity to the specified temporal context + + Thrown when fails to make API call + (optional) + ApiResponse of TemporalQueryResult + + + + Find similar segments based on the given temporal query Performs a similarity search based on the formulated query stages in the given temporal order, scoring final results by their similarity to the specified temporal context + + Thrown when fails to make API call + (optional) + Task of TemporalQueryResult + + + + Find similar segments based on the given temporal query Performs a similarity search based on the formulated query stages in the given temporal order, scoring final results by their similarity to the specified temporal context + + Thrown when fails to make API call + (optional) + Task of ApiResponse (TemporalQueryResult) + API client is mainly responsible for making the HTTP call to the API backend. @@ -6526,7 +7832,7 @@ Initializes a new instance of the class - with default base path (http://localhost:4567). + with default base path (http://localhost). An instance of Configuration. diff --git a/Runtime/Vitrivr/UnityInterface/CineastApi/Utils/QueryBuilder.cs b/Runtime/Vitrivr/UnityInterface/CineastApi/Utils/QueryBuilder.cs index 222a4cd..a7cfd77 100644 --- a/Runtime/Vitrivr/UnityInterface/CineastApi/Utils/QueryBuilder.cs +++ b/Runtime/Vitrivr/UnityInterface/CineastApi/Utils/QueryBuilder.cs @@ -11,12 +11,9 @@ public class QueryBuilder /// Generic similarity query for given terms /// /// - /// public static SimilarityQuery BuildSimilarityQuery(params QueryTerm[] terms) { - var qc = new QueryComponent(terms.ToList()); - var sq = new SimilarityQuery(new List {qc}); - return sq; + return new SimilarityQuery(terms.ToList()); } /// @@ -24,7 +21,6 @@ public static SimilarityQuery BuildSimilarityQuery(params QueryTerm[] terms) /// /// Latitude in WSG85 degrees /// Longitude in WSG85 - /// public static SimilarityQuery BuildSpatialSimilarityQuery(double lat, double lon) { return BuildSimilarityQuery(QueryTermBuilder.BuildLocationTerm(lat, lon)); @@ -34,7 +30,6 @@ public static SimilarityQuery BuildSpatialSimilarityQuery(double lat, double lon /// Convenience method to create temporal similarity query /// /// The timestamp in UTC time format - /// public static SimilarityQuery BuildTemporalSimilarityQuery(string utcTime) { return BuildSimilarityQuery(QueryTermBuilder.BuildTimeTerm(utcTime)); @@ -44,7 +39,6 @@ public static SimilarityQuery BuildTemporalSimilarityQuery(string utcTime) /// A simple Query-by-Example query, using Edge and Global color categories /// /// Base64 encoded image - /// public static SimilarityQuery BuildSimpleQbEQuery(string base64) { return BuildSimilarityQuery(QueryTermBuilder.BuildImageTermForCategories(base64, new List @@ -60,8 +54,7 @@ public static SimilarityQuery BuildSimpleQbEQuery(string base64) /// Convenience method to create tags only query /// /// Tags to query - /// - public static SimilarityQuery BuildTagsSimilarityQuery(List<(string id, string name)> tags) + public static SimilarityQuery BuildTagsSimilarityQuery(IEnumerable<(string id, string name)> tags) { return BuildSimilarityQuery(QueryTermBuilder.BuildTagTerm(tags)); } diff --git a/Runtime/Vitrivr/UnityInterface/CineastApi/Utils/QueryTermBuilder.cs b/Runtime/Vitrivr/UnityInterface/CineastApi/Utils/QueryTermBuilder.cs index 0c0f132..d1ba324 100644 --- a/Runtime/Vitrivr/UnityInterface/CineastApi/Utils/QueryTermBuilder.cs +++ b/Runtime/Vitrivr/UnityInterface/CineastApi/Utils/QueryTermBuilder.cs @@ -21,13 +21,13 @@ public static QueryTerm BuildBooleanTerm(string attribute, RelationalOperator op var expressionJson = BuildBooleanTermJson(attribute, op, values); var data = Base64Converter.JsonToBase64($"[{expressionJson}]"); - return new QueryTerm(QueryTerm.TypeEnum.BOOLEAN, data, new List {"boolean"}); + return new QueryTerm(QueryTerm.TypeEnum.BOOLEAN, data, new List { "boolean" }); } /// /// Builds a Boolean consisting of multiple conditions. /// - /// Enumerable of conditions + /// Enumerable of conditions, where string conditions must already be in quotes /// The corresponding query term public static QueryTerm BuildBooleanTerm( IEnumerable<(string attribute, RelationalOperator op, string[] values)> conditions) @@ -35,7 +35,7 @@ public static QueryTerm BuildBooleanTerm( var conditionsJson = conditions.Select(c => BuildBooleanTermJson(c.attribute, c.op, c.values)); var data = Base64Converter.JsonToBase64($"[{string.Join(",", conditionsJson)}]"); - return new QueryTerm(QueryTerm.TypeEnum.BOOLEAN, data, new List {"boolean"}); + return new QueryTerm(QueryTerm.TypeEnum.BOOLEAN, data, new List { "boolean" }); } /// @@ -49,7 +49,7 @@ public static string BuildBooleanTermJson(string attribute, RelationalOperator o { var attributeJson = $"\"attribute\":\"{attribute}\""; var operatorJson = $"\"operator\":\"{op.ToString().ToUpper()}\""; - var valuesString = values.Length == 1 ? $"\"{values[0]}\"" : $"[\"{string.Join("\",\"", values)}\"]"; + var valuesString = values.Length == 1 ? $"{values[0]}" : $"[{string.Join(",", values)}]"; var valuesJson = $"\"values\":{valuesString}"; return $"{{{attributeJson},{operatorJson},{valuesJson}}}"; @@ -135,7 +135,31 @@ public static QueryTerm BuildLocationTerm(double latitude, double longitude) QueryTerm.TypeEnum.LOCATION, $"[{latitude},{longitude}]", new List - {CineastConfigManager.Instance.Config.categoryMappings.mapping[CategoryMappings.SPATIAL_CATEGORY]}); + { CineastConfigManager.Instance.Config.categoryMappings.mapping[CategoryMappings.SPATIAL_CATEGORY] }); + return qt; + } + + /// + /// Builds a of type PARAMETRIZED_LOCATION with the given half similarity distance. + /// + /// Latitude of term + /// Longitude of term + /// Distance at which similarity should equal 0.5 + /// The corresponding query term + public static QueryTerm BuildLocationTerm(double latitude, double longitude, double halfSimilarityDistance) + { + var qt = new QueryTerm( + QueryTerm.TypeEnum.PARAMETERISEDLOCATION, + "{\"geoPoint\": " + + "{\"latitude\": " + + latitude + + ", \"longitude\": " + + longitude + + "}, \"parameter\": " + + halfSimilarityDistance + + "}", + new List + { CineastConfigManager.Instance.Config.categoryMappings.mapping[CategoryMappings.SPATIAL_CATEGORY] }); return qt; } @@ -149,7 +173,7 @@ public static QueryTerm BuildTagTerm(string tags) var qt = new QueryTerm(QueryTerm.TypeEnum.TAG, Base64Converter.JsonPrefix + tags, new List - {CineastConfigManager.Instance.Config.categoryMappings.mapping[CategoryMappings.TAGS_CATEGORY]}); + { CineastConfigManager.Instance.Config.categoryMappings.mapping[CategoryMappings.TAGS_CATEGORY] }); return qt; } @@ -168,7 +192,7 @@ public static QueryTerm BuildTagTerm(IEnumerable<(string id, string name)> tags) var qt = new QueryTerm(QueryTerm.TypeEnum.TAG, Base64Converter.JsonToBase64(tagList), new List - {CineastConfigManager.Instance.Config.categoryMappings.mapping[CategoryMappings.TAGS_CATEGORY]}); + { CineastConfigManager.Instance.Config.categoryMappings.mapping[CategoryMappings.TAGS_CATEGORY] }); return qt; } diff --git a/build.gradle b/build.gradle index ed5812e..8563cea 100644 --- a/build.gradle +++ b/build.gradle @@ -6,20 +6,22 @@ plugins { id "org.openapi.generator" version "4.3.1" } -/* Setup OpenApi Specs (OAS): Defaults to default.*/ -def cineastOAS = "http://localhost:4567/openapi-specs" +/* Setup OpenApi Specs (OAS): Defaults to latest official.*/ +def cineastOAS = "https://raw.githubusercontent.com/vitrivr/cineast/master/docs/openapi.json" /* If gradle gets 'oas' argument (with -Poas="path/to/OAS"), take these */ if(project.hasProperty('oas')){ cineastOAS = oas } +/* Name to add to dlls to avoid Unity loading errors. */ +def dllName = "Cineast" + /* The OpenApi generator task */ openApiGenerate { generatorName = "csharp" inputSpec = cineastOAS outputDir = "$rootDir/Generated" packageName = "Org.Vitrivr.CineastApi" - skipValidateSpec = true } /* Customized clean task to delete OpenAPI generated*/ @@ -59,9 +61,9 @@ task modex(type: Exec){ task deployLibs(type: Copy){ from(file("$rootDir/Generated/bin")) into(file("$rootDir/Runtime/Libs")) - rename("RestSharp.dll", "RestSharp.Cineast.dll") - rename("Newtonsoft.Json.dll", "Newtonsoft.Json.Cineast.dll") - rename("JsonSubTypes.dll", "JsonSubTypes.Cineast.dll") + rename("RestSharp.dll", "RestSharp." + dllName + ".dll") + rename("Newtonsoft.Json.dll", "Newtonsoft.Json." + dllName + ".dll") + rename("JsonSubTypes.dll", "JsonSubTypes." + dllName + ".dll") } /* Copy the mandatory link.xml */ diff --git a/package.json b/package.json index ba1ffbf..4d4f680 100644 --- a/package.json +++ b/package.json @@ -1,9 +1,9 @@ { "name": "org.vitrivr.unityinterface.cineastapi", - "version": "0.0.1", + "version": "0.0.2", "displayName": "Cineast Unity Interface", "description": "An all-unity client for [Cineast](https://github.com/vitrivr/cineast/).", - "unity": "2019.4", + "unity": "2020.3", "keywords": [ "cineast","restclient","vitrivr","multimediaretrieval","retreival","multimedia" ],