Skip to content

Commit 21032db

Browse files
committed
Merge branch 'develop'
2 parents e37d298 + 085e7c9 commit 21032db

84 files changed

Lines changed: 2195 additions & 383 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.gitignore

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
*.lo
77
*.o
88
*.obj
9-
build/
9+
*build*
1010

1111
# Precompiled Headers
1212
*.gch

.gitmodules

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1 @@
1-
[submodule "SolARWrapper"]
2-
path = SolARWrapper
3-
url = https://github.com/SolarFramework/SwigWrapper.git
4-
branch = .
1+

JenkinsFile

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
SolArModulePipeline {
22
moduleName="SolARFramework"
33
dirName="SolARBuild"
4-
android=true
54
}

JenkinsFile_All

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -38,16 +38,6 @@ pipeline {
3838
buildModule("SolARModuleOpenGL",BRANCH,RELEASE,PRE_RELEASE,REMAKEN_VERSION,QMAKE_RULES_VERSION,SKIP_TESTS,UPLOAD_CONAN_PACKAGE)
3939
}
4040
}
41-
stage("SolARModuleOpenGV"){
42-
steps {
43-
buildModule("SolARModuleOpenGV",BRANCH,RELEASE,PRE_RELEASE,REMAKEN_VERSION,QMAKE_RULES_VERSION,SKIP_TESTS,UPLOAD_CONAN_PACKAGE)
44-
}
45-
}
46-
stage("SolARModuleCeres"){
47-
steps {
48-
buildModule("SolARModuleCeres",BRANCH,RELEASE,PRE_RELEASE,REMAKEN_VERSION,QMAKE_RULES_VERSION,SKIP_TESTS,UPLOAD_CONAN_PACKAGE)
49-
}
50-
}
5141
stage("SolARModuleTools"){
5242
steps {
5343
buildModule("SolARModuleTools",BRANCH,RELEASE,PRE_RELEASE,REMAKEN_VERSION,QMAKE_RULES_VERSION,SKIP_TESTS,UPLOAD_CONAN_PACKAGE)

SolARFramework.pri

100755100644
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
HEADERS += interfaces/api/display/I2DOverlay.h \
2+
$$PWD/interfaces/api/pipeline/IServiceManagerPipeline.h \
23
interfaces/api/pipeline/IAsyncRelocalizationPipeline.h \
34
interfaces/api/solver/pose/ITrackablePose.h \
45
interfaces/api/input/devices/IDepthCamera.h \
@@ -46,12 +47,16 @@ interfaces/api/input/devices/IDevice.h \
4647
interfaces/api/input/devices/IIMU.h \
4748
interfaces/api/input/devices/IRGBDCamera.h \
4849
interfaces/api/input/devices/IStereoCameraCalibration.h \
50+
interfaces/api/input/files/IMeshLoader.h \
4951
interfaces/api/input/files/IPointCloudLoader.h \
5052
interfaces/api/input/files/ITrackableLoader.h \
5153
interfaces/api/input/files/IWorldGraphLoader.h \
5254
interfaces/api/loop/ILoopClosureDetector.h \
5355
interfaces/api/loop/ILoopCorrector.h \
5456
interfaces/api/loop/IOverlapDetector.h \
57+
interfaces/api/output/files/IMeshExporter.h \
58+
interfaces/api/output/files/IPointCloudExporter.h \
59+
interfaces/api/pipeline/IDenseMappingPipeline.h \
5560
interfaces/api/pipeline/IMappingPipeline.h \
5661
interfaces/api/pipeline/IPipeline.h \
5762
interfaces/api/pipeline/IPoseEstimationPipeline.h \
@@ -62,6 +67,9 @@ interfaces/api/pointCloud/IPCFilterCentroid.h \
6267
interfaces/api/reloc/IKeyframeRetriever.h \
6368
interfaces/api/reloc/IRelocalizer.h \
6469
interfaces/api/reloc/IRegression.h \
70+
interfaces/api/sfm/IMeshing.h \
71+
interfaces/api/sfm/IMultiViewStereo.h \
72+
interfaces/api/sfm/IStructureFromMotion.h \
6573
interfaces/api/sink/ISinkPoseImage.h \
6674
interfaces/api/sink/ISinkPoseTextureBuffer.h \
6775
interfaces/api/sink/ISinkReturnCode.h \
@@ -90,6 +98,7 @@ interfaces/api/source/ISourceImage.h \
9098
interfaces/api/source/ISourceReturnCode.h \
9199
interfaces/api/storage/ICovisibilityGraphManager.h \
92100
interfaces/api/storage/IKeyframesManager.h \
101+
interfaces/api/storage/ICameraParametersManager.h \
93102
interfaces/api/storage/IPointCloudManager.h \
94103
interfaces/api/storage/IMapManager.h \
95104
interfaces/api/tracking/IOpticalFlowEstimator.h \
@@ -101,6 +110,7 @@ interfaces/core/SolARFramework.h \
101110
interfaces/core/SolARFrameworkDefinitions.h \
102111
interfaces/datastructure/BufferInternal.hpp \
103112
interfaces/datastructure/CameraDefinitions.h \
113+
interfaces/datastructure/CameraParametersCollection.h \
104114
interfaces/datastructure/CloudPoint.h \
105115
interfaces/datastructure/CoordinateSystem.h \
106116
interfaces/datastructure/DescriptorBuffer.h \
@@ -115,6 +125,7 @@ interfaces/datastructure/ImageMarker.h \
115125
interfaces/datastructure/Keyframe.h \
116126
interfaces/datastructure/Keypoint.h \
117127
interfaces/datastructure/MathDefinitions.h \
128+
interfaces/datastructure/Mesh.h \
118129
interfaces/datastructure/PointCloud.h \
119130
interfaces/datastructure/PrimitiveInformation.h \
120131
interfaces/datastructure/SquaredBinaryPattern.h \
@@ -134,10 +145,12 @@ interfaces/base/geom/AReprojectionStereo.h \
134145
interfaces/base/pipeline/AMappingPipeline.h \
135146
interfaces/api/segm/IInstanceSegmentation.h \
136147
interfaces/api/segm/ISemanticSegmentation.h \
148+
interfaces/api/segm/IPanopticSegmentation.h \
137149
interfaces/api/display/IMaskOverlay.h
138150

139151
SOURCES += src/core/Log.cpp \
140152
src/core/SolARFramework.cpp \
153+
src/datastructure/CameraParametersCollection.cpp \
141154
src/datastructure/CloudPoint.cpp \
142155
src/datastructure/CoordinateSystem.cpp \
143156
src/datastructure/DescriptorBuffer.cpp \
@@ -159,6 +172,7 @@ src/datastructure/CovisibilityGraph.cpp \
159172
src/datastructure/KeyframeRetrieval.cpp \
160173
src/datastructure/KeyframeCollection.cpp \
161174
src/datastructure/Map.cpp \
175+
src/datastructure/Mesh.cpp \
162176
src/base/features/ADescriptorMatcher.cpp \
163177
src/base/features/ADescriptorMatcherGeometric.cpp \
164178
src/base/features/ADescriptorMatcherRegion.cpp \

SolARFramework.pro

Lines changed: 9 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ QMAKE_PROJECT_DEPTH = 0
1010
INSTALLSUBDIR = SolARBuild
1111
TARGET = SolARFramework
1212
FRAMEWORK = $$TARGET
13-
VERSION=0.11.0
13+
VERSION=1.0.0
1414

1515
DEFINES += MYVERSION=$${VERSION}
1616
DEFINES += TEMPLATE_LIBRARY
@@ -51,15 +51,6 @@ linux {
5151
QMAKE_LFLAGS += -ldl
5252
}
5353

54-
macx {
55-
DEFINES += _MACOS_TARGET_
56-
QMAKE_MAC_SDK= macosx
57-
QMAKE_CFLAGS += -mmacosx-version-min=10.7 -std=c11 #-x objective-c++
58-
QMAKE_CXXFLAGS += -mmacosx-version-min=10.7 -std=c11 -std=c++11 -fPIC#-x objective-c++
59-
QMAKE_LFLAGS += -mmacosx-version-min=10.7 -v -lstdc++
60-
LIBS += -lstdc++ -lc -lpthread
61-
}
62-
6354
win32 {
6455

6556
DEFINES += WIN64 UNICODE _UNICODE
@@ -69,13 +60,6 @@ win32 {
6960
QMAKE_CXXFLAGS_RELEASE += /O2
7061
}
7162

72-
android {
73-
# Needed to access android sink for spdlog
74-
DEFINES += __ANDROID__
75-
ANDROID_ABIS="arm64-v8a"
76-
}
77-
78-
7963
header_interfaces.path = $${PROJECTDEPLOYDIR}/interfaces/
8064
header_interfaces.files = $$files($${PWD}/interfaces/*.h*)
8165

@@ -93,6 +77,8 @@ header_interfaces_input_devices.path = $${PROJECTDEPLOYDIR}/interfaces/api/input
9377
header_interfaces_input_devices.files = $$files($${PWD}/interfaces/api/input/devices/*.h*)
9478
header_interfaces_input_files.path = $${PROJECTDEPLOYDIR}/interfaces/api/input/files/
9579
header_interfaces_input_files.files = $$files($${PWD}/interfaces/api/input/files/*.h*)
80+
header_interfaces_output_files.path = $${PROJECTDEPLOYDIR}/interfaces/api/output/files/
81+
header_interfaces_output_files.files = $$files($${PWD}/interfaces/api/output/files/*.h*)
9682
header_interfaces_pointCloud.path = $${PROJECTDEPLOYDIR}/interfaces/api/pointCloud/
9783
header_interfaces_pointCloud.files = $$files($${PWD}/interfaces/api/pointCloud/*.h*)
9884
header_interfaces_reloc.path = $${PROJECTDEPLOYDIR}/interfaces/api/reloc/
@@ -129,6 +115,8 @@ header_base_pipeline.path = $${PROJECTDEPLOYDIR}/interfaces/base/pipeline/
129115
header_base_pipeline.files += $$files($${PWD}/interfaces/base/pipeline/*.h*)
130116
header_interfaces_segm.path = $${PROJECTDEPLOYDIR}/interfaces/api/segm/
131117
header_interfaces_segm.files = $$files($${PWD}/interfaces/api/segm/*.h*)
118+
header_interfaces_sfm.path = $${PROJECTDEPLOYDIR}/interfaces/api/sfm/
119+
header_interfaces_sfm.files += $$files($${PWD}/interfaces/api/sfm/*.h*)
132120

133121
INCLUDEPATH += $${PWD}/interfaces
134122

@@ -140,6 +128,7 @@ INSTALLS += header_interfaces_fusion
140128
INSTALLS += header_interfaces_geom
141129
INSTALLS += header_interfaces_image
142130
INSTALLS += header_interfaces_input_devices header_interfaces_input_files
131+
INSTALLS += header_interfaces_output_files
143132
INSTALLS += header_interfaces_pointCloud
144133
INSTALLS += header_interfaces_reloc
145134
INSTALLS += header_interfaces_sink
@@ -152,27 +141,20 @@ INSTALLS += header_interfaces_core
152141
INSTALLS += header_interfaces_datastructure
153142
INSTALLS += header_interfaces_pipeline
154143
INSTALLS += header_interfaces_loop
144+
INSTALLS += header_interfaces_segm
155145
INSTALLS += header_interfaces_slam
146+
INSTALLS += header_interfaces_sfm
156147
INSTALLS += header_base_features
157148
INSTALLS += header_base_geom
158149
INSTALLS += header_base_pipeline
159-
INSTALLS += header_interfaces_segm
150+
160151

161152
OTHER_FILES += \
162153
packagedependencies.txt \
163154
packagedependencies-win.txt \
164155
packagedependencies-linux.txt \
165-
packagedependencies-mac.txt \
166-
packagedependencies-android.txt \
167156
extra-packages.txt \
168157
extra-packages-linux.txt
169158

170159
#NOTE : Must be placed at the end of the .pro
171160
include ($$shell_quote($$shell_path($${QMAKE_REMAKEN_RULES_ROOT}/remaken_install_target.pri)))) # Shell_quote & shell_path required for visual on windows
172-
173-
DISTFILES +=
174-
175-
HEADERS += \
176-
interfaces/api/pipeline/IAsyncRelocalizationPipeline.h
177-
178-

SolARWrapper

Lines changed: 0 additions & 1 deletion
This file was deleted.

bcom-SolARFramework.pc.in

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ libdir=${exec_prefix}/lib
55
includedir=${prefix}/interfaces
66
Name: SolARFramework
77
Description:
8-
Version: 0.11.0
8+
Version: 1.0.0
99
Requires:
1010
Libs: -L${libdir} -l${libname}
1111
Libs.private: ${libdir}/${pfx}${libname}.${lext}

interfaces/api/display/I3DOverlay.h

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -43,14 +43,14 @@ class [[xpcf::clientUUID("ce48f688-bb48-4d61-800c-e504c0d060a8")]] [[xpcf::serve
4343
/// @brief I3DOverlay default destructor
4444
virtual ~I3DOverlay() = default;
4545

46-
/// @brief Set the intrinsic parameters and distorsion of the camera
47-
virtual void setCameraParameters(const SolAR::datastructure::CamCalibration & intrinsic_parameters, const SolAR::datastructure::CamDistortion & distorsion_parameters) = 0;
48-
4946
/// @brief Draw a box on the given Image
5047
/// The box is displayed according to the pose given in parameter. The reference of the box is positionned on the center of its bottom face.
5148
/// @param[in] Transfomr3Df The pose of the camera from which the box is viewed.
49+
/// @param[in] camParams The camera parameters.
5250
/// @param[in,out] displayImage The image on which the box will be drawn
53-
virtual void draw (const SolAR::datastructure::Transform3Df & pose, SRef<SolAR::datastructure::Image> displayImage) = 0;
51+
virtual void draw (const SolAR::datastructure::Transform3Df & pose,
52+
const SolAR::datastructure::CameraParameters & camParams,
53+
SRef<SolAR::datastructure::Image> displayImage) = 0;
5454

5555
};
5656
}

interfaces/api/features/IDescriptorMatcherGeometric.h

Lines changed: 17 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -56,32 +56,40 @@ class [[xpcf::clientUUID("1bd62a3f-3376-45c3-a980-94d042ae509f")]] [[xpcf::serve
5656
/// @param[in] undistortedKeypoints2 The second set of undistorted keypoints.
5757
/// @param[in] pose1 The first pose.
5858
/// @param[in] pose2 The second pose.
59-
/// @param[in] camParams The intrinsic parameters of the camera.
59+
/// @param[in] camParams1 The intrinsic parameters of the camera 1.
60+
/// @param[in] camParams2 The intrinsic parameters of the camera 2.
6061
/// @param[out] matches A vector of matches representing pairs of indices relatively to the first and second set of descriptors.
61-
/// @param[in] mask The indices of descriptors in the first frame are used for matching to the second frame. If it is empty then all will be used.
62+
/// @param[in] mask1 The indices of descriptors in the first frame are used for matching to the second frame. If it is empty then all will be used.
63+
/// @param[in] mask2 The indices of descriptors in the second frame are used for matching to the first frame. If it is empty then all will be used.
6264
/// @return FrameworkReturnCode::_SUCCESS if matching succeed, else FrameworkReturnCode::_ERROR_
6365
virtual FrameworkReturnCode match(const SRef<SolAR::datastructure::DescriptorBuffer> descriptors1,
6466
const SRef<SolAR::datastructure::DescriptorBuffer> descriptors2,
6567
const std::vector<SolAR::datastructure::Keypoint> &undistortedKeypoints1,
6668
const std::vector<SolAR::datastructure::Keypoint> &undistortedKeypoints2,
6769
const SolAR::datastructure::Transform3Df& pose1,
6870
const SolAR::datastructure::Transform3Df& pose2,
69-
const SolAR::datastructure::CameraParameters & camParams,
70-
std::vector<SolAR::datastructure::DescriptorMatch> & matches,
71-
const std::vector<uint32_t>& mask = {}) = 0;
71+
const SolAR::datastructure::CameraParameters & camParams1,
72+
const SolAR::datastructure::CameraParameters & camParams2,
73+
std::vector<SolAR::datastructure::DescriptorMatch> & matches,
74+
const std::vector<uint32_t>& mask1 = {},
75+
const std::vector<uint32_t>& mask2 = {}) = 0;
7276

7377
/// @brief Match two sets of descriptors from two frames based on epipolar constraint.
7478
/// @param[in] frame1 The first frame containing descriptors and undistorted keypoints.
7579
/// @param[in] frame2 The second frame containing descriptors and undistorted keypoints.
76-
/// @param[in] camParams The intrinsic parameters of the camera.
80+
/// @param[in] camParams1 The intrinsic parameters of the camera 1.
81+
/// @param[in] camParams2 The intrinsic parameters of the camera 2.
7782
/// @param[out] matches A vector of matches representing pairs of indices relatively to the first and second set of descriptors.
78-
/// @param[in] mask The indices of descriptors in the first frame are used for matching to the second frame. If it is empty then all will be used.
83+
/// @param[in] mask1 The indices of descriptors in the first frame are used for matching to the second frame. If it is empty then all will be used.
84+
/// @param[in] mask2 The indices of descriptors in the second frame are used for matching to the first frame. If it is empty then all will be used.
7985
/// @return FrameworkReturnCode::_SUCCESS if matching succeed, else FrameworkReturnCode::_ERROR_
8086
virtual FrameworkReturnCode match(const SRef<SolAR::datastructure::Frame> frame1,
8187
const SRef<SolAR::datastructure::Frame> frame2,
82-
const SolAR::datastructure::CameraParameters & camParams,
88+
const SolAR::datastructure::CameraParameters & camParams1,
89+
const SolAR::datastructure::CameraParameters & camParams2,
8390
std::vector<SolAR::datastructure::DescriptorMatch> & matches,
84-
const std::vector<uint32_t>& mask = {}) = 0;
91+
const std::vector<uint32_t>& mask1 = {},
92+
const std::vector<uint32_t>& mask2 = {}) = 0;
8593
};
8694
}
8795
}

0 commit comments

Comments
 (0)