Skip to content

Commit

Permalink
Commit of missed files.
Browse files Browse the repository at this point in the history
  • Loading branch information
AnBenLa committed Jun 10, 2024
1 parent ad6dd7f commit a187141
Show file tree
Hide file tree
Showing 4 changed files with 88 additions and 20 deletions.
4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# Record, Replay & Analysis Plugin

[![Build](https://github.com/vrsys/Recording-And-Analysis-Plugin/actions/workflows/cmake.yml/badge.svg)](https://github.com/vrsys/Recording-And-Analysis-Plugin/actions/workflows/cmake.yml)
[![Build](https://github.com/vrsys/recording-plugin/actions/workflows/cmake.yml/badge.svg)](https://github.com/vrsys/recording-plugin/actions/workflows/cmake.yml)

![Logo](Images/Icon_resized.png)

Expand Down Expand Up @@ -212,7 +212,7 @@ void export_transform_data_to_CSV(std::string const& transform_file_path);

void export_generic_data_to_CSV(std::string const& generic_file_path);

void export_sound_data_to_WAV(std::string const& sound_file_path);```
void export_sound_data_to_WAV(std::string const& sound_file_path);
```
Debugging:
Expand Down
32 changes: 17 additions & 15 deletions Src/Analysis/AnalysisEndpoints.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -8,47 +8,49 @@ extern "C" void UNITY_INTERFACE_EXPORT UNITY_INTERFACE_API AddAnalysisRecordingP
AnalysisManager& manager = AnalysisManager::getInstance();
manager.add_recording_path(path, path_length);
}

extern "C" void UNITY_INTERFACE_EXPORT UNITY_INTERFACE_API AddDistanceAnalysisRequest(int analysis_id, int id_a, int id_b, float distance) {
/**
* @param logical_operation an int defining whether the analysis request will be combined with the current query using &, |, &! or |!
*/
extern "C" void UNITY_INTERFACE_EXPORT UNITY_INTERFACE_API AddDistanceAnalysisRequest(int analysis_id, int id_a, int id_b, float distance, int logical_operation) {
AnalysisManager& manager = AnalysisManager::getInstance();
std::shared_ptr<IntervalTransformAnalysisRequest> request = std::make_shared<IntervalDistanceAnalysisRequest>(id_a, id_b, distance);
manager.add_interval_analysis_request(request);
manager.add_interval_analysis_request(analysis_id, request, logical_operation);
}

extern "C" void UNITY_INTERFACE_EXPORT UNITY_INTERFACE_API AddContainmentAnalysisRequest(int analysis_id, int id_a, float* min_max) {
extern "C" void UNITY_INTERFACE_EXPORT UNITY_INTERFACE_API AddContainmentAnalysisRequest(int analysis_id, int id_a, float* min_max, int logical_operation) {
AnalysisManager& manager = AnalysisManager::getInstance();
std::shared_ptr<IntervalContainmentAnalysisRequest> request = std::make_shared<IntervalContainmentAnalysisRequest>(id_a, glm::vec3{min_max[0], min_max[1], min_max[2]}, glm::vec3{min_max[3], min_max[4], min_max[5]});
manager.add_interval_analysis_request(request);
manager.add_interval_analysis_request(analysis_id, request, logical_operation);
}

extern "C" void UNITY_INTERFACE_EXPORT UNITY_INTERFACE_API AddGazeAnalysisRequest(int analysis_id, int id_a, int id_b, float cone_angle, float distance) {
extern "C" void UNITY_INTERFACE_EXPORT UNITY_INTERFACE_API AddGazeAnalysisRequest(int analysis_id, int id_a, int id_b, float cone_angle, float distance, int logical_operation) {
AnalysisManager& manager = AnalysisManager::getInstance();
std::shared_ptr<IntervalGazeAnalysisRequest> request = std::make_shared<IntervalGazeAnalysisRequest>(id_a, id_b, cone_angle, distance);
manager.add_interval_analysis_request(request);
manager.add_interval_analysis_request(analysis_id, request, logical_operation);
}

extern "C" void UNITY_INTERFACE_EXPORT UNITY_INTERFACE_API AddGazeAnalysisRequestAx(int analysis_id, int id_a, int id_b, float cone_angle, float distance, int axis) {
extern "C" void UNITY_INTERFACE_EXPORT UNITY_INTERFACE_API AddGazeAnalysisRequestAx(int analysis_id, int id_a, int id_b, float cone_angle, float distance, int axis, int logical_operation) {
AnalysisManager& manager = AnalysisManager::getInstance();
std::shared_ptr<IntervalGazeAnalysisRequest> request = std::make_shared<IntervalGazeAnalysisRequest>(id_a, id_b, cone_angle, distance, axis);
manager.add_interval_analysis_request(request);
manager.add_interval_analysis_request(analysis_id, request, logical_operation);
}

extern "C" void UNITY_INTERFACE_EXPORT UNITY_INTERFACE_API AddRotationAnalysisRequest(int analysis_id, int id_a, float temporal_search_interval, float rotation_threshold) {
extern "C" void UNITY_INTERFACE_EXPORT UNITY_INTERFACE_API AddRotationAnalysisRequest(int analysis_id, int id_a, float temporal_search_interval, float rotation_threshold, int logical_operation) {
AnalysisManager& manager = AnalysisManager::getInstance();
std::shared_ptr<IntervalRotationAnalysisRequest> request = std::make_shared<IntervalRotationAnalysisRequest>(id_a, temporal_search_interval, rotation_threshold);
manager.add_interval_analysis_request(request);
manager.add_interval_analysis_request(analysis_id, request, logical_operation);
}

extern "C" void UNITY_INTERFACE_EXPORT UNITY_INTERFACE_API AddSoundActivationAnalysisRequest(int analysis_id, int sound_id, float temporal_search_interval, float activation_level) {
extern "C" void UNITY_INTERFACE_EXPORT UNITY_INTERFACE_API AddSoundActivationAnalysisRequest(int analysis_id, int sound_id, float temporal_search_interval, float activation_level, int logical_operation) {
AnalysisManager& manager = AnalysisManager::getInstance();
std::shared_ptr<IntervalSoundActivationAnalysisRequest> request = std::make_shared<IntervalSoundActivationAnalysisRequest>(sound_id, temporal_search_interval, activation_level);
manager.add_interval_analysis_request(request);
manager.add_interval_analysis_request(analysis_id, request, logical_operation);
}

extern "C" void UNITY_INTERFACE_EXPORT UNITY_INTERFACE_API AddVelocityAnalysisRequest(int analysis_id, int id_a, float temporal_search_interval, float velocity_threshold) {
extern "C" void UNITY_INTERFACE_EXPORT UNITY_INTERFACE_API AddVelocityAnalysisRequest(int analysis_id, int id_a, float temporal_search_interval, float velocity_threshold, int logical_operation) {
AnalysisManager& manager = AnalysisManager::getInstance();
std::shared_ptr<IntervalVelocityAnalysisRequest> request = std::make_shared<IntervalVelocityAnalysisRequest>(id_a, temporal_search_interval, velocity_threshold);
manager.add_interval_analysis_request(request);
manager.add_interval_analysis_request(analysis_id, request, logical_operation);
}

extern "C" int UNITY_INTERFACE_EXPORT UNITY_INTERFACE_API ProcessAnalysisRequests(int analysis_id, float* intervals) {
Expand Down
70 changes: 68 additions & 2 deletions Src/Analysis/AnalysisManager.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,74 @@
#include "AnalysisManager.h"
#include "Analysis/IntervalAnalysis/TransformAnalysis/IntervalPositionAdjustmentAnalysisRequest.h"

void AnalysisManager::add_interval_analysis_request(std::shared_ptr<IntervalAnalysisRequest> request) {
interval_analysis_queries.push_back(request);
void AnalysisManager::add_interval_analysis_request(int analysis_id, std::shared_ptr<IntervalAnalysisRequest> request, int logical_operation) {
if(interval_analysis_queries.size() > analysis_id){
if(interval_analysis_queries[analysis_id].get() == nullptr){
switch(logical_operation) {
case 0: {
interval_analysis_queries[analysis_id] = request;
break;
}
case 1: {
interval_analysis_queries[analysis_id] = request;
break;
}
case 2: {
interval_analysis_queries[analysis_id] = !request;
break;
}
case 3: {
interval_analysis_queries[analysis_id] = !request;
break;
}
}
} else {
switch(logical_operation){
case 0:{
interval_analysis_queries[analysis_id] = interval_analysis_queries[analysis_id] & request;
break;
}
case 1:{
interval_analysis_queries[analysis_id] = interval_analysis_queries[analysis_id] | request;
break;
}
case 2:{
interval_analysis_queries[analysis_id] = interval_analysis_queries[analysis_id] & (!request);
break;
}
case 3:{
interval_analysis_queries[analysis_id] = interval_analysis_queries[analysis_id] | (!request);
break;
}
}
}
} else {
int tmp = interval_analysis_queries.size();
for (int i = tmp - 1; i < analysis_id; ++i) {
if (i != analysis_id - 1)
interval_analysis_queries.push_back(nullptr);
else {
switch (logical_operation) {
case 0: {
interval_analysis_queries.push_back(request);
break;
}
case 1: {
interval_analysis_queries.push_back(request);
break;
}
case 2: {
interval_analysis_queries.push_back(!request);
break;
}
case 3: {
interval_analysis_queries.push_back(!request);
break;
}
}
}
}
}
}

int AnalysisManager::process_interval_analysis_request(std::shared_ptr<IntervalAnalysisRequest> analysis_request,
Expand Down
2 changes: 1 addition & 1 deletion Src/Analysis/AnalysisManager.h
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@ class AnalysisManager {

void add_intervals_to_investigate(std::string path, std::vector<TimeInterval> intervals);

void add_interval_analysis_request(std::shared_ptr<IntervalAnalysisRequest> request);
void add_interval_analysis_request(int analysis_id, std::shared_ptr<IntervalAnalysisRequest> request, int logical_operation);

int process_interval_analysis_request(std::shared_ptr<IntervalAnalysisRequest> analysis_request, float* intervals, std::string const& file, std::vector<TimeInterval> const& intervals_to_investigate) const;

Expand Down

0 comments on commit a187141

Please sign in to comment.