Skip to content

Commit a187141

Browse files
committed
Commit of missed files.
1 parent ad6dd7f commit a187141

File tree

4 files changed

+88
-20
lines changed

4 files changed

+88
-20
lines changed

README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# Record, Replay & Analysis Plugin
22

3-
[![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)
3+
[![Build](https://github.com/vrsys/recording-plugin/actions/workflows/cmake.yml/badge.svg)](https://github.com/vrsys/recording-plugin/actions/workflows/cmake.yml)
44

55
![Logo](Images/Icon_resized.png)
66

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

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

215-
void export_sound_data_to_WAV(std::string const& sound_file_path);```
215+
void export_sound_data_to_WAV(std::string const& sound_file_path);
216216
```
217217
218218
Debugging:

Src/Analysis/AnalysisEndpoints.cpp

Lines changed: 17 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -8,47 +8,49 @@ extern "C" void UNITY_INTERFACE_EXPORT UNITY_INTERFACE_API AddAnalysisRecordingP
88
AnalysisManager& manager = AnalysisManager::getInstance();
99
manager.add_recording_path(path, path_length);
1010
}
11-
12-
extern "C" void UNITY_INTERFACE_EXPORT UNITY_INTERFACE_API AddDistanceAnalysisRequest(int analysis_id, int id_a, int id_b, float distance) {
11+
/**
12+
* @param logical_operation an int defining whether the analysis request will be combined with the current query using &, |, &! or |!
13+
*/
14+
extern "C" void UNITY_INTERFACE_EXPORT UNITY_INTERFACE_API AddDistanceAnalysisRequest(int analysis_id, int id_a, int id_b, float distance, int logical_operation) {
1315
AnalysisManager& manager = AnalysisManager::getInstance();
1416
std::shared_ptr<IntervalTransformAnalysisRequest> request = std::make_shared<IntervalDistanceAnalysisRequest>(id_a, id_b, distance);
15-
manager.add_interval_analysis_request(request);
17+
manager.add_interval_analysis_request(analysis_id, request, logical_operation);
1618
}
1719

18-
extern "C" void UNITY_INTERFACE_EXPORT UNITY_INTERFACE_API AddContainmentAnalysisRequest(int analysis_id, int id_a, float* min_max) {
20+
extern "C" void UNITY_INTERFACE_EXPORT UNITY_INTERFACE_API AddContainmentAnalysisRequest(int analysis_id, int id_a, float* min_max, int logical_operation) {
1921
AnalysisManager& manager = AnalysisManager::getInstance();
2022
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]});
21-
manager.add_interval_analysis_request(request);
23+
manager.add_interval_analysis_request(analysis_id, request, logical_operation);
2224
}
2325

24-
extern "C" void UNITY_INTERFACE_EXPORT UNITY_INTERFACE_API AddGazeAnalysisRequest(int analysis_id, int id_a, int id_b, float cone_angle, float distance) {
26+
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) {
2527
AnalysisManager& manager = AnalysisManager::getInstance();
2628
std::shared_ptr<IntervalGazeAnalysisRequest> request = std::make_shared<IntervalGazeAnalysisRequest>(id_a, id_b, cone_angle, distance);
27-
manager.add_interval_analysis_request(request);
29+
manager.add_interval_analysis_request(analysis_id, request, logical_operation);
2830
}
2931

30-
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) {
32+
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) {
3133
AnalysisManager& manager = AnalysisManager::getInstance();
3234
std::shared_ptr<IntervalGazeAnalysisRequest> request = std::make_shared<IntervalGazeAnalysisRequest>(id_a, id_b, cone_angle, distance, axis);
33-
manager.add_interval_analysis_request(request);
35+
manager.add_interval_analysis_request(analysis_id, request, logical_operation);
3436
}
3537

36-
extern "C" void UNITY_INTERFACE_EXPORT UNITY_INTERFACE_API AddRotationAnalysisRequest(int analysis_id, int id_a, float temporal_search_interval, float rotation_threshold) {
38+
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) {
3739
AnalysisManager& manager = AnalysisManager::getInstance();
3840
std::shared_ptr<IntervalRotationAnalysisRequest> request = std::make_shared<IntervalRotationAnalysisRequest>(id_a, temporal_search_interval, rotation_threshold);
39-
manager.add_interval_analysis_request(request);
41+
manager.add_interval_analysis_request(analysis_id, request, logical_operation);
4042
}
4143

42-
extern "C" void UNITY_INTERFACE_EXPORT UNITY_INTERFACE_API AddSoundActivationAnalysisRequest(int analysis_id, int sound_id, float temporal_search_interval, float activation_level) {
44+
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) {
4345
AnalysisManager& manager = AnalysisManager::getInstance();
4446
std::shared_ptr<IntervalSoundActivationAnalysisRequest> request = std::make_shared<IntervalSoundActivationAnalysisRequest>(sound_id, temporal_search_interval, activation_level);
45-
manager.add_interval_analysis_request(request);
47+
manager.add_interval_analysis_request(analysis_id, request, logical_operation);
4648
}
4749

48-
extern "C" void UNITY_INTERFACE_EXPORT UNITY_INTERFACE_API AddVelocityAnalysisRequest(int analysis_id, int id_a, float temporal_search_interval, float velocity_threshold) {
50+
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) {
4951
AnalysisManager& manager = AnalysisManager::getInstance();
5052
std::shared_ptr<IntervalVelocityAnalysisRequest> request = std::make_shared<IntervalVelocityAnalysisRequest>(id_a, temporal_search_interval, velocity_threshold);
51-
manager.add_interval_analysis_request(request);
53+
manager.add_interval_analysis_request(analysis_id, request, logical_operation);
5254
}
5355

5456
extern "C" int UNITY_INTERFACE_EXPORT UNITY_INTERFACE_API ProcessAnalysisRequests(int analysis_id, float* intervals) {

Src/Analysis/AnalysisManager.cpp

Lines changed: 68 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,74 @@
55
#include "AnalysisManager.h"
66
#include "Analysis/IntervalAnalysis/TransformAnalysis/IntervalPositionAdjustmentAnalysisRequest.h"
77

8-
void AnalysisManager::add_interval_analysis_request(std::shared_ptr<IntervalAnalysisRequest> request) {
9-
interval_analysis_queries.push_back(request);
8+
void AnalysisManager::add_interval_analysis_request(int analysis_id, std::shared_ptr<IntervalAnalysisRequest> request, int logical_operation) {
9+
if(interval_analysis_queries.size() > analysis_id){
10+
if(interval_analysis_queries[analysis_id].get() == nullptr){
11+
switch(logical_operation) {
12+
case 0: {
13+
interval_analysis_queries[analysis_id] = request;
14+
break;
15+
}
16+
case 1: {
17+
interval_analysis_queries[analysis_id] = request;
18+
break;
19+
}
20+
case 2: {
21+
interval_analysis_queries[analysis_id] = !request;
22+
break;
23+
}
24+
case 3: {
25+
interval_analysis_queries[analysis_id] = !request;
26+
break;
27+
}
28+
}
29+
} else {
30+
switch(logical_operation){
31+
case 0:{
32+
interval_analysis_queries[analysis_id] = interval_analysis_queries[analysis_id] & request;
33+
break;
34+
}
35+
case 1:{
36+
interval_analysis_queries[analysis_id] = interval_analysis_queries[analysis_id] | request;
37+
break;
38+
}
39+
case 2:{
40+
interval_analysis_queries[analysis_id] = interval_analysis_queries[analysis_id] & (!request);
41+
break;
42+
}
43+
case 3:{
44+
interval_analysis_queries[analysis_id] = interval_analysis_queries[analysis_id] | (!request);
45+
break;
46+
}
47+
}
48+
}
49+
} else {
50+
int tmp = interval_analysis_queries.size();
51+
for (int i = tmp - 1; i < analysis_id; ++i) {
52+
if (i != analysis_id - 1)
53+
interval_analysis_queries.push_back(nullptr);
54+
else {
55+
switch (logical_operation) {
56+
case 0: {
57+
interval_analysis_queries.push_back(request);
58+
break;
59+
}
60+
case 1: {
61+
interval_analysis_queries.push_back(request);
62+
break;
63+
}
64+
case 2: {
65+
interval_analysis_queries.push_back(!request);
66+
break;
67+
}
68+
case 3: {
69+
interval_analysis_queries.push_back(!request);
70+
break;
71+
}
72+
}
73+
}
74+
}
75+
}
1076
}
1177

1278
int AnalysisManager::process_interval_analysis_request(std::shared_ptr<IntervalAnalysisRequest> analysis_request,

Src/Analysis/AnalysisManager.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ class AnalysisManager {
4141

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

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

4646
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;
4747

0 commit comments

Comments
 (0)