├── .clang-format ├── .gitattributes ├── .github └── workflows │ └── clang-format-check.yml ├── .gitignore ├── .gitmodules ├── CMake ├── DSPatchConfig.cmake ├── FlowCVConfig.cmake ├── ImGui3DOpenGLConfig.cmake ├── ImGuiFileDialogConfig.cmake ├── ImGuiGlfwConfig.cmake ├── ImGuiNodeEditorConfig.cmake ├── ImGuiOpenCvConfig.cmake ├── ImGuiPlotConfig.cmake ├── ImGuiWrapperConfig.cmake ├── asio2SetupConfig.cmake └── spdlogSetupConfig.cmake ├── CMakeLists.txt ├── Editor_UI ├── CMakeLists.txt ├── Common │ ├── .clang-format │ ├── app_settings.cpp │ ├── app_settings.h │ ├── application.h │ ├── drawing.cpp │ ├── drawing.h │ ├── entry.cpp │ ├── node_editor.h │ ├── widgets.cpp │ └── widgets.h └── Node_Editor │ ├── AppIcon.png │ ├── appicon.ico │ ├── appicon.rc │ └── node_editor.cpp ├── Examples └── FlowCV_Dataflow_Test │ ├── CMakeLists.txt │ └── flowcv_dataflow_test.cpp ├── FlowCV_SDK ├── CMake │ ├── DSPatchConfig.cmake │ ├── FlowCVConfig.cmake │ ├── ImGuiConfig.cmake │ ├── OpenCvConfig.cmake │ └── spdlogSetupConfig.cmake ├── FlowCVConfig.cmake ├── include │ ├── FlowCV_Properties.hpp │ └── FlowCV_Types.hpp ├── src │ ├── FlowCV_Properties.cpp │ └── FlowCV_Types.cpp └── third-party │ ├── .clang-format │ ├── FileBrowser │ ├── Dirent │ │ └── dirent.h │ ├── ImGuiFileBrowser.cpp │ └── ImGuiFileBrowser.h │ ├── KHR │ └── khrplatform.h │ ├── dspatch │ ├── .travis.yml │ ├── 404.html │ ├── CHANGES │ ├── CMakeLists.txt │ ├── CNAME │ ├── DSPatchVersion.h.in │ ├── LICENSE │ ├── README.md │ ├── app.exe.manifest │ ├── docs │ │ ├── CMakeLists.txt │ │ ├── Doxyfile │ │ ├── heartbeat.png │ │ └── html │ │ │ ├── _auto_tick_thread_8h_source.html │ │ │ ├── _circuit_8h_source.html │ │ │ ├── _circuit_thread_8h_source.html │ │ │ ├── _common_8h_source.html │ │ │ ├── _component_8h_source.html │ │ │ ├── _component_thread_8h_source.html │ │ │ ├── _d_s_patch_8h_source.html │ │ │ ├── _d_s_patch_version_8h_source.html │ │ │ ├── _plugin_8h_source.html │ │ │ ├── _signal_8h_source.html │ │ │ ├── _signal_bus_8h_source.html │ │ │ ├── _wire_8h_source.html │ │ │ ├── annotated.html │ │ │ ├── bc_s.png │ │ │ ├── bdwn.png │ │ │ ├── class_d_s_patch_1_1_circuit-members.html │ │ │ ├── class_d_s_patch_1_1_circuit.html │ │ │ ├── class_d_s_patch_1_1_component-members.html │ │ │ ├── class_d_s_patch_1_1_component.html │ │ │ ├── class_d_s_patch_1_1_plugin-members.html │ │ │ ├── class_d_s_patch_1_1_plugin.html │ │ │ ├── class_d_s_patch_1_1_signal-members.html │ │ │ ├── class_d_s_patch_1_1_signal.html │ │ │ ├── class_d_s_patch_1_1_signal_bus-members.html │ │ │ ├── class_d_s_patch_1_1_signal_bus.html │ │ │ ├── class_d_s_patch_1_1internal_1_1_auto_tick_thread-members.html │ │ │ ├── class_d_s_patch_1_1internal_1_1_auto_tick_thread.html │ │ │ ├── class_d_s_patch_1_1internal_1_1_circuit_thread-members.html │ │ │ ├── class_d_s_patch_1_1internal_1_1_circuit_thread.html │ │ │ ├── class_d_s_patch_1_1internal_1_1_component_thread-members.html │ │ │ ├── class_d_s_patch_1_1internal_1_1_component_thread.html │ │ │ ├── classes.html │ │ │ ├── closed.png │ │ │ ├── dir_3756d50f4003bc63fa3fe49460f9c79d.html │ │ │ ├── dir_68267d1309a1af8e8297ef4c3efbcdba.html │ │ │ ├── dir_96ae4afe4ae1b3c2e5b248f6fc6b60cd.html │ │ │ ├── dir_d44c64559bbebec7f509842c48db8b23.html │ │ │ ├── doc.png │ │ │ ├── doxygen.css │ │ │ ├── doxygen.png │ │ │ ├── dynsections.js │ │ │ ├── files.html │ │ │ ├── folderclosed.png │ │ │ ├── folderopen.png │ │ │ ├── heartbeat.png │ │ │ ├── index.html │ │ │ ├── jquery.js │ │ │ ├── menu.js │ │ │ ├── menudata.js │ │ │ ├── nav_f.png │ │ │ ├── nav_g.png │ │ │ ├── nav_h.png │ │ │ ├── open.png │ │ │ ├── search │ │ │ ├── all_0.html │ │ │ ├── all_0.js │ │ │ ├── all_1.html │ │ │ ├── all_1.js │ │ │ ├── all_2.html │ │ │ ├── all_2.js │ │ │ ├── all_3.html │ │ │ ├── all_3.js │ │ │ ├── all_4.html │ │ │ ├── all_4.js │ │ │ ├── all_5.html │ │ │ ├── all_5.js │ │ │ ├── classes_0.html │ │ │ ├── classes_0.js │ │ │ ├── classes_1.html │ │ │ ├── classes_1.js │ │ │ ├── classes_2.html │ │ │ ├── classes_2.js │ │ │ ├── classes_3.html │ │ │ ├── classes_3.js │ │ │ ├── classes_4.html │ │ │ ├── classes_4.js │ │ │ ├── close.png │ │ │ ├── mag_sel.png │ │ │ ├── nomatches.html │ │ │ ├── pages_0.html │ │ │ ├── pages_0.js │ │ │ ├── search.css │ │ │ ├── search.js │ │ │ ├── search_l.png │ │ │ ├── search_m.png │ │ │ ├── search_r.png │ │ │ └── searchdata.js │ │ │ ├── splitbar.png │ │ │ ├── struct_d_s_patch_1_1internal_1_1_wire-members.html │ │ │ ├── struct_d_s_patch_1_1internal_1_1_wire.html │ │ │ ├── sync_off.png │ │ │ ├── sync_on.png │ │ │ ├── tab_a.png │ │ │ ├── tab_b.png │ │ │ ├── tab_h.png │ │ │ ├── tab_s.png │ │ │ └── tabs.css │ ├── include │ │ ├── DSPatch.h │ │ ├── DSPatchVersion.h │ │ └── dspatch │ │ │ ├── Circuit.h │ │ │ ├── Common.h │ │ │ ├── Component.h │ │ │ ├── ComponentTypes.hpp │ │ │ ├── Plugin.h │ │ │ ├── Signal.h │ │ │ └── SignalBus.h │ ├── index.html │ ├── manifest.in │ ├── src │ │ ├── Circuit.cpp │ │ ├── Component.cpp │ │ ├── Plugin.cpp │ │ ├── Signal.cpp │ │ ├── SignalBus.cpp │ │ └── internal │ │ │ ├── AutoTickThread.cpp │ │ │ ├── AutoTickThread.h │ │ │ ├── CircuitThread.cpp │ │ │ ├── CircuitThread.h │ │ │ ├── ComponentThread.cpp │ │ │ ├── ComponentThread.h │ │ │ └── Wire.h │ ├── tests │ │ ├── CMakeLists.txt │ │ ├── catch.hpp │ │ ├── components │ │ │ ├── Adder.h │ │ │ ├── BranchSyncProbe.h │ │ │ ├── ChangingCounter.h │ │ │ ├── ChangingProbe.h │ │ │ ├── CircuitCounter.h │ │ │ ├── CircuitProbe.h │ │ │ ├── Counter.h │ │ │ ├── FeedbackProbe.h │ │ │ ├── FeedbackTester.h │ │ │ ├── Incrementer.h │ │ │ ├── NoOutputProbe.h │ │ │ ├── NullInputProbe.h │ │ │ ├── ParallelProbe.h │ │ │ ├── PassThrough.h │ │ │ ├── SerialProbe.h │ │ │ ├── SlowCounter.h │ │ │ ├── SporadicCounter.h │ │ │ └── ThreadingProbe.h │ │ └── main.cpp │ ├── tutorial │ │ ├── CMakeLists.txt │ │ ├── components.h │ │ └── main.cpp │ └── version.rc.in │ ├── glad │ ├── glad.c │ └── glad.h │ ├── glm │ ├── CMakeLists.txt │ ├── common.hpp │ ├── detail │ │ ├── _features.hpp │ │ ├── _fixes.hpp │ │ ├── _noise.hpp │ │ ├── _swizzle.hpp │ │ ├── _swizzle_func.hpp │ │ ├── _vectorize.hpp │ │ ├── compute_common.hpp │ │ ├── compute_vector_relational.hpp │ │ ├── func_common.inl │ │ ├── func_common_simd.inl │ │ ├── func_exponential.inl │ │ ├── func_exponential_simd.inl │ │ ├── func_geometric.inl │ │ ├── func_geometric_simd.inl │ │ ├── func_integer.inl │ │ ├── func_integer_simd.inl │ │ ├── func_matrix.inl │ │ ├── func_matrix_simd.inl │ │ ├── func_packing.inl │ │ ├── func_packing_simd.inl │ │ ├── func_trigonometric.inl │ │ ├── func_trigonometric_simd.inl │ │ ├── func_vector_relational.inl │ │ ├── func_vector_relational_simd.inl │ │ ├── glm.cpp │ │ ├── qualifier.hpp │ │ ├── setup.hpp │ │ ├── type_float.hpp │ │ ├── type_half.hpp │ │ ├── type_half.inl │ │ ├── type_mat2x2.hpp │ │ ├── type_mat2x2.inl │ │ ├── type_mat2x3.hpp │ │ ├── type_mat2x3.inl │ │ ├── type_mat2x4.hpp │ │ ├── type_mat2x4.inl │ │ ├── type_mat3x2.hpp │ │ ├── type_mat3x2.inl │ │ ├── type_mat3x3.hpp │ │ ├── type_mat3x3.inl │ │ ├── type_mat3x4.hpp │ │ ├── type_mat3x4.inl │ │ ├── type_mat4x2.hpp │ │ ├── type_mat4x2.inl │ │ ├── type_mat4x3.hpp │ │ ├── type_mat4x3.inl │ │ ├── type_mat4x4.hpp │ │ ├── type_mat4x4.inl │ │ ├── type_mat4x4_simd.inl │ │ ├── type_quat.hpp │ │ ├── type_quat.inl │ │ ├── type_quat_simd.inl │ │ ├── type_vec1.hpp │ │ ├── type_vec1.inl │ │ ├── type_vec2.hpp │ │ ├── type_vec2.inl │ │ ├── type_vec3.hpp │ │ ├── type_vec3.inl │ │ ├── type_vec4.hpp │ │ ├── type_vec4.inl │ │ └── type_vec4_simd.inl │ ├── exponential.hpp │ ├── ext.hpp │ ├── ext │ │ ├── matrix_clip_space.hpp │ │ ├── matrix_clip_space.inl │ │ ├── matrix_common.hpp │ │ ├── matrix_common.inl │ │ ├── matrix_double2x2.hpp │ │ ├── matrix_double2x2_precision.hpp │ │ ├── matrix_double2x3.hpp │ │ ├── matrix_double2x3_precision.hpp │ │ ├── matrix_double2x4.hpp │ │ ├── matrix_double2x4_precision.hpp │ │ ├── matrix_double3x2.hpp │ │ ├── matrix_double3x2_precision.hpp │ │ ├── matrix_double3x3.hpp │ │ ├── matrix_double3x3_precision.hpp │ │ ├── matrix_double3x4.hpp │ │ ├── matrix_double3x4_precision.hpp │ │ ├── matrix_double4x2.hpp │ │ ├── matrix_double4x2_precision.hpp │ │ ├── matrix_double4x3.hpp │ │ ├── matrix_double4x3_precision.hpp │ │ ├── matrix_double4x4.hpp │ │ ├── matrix_double4x4_precision.hpp │ │ ├── matrix_float2x2.hpp │ │ ├── matrix_float2x2_precision.hpp │ │ ├── matrix_float2x3.hpp │ │ ├── matrix_float2x3_precision.hpp │ │ ├── matrix_float2x4.hpp │ │ ├── matrix_float2x4_precision.hpp │ │ ├── matrix_float3x2.hpp │ │ ├── matrix_float3x2_precision.hpp │ │ ├── matrix_float3x3.hpp │ │ ├── matrix_float3x3_precision.hpp │ │ ├── matrix_float3x4.hpp │ │ ├── matrix_float3x4_precision.hpp │ │ ├── matrix_float4x2.hpp │ │ ├── matrix_float4x2_precision.hpp │ │ ├── matrix_float4x3.hpp │ │ ├── matrix_float4x3_precision.hpp │ │ ├── matrix_float4x4.hpp │ │ ├── matrix_float4x4_precision.hpp │ │ ├── matrix_projection.hpp │ │ ├── matrix_projection.inl │ │ ├── matrix_relational.hpp │ │ ├── matrix_relational.inl │ │ ├── matrix_transform.hpp │ │ ├── matrix_transform.inl │ │ ├── quaternion_common.hpp │ │ ├── quaternion_common.inl │ │ ├── quaternion_common_simd.inl │ │ ├── quaternion_double.hpp │ │ ├── quaternion_double_precision.hpp │ │ ├── quaternion_exponential.hpp │ │ ├── quaternion_exponential.inl │ │ ├── quaternion_float.hpp │ │ ├── quaternion_float_precision.hpp │ │ ├── quaternion_geometric.hpp │ │ ├── quaternion_geometric.inl │ │ ├── quaternion_relational.hpp │ │ ├── quaternion_relational.inl │ │ ├── quaternion_transform.hpp │ │ ├── quaternion_transform.inl │ │ ├── quaternion_trigonometric.hpp │ │ ├── quaternion_trigonometric.inl │ │ ├── scalar_common.hpp │ │ ├── scalar_common.inl │ │ ├── scalar_constants.hpp │ │ ├── scalar_constants.inl │ │ ├── scalar_int_sized.hpp │ │ ├── scalar_integer.hpp │ │ ├── scalar_integer.inl │ │ ├── scalar_relational.hpp │ │ ├── scalar_relational.inl │ │ ├── scalar_uint_sized.hpp │ │ ├── scalar_ulp.hpp │ │ ├── scalar_ulp.inl │ │ ├── vector_bool1.hpp │ │ ├── vector_bool1_precision.hpp │ │ ├── vector_bool2.hpp │ │ ├── vector_bool2_precision.hpp │ │ ├── vector_bool3.hpp │ │ ├── vector_bool3_precision.hpp │ │ ├── vector_bool4.hpp │ │ ├── vector_bool4_precision.hpp │ │ ├── vector_common.hpp │ │ ├── vector_common.inl │ │ ├── vector_double1.hpp │ │ ├── vector_double1_precision.hpp │ │ ├── vector_double2.hpp │ │ ├── vector_double2_precision.hpp │ │ ├── vector_double3.hpp │ │ ├── vector_double3_precision.hpp │ │ ├── vector_double4.hpp │ │ ├── vector_double4_precision.hpp │ │ ├── vector_float1.hpp │ │ ├── vector_float1_precision.hpp │ │ ├── vector_float2.hpp │ │ ├── vector_float2_precision.hpp │ │ ├── vector_float3.hpp │ │ ├── vector_float3_precision.hpp │ │ ├── vector_float4.hpp │ │ ├── vector_float4_precision.hpp │ │ ├── vector_int1.hpp │ │ ├── vector_int1_precision.hpp │ │ ├── vector_int2.hpp │ │ ├── vector_int2_precision.hpp │ │ ├── vector_int3.hpp │ │ ├── vector_int3_precision.hpp │ │ ├── vector_int4.hpp │ │ ├── vector_int4_precision.hpp │ │ ├── vector_integer.hpp │ │ ├── vector_integer.inl │ │ ├── vector_relational.hpp │ │ ├── vector_relational.inl │ │ ├── vector_uint1.hpp │ │ ├── vector_uint1_precision.hpp │ │ ├── vector_uint2.hpp │ │ ├── vector_uint2_precision.hpp │ │ ├── vector_uint3.hpp │ │ ├── vector_uint3_precision.hpp │ │ ├── vector_uint4.hpp │ │ ├── vector_uint4_precision.hpp │ │ ├── vector_ulp.hpp │ │ └── vector_ulp.inl │ ├── fwd.hpp │ ├── geometric.hpp │ ├── glm.hpp │ ├── gtc │ │ ├── bitfield.hpp │ │ ├── bitfield.inl │ │ ├── color_space.hpp │ │ ├── color_space.inl │ │ ├── constants.hpp │ │ ├── constants.inl │ │ ├── epsilon.hpp │ │ ├── epsilon.inl │ │ ├── integer.hpp │ │ ├── integer.inl │ │ ├── matrix_access.hpp │ │ ├── matrix_access.inl │ │ ├── matrix_integer.hpp │ │ ├── matrix_inverse.hpp │ │ ├── matrix_inverse.inl │ │ ├── matrix_transform.hpp │ │ ├── matrix_transform.inl │ │ ├── noise.hpp │ │ ├── noise.inl │ │ ├── packing.hpp │ │ ├── packing.inl │ │ ├── quaternion.hpp │ │ ├── quaternion.inl │ │ ├── quaternion_simd.inl │ │ ├── random.hpp │ │ ├── random.inl │ │ ├── reciprocal.hpp │ │ ├── reciprocal.inl │ │ ├── round.hpp │ │ ├── round.inl │ │ ├── type_aligned.hpp │ │ ├── type_precision.hpp │ │ ├── type_precision.inl │ │ ├── type_ptr.hpp │ │ ├── type_ptr.inl │ │ ├── ulp.hpp │ │ ├── ulp.inl │ │ └── vec1.hpp │ ├── gtx │ │ ├── associated_min_max.hpp │ │ ├── associated_min_max.inl │ │ ├── bit.hpp │ │ ├── bit.inl │ │ ├── closest_point.hpp │ │ ├── closest_point.inl │ │ ├── color_encoding.hpp │ │ ├── color_encoding.inl │ │ ├── color_space.hpp │ │ ├── color_space.inl │ │ ├── color_space_YCoCg.hpp │ │ ├── color_space_YCoCg.inl │ │ ├── common.hpp │ │ ├── common.inl │ │ ├── compatibility.hpp │ │ ├── compatibility.inl │ │ ├── component_wise.hpp │ │ ├── component_wise.inl │ │ ├── dual_quaternion.hpp │ │ ├── dual_quaternion.inl │ │ ├── easing.hpp │ │ ├── easing.inl │ │ ├── euler_angles.hpp │ │ ├── euler_angles.inl │ │ ├── extend.hpp │ │ ├── extend.inl │ │ ├── extended_min_max.hpp │ │ ├── extended_min_max.inl │ │ ├── exterior_product.hpp │ │ ├── exterior_product.inl │ │ ├── fast_exponential.hpp │ │ ├── fast_exponential.inl │ │ ├── fast_square_root.hpp │ │ ├── fast_square_root.inl │ │ ├── fast_trigonometry.hpp │ │ ├── fast_trigonometry.inl │ │ ├── float_notmalize.inl │ │ ├── functions.hpp │ │ ├── functions.inl │ │ ├── gradient_paint.hpp │ │ ├── gradient_paint.inl │ │ ├── handed_coordinate_space.hpp │ │ ├── handed_coordinate_space.inl │ │ ├── hash.hpp │ │ ├── hash.inl │ │ ├── integer.hpp │ │ ├── integer.inl │ │ ├── intersect.hpp │ │ ├── intersect.inl │ │ ├── io.hpp │ │ ├── io.inl │ │ ├── log_base.hpp │ │ ├── log_base.inl │ │ ├── matrix_cross_product.hpp │ │ ├── matrix_cross_product.inl │ │ ├── matrix_decompose.hpp │ │ ├── matrix_decompose.inl │ │ ├── matrix_factorisation.hpp │ │ ├── matrix_factorisation.inl │ │ ├── matrix_interpolation.hpp │ │ ├── matrix_interpolation.inl │ │ ├── matrix_major_storage.hpp │ │ ├── matrix_major_storage.inl │ │ ├── matrix_operation.hpp │ │ ├── matrix_operation.inl │ │ ├── matrix_query.hpp │ │ ├── matrix_query.inl │ │ ├── matrix_transform_2d.hpp │ │ ├── matrix_transform_2d.inl │ │ ├── mixed_product.hpp │ │ ├── mixed_product.inl │ │ ├── norm.hpp │ │ ├── norm.inl │ │ ├── normal.hpp │ │ ├── normal.inl │ │ ├── normalize_dot.hpp │ │ ├── normalize_dot.inl │ │ ├── number_precision.hpp │ │ ├── number_precision.inl │ │ ├── optimum_pow.hpp │ │ ├── optimum_pow.inl │ │ ├── orthonormalize.hpp │ │ ├── orthonormalize.inl │ │ ├── perpendicular.hpp │ │ ├── perpendicular.inl │ │ ├── polar_coordinates.hpp │ │ ├── polar_coordinates.inl │ │ ├── projection.hpp │ │ ├── projection.inl │ │ ├── quaternion.hpp │ │ ├── quaternion.inl │ │ ├── range.hpp │ │ ├── raw_data.hpp │ │ ├── raw_data.inl │ │ ├── rotate_normalized_axis.hpp │ │ ├── rotate_normalized_axis.inl │ │ ├── rotate_vector.hpp │ │ ├── rotate_vector.inl │ │ ├── scalar_multiplication.hpp │ │ ├── scalar_relational.hpp │ │ ├── scalar_relational.inl │ │ ├── spline.hpp │ │ ├── spline.inl │ │ ├── std_based_type.hpp │ │ ├── std_based_type.inl │ │ ├── string_cast.hpp │ │ ├── string_cast.inl │ │ ├── texture.hpp │ │ ├── texture.inl │ │ ├── transform.hpp │ │ ├── transform.inl │ │ ├── transform2.hpp │ │ ├── transform2.inl │ │ ├── type_aligned.hpp │ │ ├── type_aligned.inl │ │ ├── type_trait.hpp │ │ ├── type_trait.inl │ │ ├── vec_swizzle.hpp │ │ ├── vector_angle.hpp │ │ ├── vector_angle.inl │ │ ├── vector_query.hpp │ │ ├── vector_query.inl │ │ ├── wrap.hpp │ │ └── wrap.inl │ ├── integer.hpp │ ├── mat2x2.hpp │ ├── mat2x3.hpp │ ├── mat2x4.hpp │ ├── mat3x2.hpp │ ├── mat3x3.hpp │ ├── mat3x4.hpp │ ├── mat4x2.hpp │ ├── mat4x3.hpp │ ├── mat4x4.hpp │ ├── matrix.hpp │ ├── packing.hpp │ ├── simd │ │ ├── common.h │ │ ├── exponential.h │ │ ├── geometric.h │ │ ├── integer.h │ │ ├── matrix.h │ │ ├── neon.h │ │ ├── packing.h │ │ ├── platform.h │ │ ├── trigonometric.h │ │ └── vector_relational.h │ ├── trigonometric.hpp │ ├── vec2.hpp │ ├── vec3.hpp │ ├── vec4.hpp │ └── vector_relational.hpp │ ├── imgui │ ├── .editorconfig │ ├── LICENSE.txt │ ├── backends │ │ ├── imgui_impl_allegro5.cpp │ │ ├── imgui_impl_allegro5.h │ │ ├── imgui_impl_android.cpp │ │ ├── imgui_impl_android.h │ │ ├── imgui_impl_dx10.cpp │ │ ├── imgui_impl_dx10.h │ │ ├── imgui_impl_dx11.cpp │ │ ├── imgui_impl_dx11.h │ │ ├── imgui_impl_dx12.cpp │ │ ├── imgui_impl_dx12.h │ │ ├── imgui_impl_dx9.cpp │ │ ├── imgui_impl_dx9.h │ │ ├── imgui_impl_glfw.cpp │ │ ├── imgui_impl_glfw.h │ │ ├── imgui_impl_glut.cpp │ │ ├── imgui_impl_glut.h │ │ ├── imgui_impl_marmalade.cpp │ │ ├── imgui_impl_marmalade.h │ │ ├── imgui_impl_metal.h │ │ ├── imgui_impl_metal.mm │ │ ├── imgui_impl_opengl2.cpp │ │ ├── imgui_impl_opengl2.h │ │ ├── imgui_impl_opengl3.cpp │ │ ├── imgui_impl_opengl3.h │ │ ├── imgui_impl_opengl3_loader.h │ │ ├── imgui_impl_osx.h │ │ ├── imgui_impl_osx.mm │ │ ├── imgui_impl_sdl.cpp │ │ ├── imgui_impl_sdl.h │ │ ├── imgui_impl_sdlrenderer.cpp │ │ ├── imgui_impl_sdlrenderer.h │ │ ├── imgui_impl_vulkan.cpp │ │ ├── imgui_impl_vulkan.h │ │ ├── imgui_impl_wgpu.cpp │ │ ├── imgui_impl_wgpu.h │ │ ├── imgui_impl_win32.cpp │ │ ├── imgui_impl_win32.h │ │ └── vulkan │ │ │ ├── generate_spv.sh │ │ │ ├── glsl_shader.frag │ │ │ └── glsl_shader.vert │ ├── docs │ │ ├── BACKENDS.md │ │ ├── CHANGELOG.txt │ │ ├── EXAMPLES.md │ │ ├── FAQ.md │ │ ├── FONTS.md │ │ ├── README.md │ │ └── TODO.txt │ ├── examples │ │ ├── README.txt │ │ ├── example_allegro5 │ │ │ ├── README.md │ │ │ ├── imconfig_allegro5.h │ │ │ └── main.cpp │ │ ├── example_android_opengl3 │ │ │ ├── CMakeLists.txt │ │ │ ├── android │ │ │ │ ├── .gitignore │ │ │ │ ├── app │ │ │ │ │ ├── build.gradle │ │ │ │ │ └── src │ │ │ │ │ │ └── main │ │ │ │ │ │ ├── AndroidManifest.xml │ │ │ │ │ │ └── java │ │ │ │ │ │ └── MainActivity.kt │ │ │ │ ├── build.gradle │ │ │ │ └── settings.gradle │ │ │ └── main.cpp │ │ ├── example_apple_metal │ │ │ ├── README.md │ │ │ ├── example_apple_metal.xcodeproj │ │ │ │ └── project.pbxproj │ │ │ ├── iOS │ │ │ │ ├── Info-iOS.plist │ │ │ │ └── LaunchScreen.storyboard │ │ │ ├── macOS │ │ │ │ ├── Info-macOS.plist │ │ │ │ └── MainMenu.storyboard │ │ │ └── main.mm │ │ ├── example_apple_opengl2 │ │ │ ├── example_apple_opengl2.xcodeproj │ │ │ │ └── project.pbxproj │ │ │ └── main.mm │ │ ├── example_emscripten_opengl3 │ │ │ ├── README.md │ │ │ ├── main.cpp │ │ │ └── shell_minimal.html │ │ ├── example_emscripten_wgpu │ │ │ ├── README.md │ │ │ ├── main.cpp │ │ │ └── web │ │ │ │ └── index.html │ │ ├── example_glfw_metal │ │ │ └── main.mm │ │ ├── example_glfw_opengl2 │ │ │ ├── build_win32.bat │ │ │ └── main.cpp │ │ ├── example_glfw_opengl3 │ │ │ ├── build_win32.bat │ │ │ └── main.cpp │ │ ├── example_glfw_vulkan │ │ │ ├── CMakeLists.txt │ │ │ ├── build_win32.bat │ │ │ ├── build_win64.bat │ │ │ └── main.cpp │ │ ├── example_glut_opengl2 │ │ │ └── main.cpp │ │ ├── example_marmalade │ │ │ ├── data │ │ │ │ └── app.icf │ │ │ ├── main.cpp │ │ │ └── marmalade_example.mkb │ │ ├── example_null │ │ │ ├── build_win32.bat │ │ │ └── main.cpp │ │ ├── example_sdl_directx11 │ │ │ ├── build_win32.bat │ │ │ └── main.cpp │ │ ├── example_sdl_metal │ │ │ └── main.mm │ │ ├── example_sdl_opengl2 │ │ │ ├── README.md │ │ │ ├── build_win32.bat │ │ │ └── main.cpp │ │ ├── example_sdl_opengl3 │ │ │ ├── README.md │ │ │ ├── build_win32.bat │ │ │ └── main.cpp │ │ ├── example_sdl_sdlrenderer │ │ │ ├── README.md │ │ │ ├── build_win32.bat │ │ │ └── main.cpp │ │ ├── example_sdl_vulkan │ │ │ ├── build_win32.bat │ │ │ └── main.cpp │ │ ├── example_win32_directx10 │ │ │ ├── build_win32.bat │ │ │ └── main.cpp │ │ ├── example_win32_directx11 │ │ │ ├── build_win32.bat │ │ │ └── main.cpp │ │ ├── example_win32_directx12 │ │ │ ├── build_win32.bat │ │ │ └── main.cpp │ │ ├── example_win32_directx9 │ │ │ ├── build_win32.bat │ │ │ └── main.cpp │ │ └── libs │ │ │ ├── gl3w │ │ │ └── GL │ │ │ │ ├── gl3w.c │ │ │ │ ├── gl3w.h │ │ │ │ └── glcorearb.h │ │ │ ├── glfw │ │ │ ├── COPYING.txt │ │ │ ├── include │ │ │ │ └── GLFW │ │ │ │ │ ├── glfw3.h │ │ │ │ │ └── glfw3native.h │ │ │ ├── lib-vc2019-32 │ │ │ │ ├── glfw3.dll │ │ │ │ ├── glfw3.lib │ │ │ │ ├── glfw3_mt.lib │ │ │ │ └── glfw3dll.lib │ │ │ └── lib-vc2019-64 │ │ │ │ ├── glfw3.dll │ │ │ │ ├── glfw3.lib │ │ │ │ ├── glfw3_mt.lib │ │ │ │ └── glfw3dll.lib │ │ │ └── usynergy │ │ │ ├── README.txt │ │ │ ├── uSynergy.c │ │ │ └── uSynergy.h │ ├── imconfig.h │ ├── imgui.cpp │ ├── imgui.h │ ├── imgui_demo.cpp │ ├── imgui_draw.cpp │ ├── imgui_internal.h │ ├── imgui_tables.cpp │ ├── imgui_widgets.cpp │ ├── imstb_rectpack.h │ ├── imstb_textedit.h │ ├── imstb_truetype.h │ └── misc │ │ ├── README.txt │ │ ├── cpp │ │ ├── README.txt │ │ ├── imgui_stdlib.cpp │ │ └── imgui_stdlib.h │ │ ├── debuggers │ │ ├── README.txt │ │ ├── imgui.gdb │ │ ├── imgui.natstepfilter │ │ └── imgui.natvis │ │ ├── fonts │ │ ├── Cousine-Regular.ttf │ │ ├── DroidSans.ttf │ │ ├── Karla-Regular.ttf │ │ ├── ProggyClean.ttf │ │ ├── ProggyTiny.ttf │ │ ├── Roboto-Medium.ttf │ │ └── binary_to_compressed_c.cpp │ │ ├── freetype │ │ ├── README.md │ │ ├── imgui_freetype.cpp │ │ └── imgui_freetype.h │ │ └── single_file │ │ └── imgui_single_file.h │ ├── imgui_wrapper │ ├── gl_helpers │ │ ├── EBO.cpp │ │ ├── EBO.h │ │ ├── VAO.cpp │ │ ├── VAO.h │ │ ├── VBO.cpp │ │ └── VBO.h │ ├── imgui_3d_opengl.cpp │ ├── imgui_3d_opengl.hpp │ ├── imgui_instance_helper.cpp │ ├── imgui_instance_helper.hpp │ ├── imgui_opencv.cpp │ ├── imgui_opencv.hpp │ ├── imgui_wrapper.cpp │ └── imgui_wrapper.hpp │ ├── implot │ ├── LICENSE │ ├── README.md │ ├── TODO.md │ ├── implot.cpp │ ├── implot.h │ ├── implot_demo.cpp │ ├── implot_internal.h │ └── implot_items.cpp │ ├── nlohmann │ └── json.hpp │ ├── node-editor │ ├── crude_json.cpp │ ├── crude_json.h │ ├── docs │ │ ├── README.md │ │ └── TODO.md │ ├── examples │ │ ├── CMakeLists.txt │ │ ├── application │ │ │ ├── CMakeLists.txt │ │ │ ├── include │ │ │ │ └── application.h │ │ │ ├── source │ │ │ │ ├── dx11 │ │ │ │ │ ├── entry.cpp │ │ │ │ │ ├── imgui_impl_dx11.cpp │ │ │ │ │ ├── imgui_impl_dx11.h │ │ │ │ │ ├── imgui_impl_win32.cpp │ │ │ │ │ └── imgui_impl_win32.h │ │ │ │ └── glfw │ │ │ │ │ ├── entry.cpp │ │ │ │ │ ├── imgui_impl_glfw_gl3.cpp │ │ │ │ │ └── imgui_impl_glfw_gl3.h │ │ │ └── support │ │ │ │ ├── Icon.icns │ │ │ │ ├── Icon.ico │ │ │ │ ├── Icon.png │ │ │ │ ├── Info.plist.in │ │ │ │ └── Resource.rc.in │ │ ├── basic-interaction-example │ │ │ ├── CMakeLists.txt │ │ │ └── basic-interaction-example.cpp │ │ ├── blueprints-example │ │ │ ├── CMakeLists.txt │ │ │ ├── blueprints-example.cpp │ │ │ ├── data │ │ │ │ ├── BlueprintBackground.png │ │ │ │ ├── ic_restore_white_24dp.png │ │ │ │ └── ic_save_white_24dp.png │ │ │ └── utilities │ │ │ │ ├── builders.cpp │ │ │ │ ├── builders.h │ │ │ │ ├── drawing.cpp │ │ │ │ ├── drawing.h │ │ │ │ ├── widgets.cpp │ │ │ │ └── widgets.h │ │ ├── canvas-example │ │ │ ├── CMakeLists.txt │ │ │ └── canvas-example.cpp │ │ └── simple-example │ │ │ ├── CMakeLists.txt │ │ │ └── simple-example.cpp │ ├── external │ │ ├── ScopeGuard │ │ │ ├── CMakeLists.txt │ │ │ └── ScopeGuard.h │ │ └── stb_image │ │ │ ├── CMakeLists.txt │ │ │ └── stb_image.h │ ├── imgui_bezier_math.h │ ├── imgui_bezier_math.inl │ ├── imgui_canvas.cpp │ ├── imgui_canvas.h │ ├── imgui_extra_math.h │ ├── imgui_extra_math.inl │ ├── imgui_node_editor.cpp │ ├── imgui_node_editor.h │ ├── imgui_node_editor_api.cpp │ ├── imgui_node_editor_internal.h │ ├── imgui_node_editor_internal.inl │ └── misc │ │ ├── cmake-modules │ │ ├── FindScopeGuard.cmake │ │ ├── Findgl3w.cmake │ │ ├── Findimgui.cmake │ │ ├── Findimgui_node_editor.cmake │ │ └── Findstb_image.cmake │ │ └── imgui_node_editor.natvis │ └── tclap │ ├── AUTHORS │ ├── COPYING │ ├── README │ └── include │ └── tclap │ ├── Arg.h │ ├── ArgException.h │ ├── ArgTraits.h │ ├── CmdLine.h │ ├── CmdLineInterface.h │ ├── CmdLineOutput.h │ ├── Constraint.h │ ├── DocBookOutput.h │ ├── HelpVisitor.h │ ├── IgnoreRestVisitor.h │ ├── MultiArg.h │ ├── MultiSwitchArg.h │ ├── OptionalUnlabeledTracker.h │ ├── StandardTraits.h │ ├── StdOutput.h │ ├── SwitchArg.h │ ├── UnlabeledMultiArg.h │ ├── UnlabeledValueArg.h │ ├── ValueArg.h │ ├── ValuesConstraint.h │ ├── VersionVisitor.h │ ├── Visitor.h │ ├── XorHandler.h │ └── ZshCompletionOutput.h ├── Internal_Nodes ├── AbsDiff │ ├── abs_diff.cpp │ └── abs_diff.hpp ├── Add │ ├── add.cpp │ └── add.hpp ├── AddWeighted │ ├── add_weighted.cpp │ └── add_weighted.hpp ├── BackgroundSubtraction │ ├── background_subtraction.cpp │ └── background_subtraction.hpp ├── Bitwise │ ├── bitwise.cpp │ └── bitwise.hpp ├── BlobDetector │ ├── blob_detector.cpp │ └── blob_detector.hpp ├── Blur │ ├── blur.cpp │ └── blur.hpp ├── Canny │ ├── canny.cpp │ └── canny.hpp ├── ColorReduce │ ├── color_reduce.cpp │ └── color_reduce.hpp ├── Colorcorrect │ ├── ColorCorrect.cpp │ └── ColorCorrect.hpp ├── Combine │ ├── combine.cpp │ └── combine.hpp ├── Contours │ ├── contours.cpp │ └── contours.hpp ├── ConvertColor │ ├── color_types.hpp │ ├── convert_color.cpp │ └── convert_color.hpp ├── CopyMakeBorder │ ├── copy_make_border.cpp │ └── copy_make_border.hpp ├── Crop │ ├── crop.cpp │ └── crop.hpp ├── DNN │ ├── dnn_backend_helper.cpp │ ├── dnn_backend_helper.hpp │ ├── dnn_human_pose.cpp │ ├── dnn_human_pose.hpp │ ├── dnn_human_pose_helper.cpp │ ├── dnn_human_pose_helper.hpp │ ├── dnn_image_classification.cpp │ ├── dnn_image_classification.hpp │ ├── dnn_image_processing.cpp │ ├── dnn_image_processing.hpp │ ├── dnn_object_detection.cpp │ ├── dnn_object_detection.hpp │ ├── dnn_segmentation.cpp │ ├── dnn_segmentation.hpp │ ├── dnn_text_detection.cpp │ ├── dnn_text_detection.hpp │ ├── dnn_text_recognition.cpp │ └── dnn_text_recognition.hpp ├── DepthViewer3d │ ├── depth_viewer_3D.cpp │ └── depth_viewer_3D.hpp ├── DiscreteCosineTransform │ ├── discrete_cosine_transform.cpp │ └── discrete_cosine_transform.hpp ├── DiscreteFourierTransform │ ├── discrete_fourier_transform.cpp │ └── discrete_fourier_transform.hpp ├── Divide │ ├── divide.cpp │ └── divide.hpp ├── DrawTools │ ├── draw_datetime.cpp │ ├── draw_datetime.hpp │ ├── draw_json.cpp │ ├── draw_json.hpp │ ├── draw_number.cpp │ ├── draw_number.hpp │ ├── draw_text.cpp │ └── draw_text.hpp ├── GetOptimalDft │ ├── get_optimal_dft.cpp │ └── get_optimal_dft.hpp ├── GetSize │ ├── get_size.cpp │ └── get_size.hpp ├── HistogramViewer │ ├── histogram_viewer.cpp │ └── histogram_viewer.hpp ├── HoughCircles │ ├── hough_circles.cpp │ └── hough_circles.hpp ├── HoughLines │ ├── hough_lines.cpp │ └── hough_lines.hpp ├── JsonViewer │ ├── json_viewer.cpp │ └── json_viewer.hpp ├── LaplacianFilter │ ├── laplacian_filter.cpp │ └── laplacian_filter.hpp ├── LineIntersect │ ├── line_intersect.cpp │ └── line_intersect.hpp ├── Magnitude │ ├── magnitude.cpp │ └── magnitude.hpp ├── Max │ ├── max.cpp │ └── max.hpp ├── Mean │ ├── mean.cpp │ └── mean.hpp ├── Min │ ├── min.cpp │ └── min.hpp ├── Morphology │ ├── Morphology.cpp │ └── Morphology.hpp ├── Multiply │ ├── multiply.cpp │ └── multiply.hpp ├── Normalize │ ├── normalize.cpp │ └── normalize.hpp ├── PerspectiveWarp │ ├── perspective_warp.cpp │ └── perspective_warp.hpp ├── Resize │ ├── resize.cpp │ └── resize.hpp ├── RndNoise │ ├── rnd_noise.cpp │ └── rnd_noise.hpp ├── ScaleAbs │ ├── scale_abs.cpp │ └── scale_abs.hpp ├── ScharrFilter │ ├── scharr_filter.cpp │ └── scharr_filter.hpp ├── Sharpen │ ├── sharpen.cpp │ └── sharpen.hpp ├── SobelFilter │ ├── sobel_filter.cpp │ └── sobel_filter.hpp ├── Solid │ ├── solid.cpp │ └── solid.hpp ├── Split │ ├── split.cpp │ └── split.hpp ├── Subtract │ ├── subtract.cpp │ └── subtract.hpp ├── Threshold │ ├── threshold.cpp │ └── threshold.hpp ├── Transform │ ├── transform.cpp │ └── transform.hpp ├── Viewer │ ├── viewer.cpp │ └── viewer.hpp └── internal_nodes.hpp ├── LICENSE ├── Managers ├── FlowCV_Manager.cpp ├── FlowCV_Manager.hpp ├── Internal_Node_Manager.cpp ├── Internal_Node_Manager.hpp ├── Plugin_Manager.cpp └── Plugin_Manager.hpp ├── Plugins ├── DataOutput │ ├── CMakeLists.txt │ ├── CSV_File.cpp │ ├── CSV_File.hpp │ ├── OSC_Send.cpp │ ├── OSC_Send.hpp │ ├── Serial_Send.cpp │ ├── Serial_Send.hpp │ ├── TCP_Send.cpp │ ├── TCP_Send.hpp │ ├── UDP_Send.cpp │ ├── UDP_Send.hpp │ ├── linux │ │ ├── List_Serial_Ports_Linux.cpp │ │ └── List_Serial_Ports_Linux.hpp │ ├── macos │ │ ├── List_Serial_Ports_Mac.cpp │ │ ├── List_Serial_Ports_Mac.hpp │ │ └── serial │ │ │ ├── .clang-format │ │ │ ├── include │ │ │ └── serial │ │ │ │ ├── impl │ │ │ │ └── unix.h │ │ │ │ ├── serial.h │ │ │ │ └── v8stdint.h │ │ │ └── src │ │ │ ├── impl │ │ │ ├── list_ports │ │ │ │ └── list_ports_osx.cc │ │ │ └── unix.cc │ │ │ └── serial.cc │ ├── serial_enumerator.cpp │ ├── serial_enumerator.hpp │ └── win │ │ ├── List_Serial_Ports_Win.cpp │ │ └── List_Serial_Ports_Win.hpp ├── ImageLoader │ ├── CMakeLists.txt │ ├── image_loader.cpp │ └── image_loader.hpp ├── ImageWriter │ ├── CMakeLists.txt │ ├── image_writer.cpp │ └── image_writer.hpp ├── ShapeColorizer │ ├── CMakeLists.txt │ ├── Shape_Colorizer.cpp │ └── Shape_Colorizer.hpp ├── ShapeCounter │ ├── CMakeLists.txt │ ├── Shape_Counter.cpp │ └── Shape_Counter.hpp ├── SimpleBlobTracker │ ├── CMakeLists.txt │ ├── simple_blob_tracker.cpp │ └── simple_blob_tracker.hpp ├── VideoCapture │ ├── CMakeLists.txt │ ├── camera_enumerator.cpp │ ├── camera_enumerator.hpp │ ├── linux │ │ ├── Camera_V4L.cpp │ │ └── Camera_V4L.hpp │ ├── macos │ │ ├── Camera_MacOS.cpp │ │ └── Camera_MacOS.hpp │ ├── video_capture.cpp │ ├── video_capture.hpp │ └── win │ │ ├── Camera_MSMF.cpp │ │ └── Camera_MSMF.hpp ├── VideoLoader │ ├── CMakeLists.txt │ ├── video_loader.cpp │ └── video_loader.hpp └── VideoWriter │ ├── CMakeLists.txt │ ├── video_writer.cpp │ └── video_writer.hpp ├── Processing_Engine ├── CMakeLists.txt └── headless_process_engine.cpp ├── README.md ├── Templates ├── Internal_Node │ ├── internal_template.cpp │ └── internal_template.hpp └── Plugin │ ├── CMakeLists.txt │ ├── plugin_template.cpp │ └── plugin_template.hpp ├── Tools └── PluginMaker.py ├── Utils ├── FlowLogger.cpp └── FlowLogger.hpp └── third-party ├── .clang-format └── osc ├── MessageMappingOscPacketListener.h ├── OscException.h ├── OscHostEndianness.h ├── OscOutboundPacketStream.cpp ├── OscOutboundPacketStream.h ├── OscPacketListener.h ├── OscPrintReceivedElements.cpp ├── OscPrintReceivedElements.h ├── OscReceivedElements.cpp ├── OscReceivedElements.h ├── OscTypes.cpp └── OscTypes.h /.clang-format: -------------------------------------------------------------------------------- 1 | --- 2 | BasedOnStyle: Google 3 | AccessModifierOffset: -2 4 | AlignAfterOpenBracket: DontAlign 5 | AllowAllConstructorInitializersOnNextLine: true 6 | AllowShortBlocksOnASingleLine: true 7 | AllowShortFunctionsOnASingleLine: Inline 8 | AllowShortIfStatementsOnASingleLine: Never 9 | AllowShortLoopsOnASingleLine: false 10 | AlwaysBreakTemplateDeclarations: MultiLine 11 | BreakBeforeBraces: Custom 12 | BraceWrapping: 13 | AfterEnum: true 14 | AfterStruct: true 15 | AfterClass: true 16 | AfterCaseLabel: false 17 | AfterFunction: true 18 | AfterNamespace: true 19 | AfterUnion: true 20 | AfterObjCDeclaration: true 21 | AfterExternBlock: true 22 | AfterControlStatement: false 23 | BeforeElse: true 24 | BeforeCatch: true 25 | BreakConstructorInitializers: BeforeComma 26 | BreakInheritanceList: BeforeComma 27 | ColumnLimit: 160 28 | IndentWidth: 4 29 | KeepEmptyLinesAtTheStartOfBlocks: true 30 | Language: Cpp 31 | PointerAlignment: Right 32 | SortIncludes: false 33 | DerivePointerAlignment: false 34 | DisableFormat: false 35 | SpaceAfterTemplateKeyword: false 36 | UseTab: Never 37 | 38 | ... 39 | -------------------------------------------------------------------------------- /.gitattributes: -------------------------------------------------------------------------------- 1 | *.png filter=lfs diff=lfs merge=lfs -text 2 | *.ico filter=lfs diff=lfs merge=lfs -text 3 | *.lib filter=lfs diff=lfs merge=lfs -text 4 | *.dll filter=lfs diff=lfs merge=lfs -text 5 | -------------------------------------------------------------------------------- /.github/workflows/clang-format-check.yml: -------------------------------------------------------------------------------- 1 | name: clang-format Check 2 | on: [push, pull_request] 3 | jobs: 4 | formatting-check: 5 | name: Formatting Check 6 | runs-on: ubuntu-latest 7 | steps: 8 | - uses: actions/checkout@v3 9 | - name: Run clang-format style check for C/C++/Protobuf programs. 10 | uses: jidicula/clang-format-action@v4.10.2 11 | with: 12 | clang-format-version: '15' 13 | fallback-style: 'Google' # optional -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | ?uild*/ 2 | cmake-build*/ 3 | FlowCV_SDK/third-party/opencv/ 4 | .idea/ 5 | CMakeLists.txt.user 6 | CMakeCache.txt 7 | CMakeFiles 8 | CMakeScripts 9 | Testing 10 | Makefile 11 | cmake_install.cmake 12 | install_manifest.txt 13 | compile_commands.json 14 | CTestTestfile.cmake 15 | _deps 16 | .vs/ 17 | .vscode/ 18 | .cache 19 | *.pdb 20 | *.vcxproj 21 | *.vcxproj.filters 22 | *.vcxproj.user 23 | *.sln 24 | *.obj 25 | *.tlog 26 | *.recipe 27 | x64/ 28 | ?ebug/ 29 | 30 | .DS_Store -------------------------------------------------------------------------------- /.gitmodules: -------------------------------------------------------------------------------- 1 | [submodule "Docs"] 2 | path = Docs 3 | url = https://github.com/FlowCV-org/FlowCV_Documentation.git 4 | -------------------------------------------------------------------------------- /CMake/DSPatchConfig.cmake: -------------------------------------------------------------------------------- 1 | message(STATUS "Adding DSPatch CMake Config") 2 | 3 | # DSPatch Library 4 | include_directories(${CMAKE_SOURCE_DIR}/FlowCV_SDK/third-party/dspatch/include) 5 | include_directories(${CMAKE_SOURCE_DIR}/Managers/Common) 6 | include_directories(${CMAKE_SOURCE_DIR}/FlowCV_SDK/third-party/dspatch/src) 7 | file(GLOB_RECURSE DSPatch_SRC ${CMAKE_SOURCE_DIR}/FlowCV_SDK/third-party/dspatch/src/*.cpp) 8 | -------------------------------------------------------------------------------- /CMake/FlowCVConfig.cmake: -------------------------------------------------------------------------------- 1 | message(STATUS "Adding FlowCV CMake Config") 2 | 3 | include_directories(${CMAKE_SOURCE_DIR}/Managers) 4 | include_directories(${CMAKE_SOURCE_DIR}/Utils) 5 | include_directories(${CMAKE_SOURCE_DIR}/FlowCV_SDK/include) 6 | list(APPEND FlowCV_SRC ${CMAKE_SOURCE_DIR}/FlowCV_SDK/src/FlowCV_Types.cpp) 7 | list(APPEND FlowCV_SRC ${CMAKE_SOURCE_DIR}/FlowCV_SDK/src/FlowCV_Properties.cpp) 8 | -------------------------------------------------------------------------------- /CMake/ImGui3DOpenGLConfig.cmake: -------------------------------------------------------------------------------- 1 | message(STATUS "Adding ImGUI 3D OpenGL CMake Config") 2 | 3 | set(IMGUI_3D_OPENGL_DIR ${CMAKE_SOURCE_DIR}/FlowCV_SDK/third-party/imgui_wrapper) 4 | include_directories(${IMGUI_3D_OPENGL_DIR}) 5 | include_directories(${IMGUI_3D_OPENGL_DIR}/gl_helpers) 6 | 7 | list(APPEND IMGUI_WRAPPER_SRC "${IMGUI_3D_OPENGL_DIR}/imgui_3d_opengl.cpp") 8 | list(APPEND IMGUI_WRAPPER_SRC "${IMGUI_3D_OPENGL_DIR}/gl_helpers/VBO.cpp") 9 | list(APPEND IMGUI_WRAPPER_SRC "${IMGUI_3D_OPENGL_DIR}/gl_helpers/VAO.cpp") 10 | list(APPEND IMGUI_WRAPPER_SRC "${IMGUI_3D_OPENGL_DIR}/gl_helpers/EBO.cpp") 11 | -------------------------------------------------------------------------------- /CMake/ImGuiFileDialogConfig.cmake: -------------------------------------------------------------------------------- 1 | message(STATUS "Adding ImGUI File Dialog CMake Config") 2 | 3 | set(IMGUI_FILE_DIALOG_DIR ${CMAKE_SOURCE_DIR}/FlowCV_SDK/third-party/FileBrowser) 4 | include_directories(${IMGUI_FILE_DIALOG_DIR}) 5 | 6 | if (WIN32) 7 | include_directories(${IMGUI_FILE_DIALOG_DIR}/Dirent) 8 | endif() 9 | 10 | list(APPEND IMGUI_WRAPPER_SRC "${IMGUI_FILE_DIALOG_DIR}/ImGuiFileBrowser.cpp") 11 | 12 | -------------------------------------------------------------------------------- /CMake/ImGuiNodeEditorConfig.cmake: -------------------------------------------------------------------------------- 1 | message(STATUS "Adding ImGUI Node Editor CMake Config") 2 | 3 | set(IMGUI_NODE_EDITOR_DIR ${CMAKE_SOURCE_DIR}/FlowCV_SDK/third-party/node-editor) 4 | include_directories(${IMGUI_NODE_EDITOR_DIR}) 5 | include_directories(${CMAKE_SOURCE_DIR}/Editor_UI/Common) 6 | include_directories(${IMGUI_NODE_EDITOR_DIR}/external/stb_image) 7 | include_directories(${IMGUI_NODE_EDITOR_DIR}/external/ScopeGuard) 8 | add_subdirectory(${IMGUI_NODE_EDITOR_DIR}/external/ScopeGuard) 9 | add_subdirectory(${IMGUI_NODE_EDITOR_DIR}/external/stb_image) 10 | 11 | file(GLOB IMGUI_NODE_EDITOR_SRC ${CMAKE_SOURCE_DIR}/FlowCV_SDK/third-party/node-editor/*.cpp) 12 | -------------------------------------------------------------------------------- /CMake/ImGuiPlotConfig.cmake: -------------------------------------------------------------------------------- 1 | message(STATUS "Adding ImGUI Plot CMake Config") 2 | 3 | add_compile_definitions(IMPLOT_ENABLED) 4 | set(IMGUI_PLOT_DIR ${CMAKE_SOURCE_DIR}/FlowCV_SDK/third-party/implot) 5 | include_directories(${IMGUI_PLOT_DIR}) 6 | 7 | list(APPEND IMGUI_WRAPPER_SRC "${IMGUI_PLOT_DIR}/implot.cpp") 8 | list(APPEND IMGUI_WRAPPER_SRC "${IMGUI_PLOT_DIR}/implot_items.cpp") 9 | -------------------------------------------------------------------------------- /CMake/ImGuiWrapperConfig.cmake: -------------------------------------------------------------------------------- 1 | message(STATUS "Adding ImGUI Wrapper CMake Config") 2 | 3 | set(IMGUI_WRAPPER_DIR ${CMAKE_SOURCE_DIR}/FlowCV_SDK/third-party/imgui_wrapper) 4 | include_directories(${IMGUI_WRAPPER_DIR}) 5 | 6 | list(APPEND IMGUI_WRAPPER_SRC "${IMGUI_WRAPPER_DIR}/imgui_wrapper.cpp") 7 | list(APPEND IMGUI_WRAPPER_SRC "${IMGUI_WRAPPER_DIR}/imgui_instance_helper.cpp") 8 | -------------------------------------------------------------------------------- /CMake/spdlogSetupConfig.cmake: -------------------------------------------------------------------------------- 1 | message(STATUS "Configuring spdlog") 2 | 3 | # https://github.com/gabime/spdlog/issues/2758 4 | include(FetchContent) 5 | 6 | FetchContent_Declare( 7 | spdlog 8 | GIT_REPOSITORY "https://github.com/gabime/spdlog.git" 9 | GIT_TAG v1.12.0 10 | ) 11 | FetchContent_MakeAvailable(spdlog) 12 | 13 | include_directories("${CMAKE_CURRENT_BINARY_DIR}/_deps/spdlog-src/include") 14 | 15 | add_compile_options(-DSPDLOG_COMPILED_LIB) -------------------------------------------------------------------------------- /Editor_UI/Common/.clang-format: -------------------------------------------------------------------------------- 1 | DisableFormat: true 2 | SortIncludes: false -------------------------------------------------------------------------------- /Editor_UI/Common/app_settings.h: -------------------------------------------------------------------------------- 1 | // 2 | // Common App Setting Header 3 | // 4 | 5 | #ifndef FLOWCV_APP_SETTINGS_H_ 6 | #define FLOWCV_APP_SETTINGS_H_ 7 | #include 8 | #include 9 | #include 10 | #include 11 | #include 12 | #include 13 | 14 | struct AppSettings 15 | { 16 | std::string configPath; 17 | std::vector extPluginDir; 18 | int recentListSize; 19 | std::deque recentFiles; 20 | bool showFPS; 21 | bool useVSync; 22 | int flowBufferCount; 23 | int logLevel; 24 | }; 25 | 26 | 27 | void ApplicationLoadSettings(AppSettings &settings); 28 | void ApplicationSaveSettings(const AppSettings &settings); 29 | 30 | 31 | #endif //FLOWCV_APP_SETTINGS_H_ 32 | -------------------------------------------------------------------------------- /Editor_UI/Common/application.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #define IMGUI_DEFINE_MATH_OPERATORS 3 | #include "imgui_internal.h" 4 | #include "imgui_wrapper.hpp" 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include "json.hpp" 10 | #include 11 | #include "node_editor.h" 12 | 13 | struct ApplicationGlobals { 14 | uint64_t selectedId{}; 15 | bool showLoadDialog{}; 16 | bool showSaveDialog{}; 17 | bool newFlow{}; 18 | bool saveFlow{}; 19 | bool firstLoad{}; 20 | bool stateHasChanged{}; 21 | bool stateIndicatorOnce{}; 22 | bool allowEditorKeys{}; 23 | bool doMenuCut{}; 24 | bool doMenuCopy{}; 25 | bool doMenuPaste{}; 26 | }; 27 | 28 | ApplicationGlobals* GetApplicationGlobals(); 29 | const char* Application_GetName(); 30 | void Application_Initialize(std::string& appPath); 31 | void Application_Finalize(); 32 | void Application_Frame(FlowCV::FlowCV_Manager& flowMan, const AppSettings &settings); 33 | nlohmann::json Application_GetState(FlowCV::FlowCV_Manager& flowMan); 34 | bool Application_SetState(FlowCV::FlowCV_Manager& flowMan, nlohmann::json& state); -------------------------------------------------------------------------------- /Editor_UI/Common/drawing.h: -------------------------------------------------------------------------------- 1 | # pragma once 2 | # include 3 | 4 | namespace ax::Drawing { 5 | 6 | enum class IconType: ImU32 { Flow, Circle, Square, Grid, RoundSquare, Diamond }; 7 | 8 | void DrawIcon(ImDrawList* drawList, const ImVec2& a, const ImVec2& b, IconType type, bool filled, ImU32 color, ImU32 innerColor); 9 | 10 | } // namespace ax -------------------------------------------------------------------------------- /Editor_UI/Common/node_editor.h: -------------------------------------------------------------------------------- 1 | // 2 | // Node Editor Version Info 3 | // 4 | 5 | #ifndef FLOWCV_EDITOR_UI_H_ 6 | #define FLOWCV_EDITOR_UI_H_ 7 | 8 | #ifndef EDITOR_UI_APP_VER 9 | #define EDITOR_UI_APP_VER 10 | 11 | #define FLOWCV_EDITOR_MAJOR_VERSION 0 12 | #define FLOWCV_EDITOR_MINOR_VERSION 2 13 | #define FLOWCV_EDITOR_PATCH_VERSION 0 14 | #define FLOWCV_EDITOR_BUILD_VERSION 0 15 | 16 | #define STRINGIFY(arg) #arg 17 | #define VAR_ARG_STRING(arg) STRINGIFY(arg) 18 | 19 | #define FLOWCV_EDITOR_VERSION (((FLOWCV_EDITOR_MAJOR_VERSION) * 10000) + ((FLOWCV_EDITOR_MINOR_VERSION) * 100) + (FLOWCV_EDITOR_PATCH_VERSION)) 20 | /* Return version in "X.Y.Z" format */ 21 | #define FLOWCV_EDITOR_VERSION_STR (VAR_ARG_STRING(FLOWCV_EDITOR_MAJOR_VERSION.FLOWCV_EDITOR_MINOR_VERSION.FLOWCV_EDITOR_PATCH_VERSION)) 22 | 23 | #endif // End EDITOR_UI_APP_VER 24 | 25 | #endif // FLOWCV_EDITOR_UI_H_ 26 | -------------------------------------------------------------------------------- /Editor_UI/Common/widgets.cpp: -------------------------------------------------------------------------------- 1 | # include "widgets.h" 2 | #include 3 | 4 | void ax::Widgets::Icon(const ImVec2& size, const ImRect& nodeSize, IconType type, bool filled, const ImVec4& color, const ImVec4& innerColor, bool isInput) 5 | { 6 | if (ImGui::IsRectVisible(size)) 7 | { 8 | auto cursorPos = ImGui::GetCursorScreenPos(); 9 | auto drawList = ImGui::GetWindowDrawList(); 10 | if (!isInput) { 11 | cursorPos.x = (nodeSize.Max.x - size.x) - 12; 12 | } 13 | ax::Drawing::DrawIcon(drawList, cursorPos , cursorPos + size, type, filled, ImColor(color), ImColor(innerColor)); 14 | } 15 | 16 | ImGui::Dummy(size); 17 | } 18 | 19 | -------------------------------------------------------------------------------- /Editor_UI/Common/widgets.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | # define IMGUI_DEFINE_MATH_OPERATORS 3 | #include 4 | #include 5 | #include "drawing.h" 6 | 7 | namespace ax { 8 | namespace Widgets { 9 | 10 | using Drawing::IconType; 11 | 12 | void Icon(const ImVec2& size, const ImRect& nodeSize, IconType type, bool filled, const ImVec4& color = ImVec4(1, 1, 1, 1), const ImVec4& innerColor = ImVec4(0, 0, 0, 0), bool isInput = false); 13 | 14 | } // namespace Widgets 15 | } // namespace ax -------------------------------------------------------------------------------- /Editor_UI/Node_Editor/AppIcon.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:5238a750d52accd5a1b5f7b49762fd26df9da5aa853665426ddc9891046fcd0e 3 | size 19320 4 | -------------------------------------------------------------------------------- /Editor_UI/Node_Editor/appicon.ico: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:6a04ecfda090a61c3d6b435653ab9995ac393c3d058416a73c8ed77461267e9c 3 | size 432254 4 | -------------------------------------------------------------------------------- /FlowCV_SDK/CMake/DSPatchConfig.cmake: -------------------------------------------------------------------------------- 1 | # DSPatch Library 2 | message(STATUS "Adding DSPatch CMake Config") 3 | 4 | include_directories(${FLOWCV_PROJ_DIR}/third-party/dspatch/include) 5 | include_directories(${FLOWCV_PROJ_DIR}/third-party/dspatch/src) 6 | file(GLOB_RECURSE DSPatch_SRC ${FLOWCV_PROJ_DIR}/third-party/dspatch/src/*.cpp) 7 | -------------------------------------------------------------------------------- /FlowCV_SDK/CMake/FlowCVConfig.cmake: -------------------------------------------------------------------------------- 1 | # FlowCV Config 2 | message(STATUS "Adding FlowCV CMake Config") 3 | 4 | # FlowCV Managers 5 | include_directories(${FLOWCV_PROJ_DIR}/include) 6 | list(APPEND FlowCV_SRC ${FLOWCV_PROJ_DIR}/src/FlowCV_Types.cpp) 7 | list(APPEND FlowCV_SRC ${FLOWCV_PROJ_DIR}/src/FlowCV_Properties.cpp) 8 | 9 | # Third Party 10 | include_directories(${FLOWCV_PROJ_DIR}/third-party) 11 | include_directories(${FLOWCV_PROJ_DIR}/third-party/nlohmann) 12 | include_directories(${FLOWCV_PROJ_DIR}/third-party/spdlog/include) 13 | -------------------------------------------------------------------------------- /FlowCV_SDK/CMake/ImGuiConfig.cmake: -------------------------------------------------------------------------------- 1 | #ImGUI Config 2 | message(STATUS "Adding ImGUI CMake Config") 3 | 4 | # Third Party 5 | include_directories(${FLOWCV_PROJ_DIR}/third-party/imgui_wrapper) 6 | list(APPEND IMGUI_SRC "${FLOWCV_PROJ_DIR}/third-party/imgui_wrapper/imgui_instance_helper.cpp") 7 | 8 | # ImGui 9 | set(IMGUI_DIR ${FLOWCV_PROJ_DIR}/third-party/imgui) 10 | include_directories(${IMGUI_DIR}) 11 | include_directories(${IMGUI_DIR}/backends) 12 | list(APPEND IMGUI_SRC "${IMGUI_DIR}/imgui.cpp") 13 | list(APPEND IMGUI_SRC "${IMGUI_DIR}/imgui_draw.cpp") 14 | list(APPEND IMGUI_SRC "${IMGUI_DIR}/imgui_widgets.cpp") 15 | list(APPEND IMGUI_SRC "${IMGUI_DIR}/imgui_tables.cpp") 16 | 17 | -------------------------------------------------------------------------------- /FlowCV_SDK/CMake/spdlogSetupConfig.cmake: -------------------------------------------------------------------------------- 1 | message(STATUS "Configuring spdlog") 2 | 3 | # https://github.com/gabime/spdlog/issues/2758 4 | include(FetchContent) 5 | 6 | FetchContent_Declare( 7 | spdlog 8 | GIT_REPOSITORY "https://github.com/gabime/spdlog.git" 9 | GIT_TAG v1.12.0 10 | ) 11 | FetchContent_MakeAvailable(spdlog) 12 | 13 | include_directories("${CMAKE_CURRENT_BINARY_DIR}/_deps/spdlog-src/include") 14 | 15 | add_compile_options(-DSPDLOG_COMPILED_LIB) -------------------------------------------------------------------------------- /FlowCV_SDK/FlowCVConfig.cmake: -------------------------------------------------------------------------------- 1 | # ====================================================== 2 | # Version variables: 3 | # ====================================================== 4 | set(FLOWCV_VERSION 1.1.0) 5 | set(FLOWCV_VERSION_MAJOR 1) 6 | set(FLOWCV_VERSION_MINOR 1) 7 | set(FLOWCV_VERSION_PATCH 0) 8 | set(FLOWCV_VERSION_TWEAK 0) 9 | set(FLOWCV_VERSION_STATUS "") 10 | 11 | set(FLOWCV_PROJ_DIR ${CMAKE_CURRENT_LIST_DIR}) 12 | 13 | option(USE_LOCAL_OPENCV_PACKAGE "Use locally OpenCV Package" ON) 14 | 15 | include(${FLOWCV_PROJ_DIR}/CMake/ImGuiConfig.cmake) 16 | include(${FLOWCV_PROJ_DIR}/CMake/FlowCVConfig.cmake) 17 | include(${FLOWCV_PROJ_DIR}/CMake/DSPatchConfig.cmake) 18 | include(${FLOWCV_PROJ_DIR}/CMake/OpenCvConfig.cmake) 19 | include(${FLOWCV_PROJ_DIR}/CMake/spdlogSetupConfig.cmake) -------------------------------------------------------------------------------- /FlowCV_SDK/include/FlowCV_Types.hpp: -------------------------------------------------------------------------------- 1 | // 2 | // FlowCV Common Types 3 | // 4 | 5 | #ifndef FLOWCV_TYPES_HPP_ 6 | #define FLOWCV_TYPES_HPP_ 7 | 8 | #include 9 | #include 10 | 11 | namespace FlowCV 12 | { 13 | 14 | enum GuiInterfaceType 15 | { 16 | GuiInterfaceType_Controls, 17 | GuiInterfaceType_Main, 18 | GuiInterfaceType_Other 19 | }; 20 | 21 | struct NodeDescription 22 | { 23 | int input_count{}; 24 | int output_count{}; 25 | std::string name{}; 26 | DSPatch::Category category{}; 27 | std::string author{}; 28 | std::string version{}; 29 | }; 30 | } // End Namespace FlowCV 31 | 32 | namespace DSPatch 33 | { 34 | const std::map &getCategories(); 35 | } 36 | 37 | #endif // FLOWCV_TYPES_HPP_ 38 | -------------------------------------------------------------------------------- /FlowCV_SDK/src/FlowCV_Types.cpp: -------------------------------------------------------------------------------- 1 | // 2 | // FlowCV Common Types 3 | // 4 | 5 | #include "DSPatch.h" 6 | 7 | namespace DSPatch 8 | { 9 | const std::map &getCategories() 10 | { 11 | static const auto *category_strings = new std::map{{Category::Category_Source, "Source"}, 12 | {Category::Category_Output, "Output"}, {Category::Category_Draw, "Draw"}, {Category::Category_Color, "Color"}, {Category::Category_Filter, "Filter"}, 13 | {Category::Category_Merge, "Merge"}, {Category::Category_Transform, "Transform"}, {Category::Category_Views, "Views"}, 14 | {Category::Category_Feature_Detection, "Feature Detection"}, {Category::Category_DNN, "DNN"}, {Category::Category_Utility, "Utility"}, 15 | {Category::Category_Other, "Other"}, {Category::Category_Experimental, "Experimental"}}; 16 | 17 | return *category_strings; 18 | } 19 | } // namespace DSPatch -------------------------------------------------------------------------------- /FlowCV_SDK/third-party/.clang-format: -------------------------------------------------------------------------------- 1 | DisableFormat: true 2 | SortIncludes: false -------------------------------------------------------------------------------- /FlowCV_SDK/third-party/dspatch/404.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /FlowCV_SDK/third-party/dspatch/CNAME: -------------------------------------------------------------------------------- 1 | flowbasedprogramming.com -------------------------------------------------------------------------------- /FlowCV_SDK/third-party/dspatch/app.exe.manifest: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /FlowCV_SDK/third-party/dspatch/docs/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | option(RUN_DOXYGEN "Run Doxygen" OFF) 2 | 3 | if(${RUN_DOXYGEN}) 4 | 5 | find_package(Doxygen) 6 | 7 | if(DOXYGEN_FOUND) 8 | 9 | add_custom_target( 10 | docs ALL 11 | ${DOXYGEN_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/Doxyfile 12 | WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} 13 | COMMENT "Generating API documentation with Doxygen" VERBATIM 14 | ) 15 | 16 | endif(DOXYGEN_FOUND) 17 | 18 | endif(${RUN_DOXYGEN}) 19 | -------------------------------------------------------------------------------- /FlowCV_SDK/third-party/dspatch/docs/heartbeat.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:a28b142fe82f2955ab43e87e40d869bdf596c8947a92b7aed0bac5cd12b081a0 3 | size 10339 4 | -------------------------------------------------------------------------------- /FlowCV_SDK/third-party/dspatch/docs/html/bc_s.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:1694585f13b6a45c0fc297c05433f15e30e528031e9af304a1d46223a8b1f431 3 | size 685 4 | -------------------------------------------------------------------------------- /FlowCV_SDK/third-party/dspatch/docs/html/bdwn.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:71b52dfd0f063442d13f47f73b2681bb63001519118f4f85ddde144d338f24a4 3 | size 146 4 | -------------------------------------------------------------------------------- /FlowCV_SDK/third-party/dspatch/docs/html/closed.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:77b523408db59aa8cdedea09546aeed90cfcd5c91fb51364e2d8ed9925b9fadc 3 | size 131 4 | -------------------------------------------------------------------------------- /FlowCV_SDK/third-party/dspatch/docs/html/doc.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:44bee4e35e21a19f515fd0bb997ef9562dcdba028f324b77ce5823bb10e085bb 3 | size 827 4 | -------------------------------------------------------------------------------- /FlowCV_SDK/third-party/dspatch/docs/html/doxygen.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:b9d2b964e2a90a9e05d4bba78779dd028cbd296095960cfc9b62cfcec8a8c130 3 | size 3868 4 | -------------------------------------------------------------------------------- /FlowCV_SDK/third-party/dspatch/docs/html/folderclosed.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:efe69435abb6772e9a82e7cc2bae75b0657e6d33b8a08f44120524bb7cba6760 3 | size 637 4 | -------------------------------------------------------------------------------- /FlowCV_SDK/third-party/dspatch/docs/html/folderopen.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:83b03dc3066617337d428e627bfb8e3d995bdd79bdcdafc61b6a40d52608c48c 3 | size 648 4 | -------------------------------------------------------------------------------- /FlowCV_SDK/third-party/dspatch/docs/html/heartbeat.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:a28b142fe82f2955ab43e87e40d869bdf596c8947a92b7aed0bac5cd12b081a0 3 | size 10339 4 | -------------------------------------------------------------------------------- /FlowCV_SDK/third-party/dspatch/docs/html/nav_f.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:054e9fd7d8d68d20153a95898cd00f9f23d9da67d7087ad9dc6eedc04f246b7a 3 | size 161 4 | -------------------------------------------------------------------------------- /FlowCV_SDK/third-party/dspatch/docs/html/nav_g.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:3171164c16baa5953c17821a7ce5feac673c05a56b287453ce3a0bf5048f0999 3 | size 95 4 | -------------------------------------------------------------------------------- /FlowCV_SDK/third-party/dspatch/docs/html/nav_h.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:f7f556577dce1274f4f11ba25babbcb22ca63ecae263800806ed0a871fa6ea1e 3 | size 96 4 | -------------------------------------------------------------------------------- /FlowCV_SDK/third-party/dspatch/docs/html/open.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:d5f6f5266abf91d655946cf728cbd26482e9351a7581d10a3209e8f2c1a742c5 3 | size 118 4 | -------------------------------------------------------------------------------- /FlowCV_SDK/third-party/dspatch/docs/html/search/all_0.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['autotickthread_0',['AutoTickThread',['../class_d_s_patch_1_1internal_1_1_auto_tick_thread.html',1,'DSPatch::internal']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /FlowCV_SDK/third-party/dspatch/docs/html/search/all_1.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['circuit_1',['Circuit',['../class_d_s_patch_1_1_circuit.html',1,'DSPatch']]], 4 | ['circuitthread_2',['CircuitThread',['../class_d_s_patch_1_1internal_1_1_circuit_thread.html',1,'DSPatch::internal']]], 5 | ['component_3',['Component',['../class_d_s_patch_1_1_component.html',1,'DSPatch']]], 6 | ['componentthread_4',['ComponentThread',['../class_d_s_patch_1_1internal_1_1_component_thread.html',1,'DSPatch::internal']]] 7 | ]; 8 | -------------------------------------------------------------------------------- /FlowCV_SDK/third-party/dspatch/docs/html/search/all_2.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['plugin_5',['Plugin',['../class_d_s_patch_1_1_plugin.html',1,'DSPatch']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /FlowCV_SDK/third-party/dspatch/docs/html/search/all_3.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['signal_6',['Signal',['../class_d_s_patch_1_1_signal.html',1,'DSPatch']]], 4 | ['signalbus_7',['SignalBus',['../class_d_s_patch_1_1_signal_bus.html',1,'DSPatch']]] 5 | ]; 6 | -------------------------------------------------------------------------------- /FlowCV_SDK/third-party/dspatch/docs/html/search/all_4.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['the_20refreshingly_20simple_20c_2b_2b_20dataflow_20framework_8',['The Refreshingly Simple C++ Dataflow Framework',['../index.html',1,'']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /FlowCV_SDK/third-party/dspatch/docs/html/search/all_5.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['wire_9',['Wire',['../struct_d_s_patch_1_1internal_1_1_wire.html',1,'DSPatch::internal']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /FlowCV_SDK/third-party/dspatch/docs/html/search/classes_0.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['autotickthread_10',['AutoTickThread',['../class_d_s_patch_1_1internal_1_1_auto_tick_thread.html',1,'DSPatch::internal']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /FlowCV_SDK/third-party/dspatch/docs/html/search/classes_1.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['circuit_11',['Circuit',['../class_d_s_patch_1_1_circuit.html',1,'DSPatch']]], 4 | ['circuitthread_12',['CircuitThread',['../class_d_s_patch_1_1internal_1_1_circuit_thread.html',1,'DSPatch::internal']]], 5 | ['component_13',['Component',['../class_d_s_patch_1_1_component.html',1,'DSPatch']]], 6 | ['componentthread_14',['ComponentThread',['../class_d_s_patch_1_1internal_1_1_component_thread.html',1,'DSPatch::internal']]] 7 | ]; 8 | -------------------------------------------------------------------------------- /FlowCV_SDK/third-party/dspatch/docs/html/search/classes_2.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['plugin_15',['Plugin',['../class_d_s_patch_1_1_plugin.html',1,'DSPatch']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /FlowCV_SDK/third-party/dspatch/docs/html/search/classes_3.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['signal_16',['Signal',['../class_d_s_patch_1_1_signal.html',1,'DSPatch']]], 4 | ['signalbus_17',['SignalBus',['../class_d_s_patch_1_1_signal_bus.html',1,'DSPatch']]] 5 | ]; 6 | -------------------------------------------------------------------------------- /FlowCV_SDK/third-party/dspatch/docs/html/search/classes_4.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['wire_18',['Wire',['../struct_d_s_patch_1_1internal_1_1_wire.html',1,'DSPatch::internal']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /FlowCV_SDK/third-party/dspatch/docs/html/search/close.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:f6eb1d3449c4157f13cba9fea540652efca373c12cbec11d43e7e458364e747e 3 | size 273 4 | -------------------------------------------------------------------------------- /FlowCV_SDK/third-party/dspatch/docs/html/search/mag_sel.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:a4f4b2ca8687c4f9389cf9e4f032639c474413193de6cae8e6f90e2fdeecb3f3 3 | size 465 4 | -------------------------------------------------------------------------------- /FlowCV_SDK/third-party/dspatch/docs/html/search/nomatches.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 |
No Matches
10 |
11 | 12 | 13 | -------------------------------------------------------------------------------- /FlowCV_SDK/third-party/dspatch/docs/html/search/pages_0.js: -------------------------------------------------------------------------------- 1 | var searchData= 2 | [ 3 | ['the_20refreshingly_20simple_20c_2b_2b_20dataflow_20framework_19',['The Refreshingly Simple C++ Dataflow Framework',['../index.html',1,'']]] 4 | ]; 5 | -------------------------------------------------------------------------------- /FlowCV_SDK/third-party/dspatch/docs/html/search/search_l.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:c0f25b1e48a19fbefb9a69a3fd7d6fc2da3ac9451e7ae117e94eef8b7d69a563 3 | size 567 4 | -------------------------------------------------------------------------------- /FlowCV_SDK/third-party/dspatch/docs/html/search/search_m.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:1b8441a9427d3b320d912c210a5f238a71b13e6d2f26de7e98b36dce58d7b68f 3 | size 158 4 | -------------------------------------------------------------------------------- /FlowCV_SDK/third-party/dspatch/docs/html/search/search_r.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:7182c37ecd6b1466b89b0193a81dcb98812104358d67c68f92c6199bbbf8c206 3 | size 553 4 | -------------------------------------------------------------------------------- /FlowCV_SDK/third-party/dspatch/docs/html/search/searchdata.js: -------------------------------------------------------------------------------- 1 | var indexSectionsWithContent = 2 | { 3 | 0: "acpstw", 4 | 1: "acpsw", 5 | 2: "t" 6 | }; 7 | 8 | var indexSectionNames = 9 | { 10 | 0: "all", 11 | 1: "classes", 12 | 2: "pages" 13 | }; 14 | 15 | var indexSectionLabels = 16 | { 17 | 0: "All", 18 | 1: "Classes", 19 | 2: "Pages" 20 | }; 21 | 22 | -------------------------------------------------------------------------------- /FlowCV_SDK/third-party/dspatch/docs/html/splitbar.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:fb60c87c108c54659f1c766154ea9dc269dfb78067b4e24211e8a3ef8aa46f95 3 | size 308 4 | -------------------------------------------------------------------------------- /FlowCV_SDK/third-party/dspatch/docs/html/sync_off.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:addb7d0ec6c3947ff3a5b1072898a302c141113b4da88ae65290e17ba5b2bc28 3 | size 863 4 | -------------------------------------------------------------------------------- /FlowCV_SDK/third-party/dspatch/docs/html/sync_on.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:93515d3ba567292cf764bfbfee535dfb5a665e9339edaef332252cd77d10d263 3 | size 833 4 | -------------------------------------------------------------------------------- /FlowCV_SDK/third-party/dspatch/docs/html/tab_a.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:a84fd6ddcec8e9eae1e0a1a3c7d67c1a0dfb6a5e2bac647f85976c9e1666e0a6 3 | size 130 4 | -------------------------------------------------------------------------------- /FlowCV_SDK/third-party/dspatch/docs/html/tab_b.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:eb1b13912ab11309e105371b6843bcc508abb755756753a2d73f17231e21a1e8 3 | size 169 4 | -------------------------------------------------------------------------------- /FlowCV_SDK/third-party/dspatch/docs/html/tab_h.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:7849506e3bcc1e848661546b9e176cdf7642cca572c37a5e589c2ce36370d0a1 3 | size 173 4 | -------------------------------------------------------------------------------- /FlowCV_SDK/third-party/dspatch/docs/html/tab_s.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:b16bc4051b9a8b2920a59323fa2180436c45bddf4857d6ac1817abd73cafdead 3 | size 190 4 | -------------------------------------------------------------------------------- /FlowCV_SDK/third-party/dspatch/include/dspatch/ComponentTypes.hpp: -------------------------------------------------------------------------------- 1 | // 2 | // DSPatch Common Data Types 3 | // 4 | 5 | #ifndef DSPATCH_MANAGERS_COMMON_TYPES_HPP_ 6 | #define DSPATCH_MANAGERS_COMMON_TYPES_HPP_ 7 | 8 | namespace DSPatch 9 | { 10 | 11 | enum class IoType 12 | { 13 | Io_Type_Unspecified, 14 | Io_Type_CvMat, 15 | Io_Type_Bool, 16 | Io_Type_Int, 17 | Io_Type_Float, 18 | Io_Type_String, 19 | Io_Type_JSON, 20 | Io_Type_Bool_Array, 21 | Io_Type_Int_Array, 22 | Io_Type_Float_Array, 23 | Io_Type_String_Array 24 | }; 25 | 26 | enum class Category 27 | { 28 | Category_Source, 29 | Category_Output, 30 | Category_Draw, 31 | Category_Color, 32 | Category_Filter, 33 | Category_Merge, 34 | Category_Transform, 35 | Category_Views, 36 | Category_Feature_Detection, 37 | Category_DNN, 38 | Category_OpenVino, 39 | Category_Utility, 40 | Category_Other, 41 | Category_Experimental 42 | }; 43 | 44 | } // End Namespace DSPatch 45 | 46 | #endif //DSPATCH_MANAGERS_COMMON_TYPES_HPP_ 47 | -------------------------------------------------------------------------------- /FlowCV_SDK/third-party/dspatch/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /FlowCV_SDK/third-party/dspatch/manifest.in: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /FlowCV_SDK/third-party/dspatch/tests/components/Adder.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | namespace DSPatch 4 | { 5 | 6 | class Adder : public Component 7 | { 8 | public: 9 | Adder() 10 | : Component( ProcessOrder::OutOfOrder ) 11 | { 12 | SetInputCount_( 2 ); 13 | SetOutputCount_( 1 ); 14 | } 15 | 16 | protected: 17 | virtual void Process_( SignalBus const& inputs, SignalBus& outputs ) override 18 | { 19 | auto in0 = inputs.GetValue( 0 ); 20 | auto in1 = inputs.GetValue( 1 ); 21 | 22 | outputs.SetValue( 0, ( in0 ? *in0 : 0 ) + ( in1 ? *in1 : 0 ) ); 23 | } 24 | }; 25 | 26 | } // namespace DSPatch 27 | -------------------------------------------------------------------------------- /FlowCV_SDK/third-party/dspatch/tests/components/BranchSyncProbe.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | namespace DSPatch 4 | { 5 | 6 | class BranchSyncProbe : public Component 7 | { 8 | public: 9 | BranchSyncProbe() 10 | : _count( 0 ) 11 | { 12 | SetInputCount_( 3 ); 13 | } 14 | 15 | protected: 16 | virtual void Process_( SignalBus const& inputs, SignalBus& ) override 17 | { 18 | auto in0 = inputs.GetValue( 0 ); 19 | REQUIRE( in0 != nullptr ); 20 | 21 | auto in1 = inputs.GetValue( 1 ); 22 | REQUIRE( in1 != nullptr ); 23 | 24 | auto in2 = inputs.GetValue( 2 ); 25 | REQUIRE( in2 != nullptr ); 26 | 27 | REQUIRE( *in0 == 4 + _count ); 28 | REQUIRE( *in1 == 2 + _count ); 29 | REQUIRE( *in2 == 1 + _count++ ); 30 | } 31 | 32 | private: 33 | int _count; 34 | }; 35 | 36 | } // namespace DSPatch 37 | -------------------------------------------------------------------------------- /FlowCV_SDK/third-party/dspatch/tests/components/CircuitCounter.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | namespace DSPatch 4 | { 5 | 6 | class CircuitCounter : public Component 7 | { 8 | public: 9 | CircuitCounter() 10 | : _count( 0 ) 11 | { 12 | SetInputCount_( 1 ); 13 | SetOutputCount_( 1 ); 14 | } 15 | 16 | protected: 17 | virtual void Process_( SignalBus const& inputs, SignalBus& outputs ) override 18 | { 19 | auto in = inputs.GetValue( 0 ); 20 | if ( in ) 21 | { 22 | // Count only when the circuit is closed 23 | ++_count; 24 | } 25 | 26 | outputs.SetValue( 0, _count ); 27 | } 28 | 29 | private: 30 | int _count; 31 | }; 32 | 33 | } // namespace DSPatch 34 | -------------------------------------------------------------------------------- /FlowCV_SDK/third-party/dspatch/tests/components/CircuitProbe.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | namespace DSPatch 4 | { 5 | 6 | class CircuitProbe : public Component 7 | { 8 | public: 9 | CircuitProbe() 10 | : _count( 0 ) 11 | { 12 | SetInputCount_( 1 ); 13 | SetOutputCount_( 1 ); 14 | } 15 | 16 | protected: 17 | virtual void Process_( SignalBus const& inputs, SignalBus& outputs ) override 18 | { 19 | auto in = inputs.GetValue( 0 ); 20 | if ( in ) 21 | { 22 | REQUIRE( *in == _count++ ); 23 | 24 | // inform the counter that the circuit is closed 25 | outputs.SetValue( 0, true ); 26 | } 27 | } 28 | 29 | private: 30 | int _count; 31 | }; 32 | 33 | } // namespace DSPatch 34 | -------------------------------------------------------------------------------- /FlowCV_SDK/third-party/dspatch/tests/components/Counter.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | namespace DSPatch 4 | { 5 | 6 | class Counter : public Component 7 | { 8 | public: 9 | Counter( int increment = 1 ) 10 | : _count( 0 ) 11 | , _increment( increment ) 12 | { 13 | SetOutputCount_( 1 ); 14 | } 15 | 16 | protected: 17 | virtual void Process_( SignalBus const&, SignalBus& outputs ) override 18 | { 19 | outputs.SetValue( 0, _count ); 20 | _count += _increment; 21 | } 22 | 23 | private: 24 | int _count; 25 | int _increment; 26 | }; 27 | 28 | } // namespace DSPatch 29 | -------------------------------------------------------------------------------- /FlowCV_SDK/third-party/dspatch/tests/components/FeedbackProbe.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | namespace DSPatch 4 | { 5 | 6 | class FeedbackProbe : public Component 7 | { 8 | public: 9 | FeedbackProbe() 10 | : _adder_in( 0 ) 11 | , _adder_out( 0 ) 12 | { 13 | SetInputCount_( 1 ); 14 | } 15 | 16 | protected: 17 | virtual void Process_( SignalBus const& inputs, SignalBus& ) override 18 | { 19 | auto in = inputs.GetValue( 0 ); 20 | REQUIRE( in != nullptr ); 21 | 22 | // The Adder component adds a counter input to its previous output 23 | _adder_out = _adder_in + _adder_out; 24 | 25 | REQUIRE( *in == _adder_out ); 26 | 27 | ++_adder_in; 28 | } 29 | 30 | private: 31 | int _adder_in; 32 | int _adder_out; 33 | }; 34 | 35 | } // namespace DSPatch 36 | -------------------------------------------------------------------------------- /FlowCV_SDK/third-party/dspatch/tests/components/FeedbackTester.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | namespace DSPatch 4 | { 5 | 6 | class FeedbackTester : public Component 7 | { 8 | public: 9 | FeedbackTester( int bufferCount ) 10 | : _bufferCount( bufferCount ) 11 | { 12 | SetInputCount_( 10 ); 13 | SetOutputCount_( 1 ); 14 | } 15 | 16 | void SetValidInputs( int count ) 17 | { 18 | _inputs = count; 19 | } 20 | 21 | protected: 22 | virtual void Process_( SignalBus const& inputs, SignalBus& outputs ) override 23 | { 24 | for ( int i = 0; i < _inputs; ++i ) 25 | { 26 | auto in = inputs.GetValue( i ); 27 | if ( _counter >= _bufferCount ) 28 | { 29 | REQUIRE( in != nullptr ); 30 | REQUIRE( *in == _counter - ( _bufferCount - 1 ) ); 31 | } 32 | } 33 | 34 | outputs.SetValue( 0, ++_counter ); 35 | } 36 | 37 | private: 38 | int _bufferCount = 0; 39 | int _inputs = 0; 40 | int _counter = 0; 41 | }; 42 | 43 | } // namespace DSPatch 44 | -------------------------------------------------------------------------------- /FlowCV_SDK/third-party/dspatch/tests/components/Incrementer.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | namespace DSPatch 4 | { 5 | 6 | class Incrementer : public Component 7 | { 8 | public: 9 | Incrementer( int increment = 1 ) 10 | : Component( ProcessOrder::OutOfOrder ) 11 | , _increment( increment ) 12 | { 13 | SetInputCount_( 1 ); 14 | SetOutputCount_( 1 ); 15 | } 16 | 17 | protected: 18 | virtual void Process_( SignalBus const& inputs, SignalBus& outputs ) override 19 | { 20 | auto in = inputs.GetValue( 0 ); 21 | if ( in ) 22 | { 23 | *in += _increment; 24 | outputs.MoveSignal( 0, inputs.GetSignal( 0 ) ); // pass the adjusted signal through (no copy) 25 | } 26 | // else set no output 27 | } 28 | 29 | private: 30 | int _increment; 31 | }; 32 | 33 | } // namespace DSPatch 34 | -------------------------------------------------------------------------------- /FlowCV_SDK/third-party/dspatch/tests/components/NoOutputProbe.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | namespace DSPatch 4 | { 5 | 6 | class NoOutputProbe : public Component 7 | { 8 | public: 9 | NoOutputProbe() 10 | : _count( 0 ) 11 | { 12 | SetInputCount_( 1 ); 13 | } 14 | 15 | protected: 16 | virtual void Process_( SignalBus const& inputs, SignalBus& ) override 17 | { 18 | auto in = inputs.GetValue( 0 ); 19 | 20 | if ( in ) 21 | { 22 | REQUIRE( *in == _count++ ); 23 | } 24 | } 25 | 26 | private: 27 | int _count; 28 | }; 29 | 30 | } // namespace DSPatch 31 | -------------------------------------------------------------------------------- /FlowCV_SDK/third-party/dspatch/tests/components/NullInputProbe.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | namespace DSPatch 4 | { 5 | 6 | class NullInputProbe : public Component 7 | { 8 | public: 9 | NullInputProbe() 10 | { 11 | SetInputCount_( 2 ); 12 | } 13 | 14 | protected: 15 | virtual void Process_( SignalBus const& inputs, SignalBus& ) override 16 | { 17 | auto in0 = inputs.GetValue( 0 ); 18 | REQUIRE( in0 == nullptr ); 19 | 20 | auto in1 = inputs.GetValue( 1 ); 21 | REQUIRE( in1 == nullptr ); 22 | } 23 | }; 24 | 25 | } // namespace DSPatch 26 | -------------------------------------------------------------------------------- /FlowCV_SDK/third-party/dspatch/tests/components/PassThrough.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | namespace DSPatch 4 | { 5 | 6 | class PassThrough : public Component 7 | { 8 | public: 9 | PassThrough() 10 | { 11 | SetInputCount_( 1 ); 12 | SetOutputCount_( 1 ); 13 | } 14 | 15 | protected: 16 | virtual void Process_( SignalBus const& inputs, SignalBus& outputs ) override 17 | { 18 | auto in = inputs.GetValue( 0 ); 19 | if ( in ) 20 | { 21 | outputs.MoveSignal( 0, inputs.GetSignal( 0 ) ); // pass the signal through (no copy) 22 | } 23 | // else set no output 24 | } 25 | }; 26 | 27 | } // namespace DSPatch 28 | -------------------------------------------------------------------------------- /FlowCV_SDK/third-party/dspatch/tests/components/SerialProbe.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | namespace DSPatch 4 | { 5 | 6 | class SerialProbe : public Component 7 | { 8 | public: 9 | SerialProbe() 10 | : _count( 0 ) 11 | { 12 | SetInputCount_( 1 ); 13 | } 14 | 15 | protected: 16 | virtual void Process_( SignalBus const& inputs, SignalBus& ) override 17 | { 18 | auto in = inputs.GetValue( 0 ); 19 | REQUIRE( in != nullptr ); 20 | 21 | REQUIRE( *in == _count + 1 + 2 + 3 + 4 + 5 ); 22 | 23 | ++_count; 24 | } 25 | 26 | private: 27 | int _count; 28 | }; 29 | 30 | } // namespace DSPatch 31 | -------------------------------------------------------------------------------- /FlowCV_SDK/third-party/dspatch/tests/components/SlowCounter.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include 4 | 5 | namespace DSPatch 6 | { 7 | 8 | class SlowCounter : public Component 9 | { 10 | public: 11 | SlowCounter() 12 | : _count( 0 ) 13 | { 14 | SetOutputCount_( 1 ); 15 | } 16 | 17 | void ResetCount() 18 | { 19 | _count = 0; 20 | } 21 | 22 | protected: 23 | virtual void Process_( SignalBus const&, SignalBus& outputs ) override 24 | { 25 | auto start = std::chrono::high_resolution_clock::now(); 26 | 27 | outputs.SetValue( 0, _count++ ); 28 | 29 | std::chrono::duration elapsedMs; 30 | do 31 | { 32 | elapsedMs = std::chrono::high_resolution_clock::now() - start; 33 | } while ( elapsedMs.count() < _waitMs ); 34 | 35 | _waitMs = 1000 - ( elapsedMs.count() - _waitMs ); 36 | } 37 | 38 | private: 39 | int _count; 40 | int _waitMs = 1000; 41 | }; 42 | 43 | } // namespace DSPatch 44 | -------------------------------------------------------------------------------- /FlowCV_SDK/third-party/dspatch/tests/components/SporadicCounter.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | namespace DSPatch 4 | { 5 | 6 | class SporadicCounter : public Component 7 | { 8 | public: 9 | SporadicCounter( int increment = 1 ) 10 | : _count( 0 ) 11 | , _increment( increment ) 12 | { 13 | srand( (unsigned int)time( nullptr ) ); 14 | 15 | SetOutputCount_( 1 ); 16 | } 17 | 18 | protected: 19 | virtual void Process_( SignalBus const&, SignalBus& outputs ) override 20 | { 21 | if ( rand() % 2 == 1 ) 22 | { 23 | outputs.SetValue( 0, _count ); 24 | _count += _increment; 25 | } 26 | } 27 | 28 | private: 29 | int _count; 30 | int _increment; 31 | }; 32 | 33 | } // namespace DSPatch 34 | -------------------------------------------------------------------------------- /FlowCV_SDK/third-party/glm/detail/_fixes.hpp: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | //! Workaround for compatibility with other libraries 4 | #ifdef max 5 | #undef max 6 | #endif 7 | 8 | //! Workaround for compatibility with other libraries 9 | #ifdef min 10 | #undef min 11 | #endif 12 | 13 | //! Workaround for Android 14 | #ifdef isnan 15 | #undef isnan 16 | #endif 17 | 18 | //! Workaround for Android 19 | #ifdef isinf 20 | #undef isinf 21 | #endif 22 | 23 | //! Workaround for Chrone Native Client 24 | #ifdef log2 25 | #undef log2 26 | #endif 27 | 28 | -------------------------------------------------------------------------------- /FlowCV_SDK/third-party/glm/detail/compute_vector_relational.hpp: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | //#include "compute_common.hpp" 4 | #include "setup.hpp" 5 | #include 6 | 7 | namespace glm{ 8 | namespace detail 9 | { 10 | template 11 | struct compute_equal 12 | { 13 | GLM_FUNC_QUALIFIER GLM_CONSTEXPR static bool call(T a, T b) 14 | { 15 | return a == b; 16 | } 17 | }; 18 | /* 19 | template 20 | struct compute_equal 21 | { 22 | GLM_FUNC_QUALIFIER GLM_CONSTEXPR static bool call(T a, T b) 23 | { 24 | return detail::compute_abs::is_signed>::call(b - a) <= static_cast(0); 25 | //return std::memcmp(&a, &b, sizeof(T)) == 0; 26 | } 27 | }; 28 | */ 29 | }//namespace detail 30 | }//namespace glm 31 | -------------------------------------------------------------------------------- /FlowCV_SDK/third-party/glm/detail/func_exponential_simd.inl: -------------------------------------------------------------------------------- 1 | /// @ref core 2 | /// @file glm/detail/func_exponential_simd.inl 3 | 4 | #include "../simd/exponential.h" 5 | 6 | #if GLM_ARCH & GLM_ARCH_SSE2_BIT 7 | 8 | namespace glm{ 9 | namespace detail 10 | { 11 | template 12 | struct compute_sqrt<4, float, Q, true> 13 | { 14 | GLM_FUNC_QUALIFIER static vec<4, float, Q> call(vec<4, float, Q> const& v) 15 | { 16 | vec<4, float, Q> Result; 17 | Result.data = _mm_sqrt_ps(v.data); 18 | return Result; 19 | } 20 | }; 21 | 22 | # if GLM_CONFIG_ALIGNED_GENTYPES == GLM_ENABLE 23 | template<> 24 | struct compute_sqrt<4, float, aligned_lowp, true> 25 | { 26 | GLM_FUNC_QUALIFIER static vec<4, float, aligned_lowp> call(vec<4, float, aligned_lowp> const& v) 27 | { 28 | vec<4, float, aligned_lowp> Result; 29 | Result.data = glm_vec4_sqrt_lowp(v.data); 30 | return Result; 31 | } 32 | }; 33 | # endif 34 | }//namespace detail 35 | }//namespace glm 36 | 37 | #endif//GLM_ARCH & GLM_ARCH_SSE2_BIT 38 | -------------------------------------------------------------------------------- /FlowCV_SDK/third-party/glm/detail/func_packing_simd.inl: -------------------------------------------------------------------------------- 1 | namespace glm{ 2 | namespace detail 3 | { 4 | 5 | }//namespace detail 6 | }//namespace glm 7 | -------------------------------------------------------------------------------- /FlowCV_SDK/third-party/glm/detail/func_trigonometric_simd.inl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FlowCV-org/FlowCV/b09c48edcc9437253da6049365d319fe036eff61/FlowCV_SDK/third-party/glm/detail/func_trigonometric_simd.inl -------------------------------------------------------------------------------- /FlowCV_SDK/third-party/glm/detail/func_vector_relational_simd.inl: -------------------------------------------------------------------------------- 1 | namespace glm{ 2 | namespace detail 3 | { 4 | 5 | }//namespace detail 6 | }//namespace glm 7 | -------------------------------------------------------------------------------- /FlowCV_SDK/third-party/glm/detail/type_half.hpp: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "setup.hpp" 4 | 5 | namespace glm{ 6 | namespace detail 7 | { 8 | typedef short hdata; 9 | 10 | GLM_FUNC_DECL float toFloat32(hdata value); 11 | GLM_FUNC_DECL hdata toFloat16(float const& value); 12 | 13 | }//namespace detail 14 | }//namespace glm 15 | 16 | #include "type_half.inl" 17 | -------------------------------------------------------------------------------- /FlowCV_SDK/third-party/glm/detail/type_mat4x4_simd.inl: -------------------------------------------------------------------------------- 1 | /// @ref core 2 | 3 | namespace glm 4 | { 5 | 6 | }//namespace glm 7 | -------------------------------------------------------------------------------- /FlowCV_SDK/third-party/glm/ext/matrix_common.inl: -------------------------------------------------------------------------------- 1 | #include "../matrix.hpp" 2 | 3 | namespace glm 4 | { 5 | template 6 | GLM_FUNC_QUALIFIER mat mix(mat const& x, mat const& y, U a) 7 | { 8 | return mat(x) * (static_cast(1) - a) + mat(y) * a; 9 | } 10 | 11 | template 12 | GLM_FUNC_QUALIFIER mat mix(mat const& x, mat const& y, mat const& a) 13 | { 14 | return matrixCompMult(mat(x), static_cast(1) - a) + matrixCompMult(mat(y), a); 15 | } 16 | }//namespace glm 17 | -------------------------------------------------------------------------------- /FlowCV_SDK/third-party/glm/ext/matrix_double2x2.hpp: -------------------------------------------------------------------------------- 1 | /// @ref core 2 | /// @file glm/ext/matrix_double2x2.hpp 3 | 4 | #pragma once 5 | #include "../detail/type_mat2x2.hpp" 6 | 7 | namespace glm 8 | { 9 | /// @addtogroup core_matrix 10 | /// @{ 11 | 12 | /// 2 columns of 2 components matrix of double-precision floating-point numbers. 13 | /// 14 | /// @see GLSL 4.20.8 specification, section 4.1.6 Matrices 15 | typedef mat<2, 2, double, defaultp> dmat2x2; 16 | 17 | /// 2 columns of 2 components matrix of double-precision floating-point numbers. 18 | /// 19 | /// @see GLSL 4.20.8 specification, section 4.1.6 Matrices 20 | typedef mat<2, 2, double, defaultp> dmat2; 21 | 22 | /// @} 23 | }//namespace glm 24 | -------------------------------------------------------------------------------- /FlowCV_SDK/third-party/glm/ext/matrix_double2x3.hpp: -------------------------------------------------------------------------------- 1 | /// @ref core 2 | /// @file glm/ext/matrix_double2x3.hpp 3 | 4 | #pragma once 5 | #include "../detail/type_mat2x3.hpp" 6 | 7 | namespace glm 8 | { 9 | /// @addtogroup core_matrix 10 | /// @{ 11 | 12 | /// 2 columns of 3 components matrix of double-precision floating-point numbers. 13 | /// 14 | /// @see GLSL 4.20.8 specification, section 4.1.6 Matrices 15 | typedef mat<2, 3, double, defaultp> dmat2x3; 16 | 17 | /// @} 18 | }//namespace glm 19 | -------------------------------------------------------------------------------- /FlowCV_SDK/third-party/glm/ext/matrix_double2x4.hpp: -------------------------------------------------------------------------------- 1 | /// @ref core 2 | /// @file glm/ext/matrix_double2x4.hpp 3 | 4 | #pragma once 5 | #include "../detail/type_mat2x4.hpp" 6 | 7 | namespace glm 8 | { 9 | /// @addtogroup core_matrix 10 | /// @{ 11 | 12 | /// 2 columns of 4 components matrix of double-precision floating-point numbers. 13 | /// 14 | /// @see GLSL 4.20.8 specification, section 4.1.6 Matrices 15 | typedef mat<2, 4, double, defaultp> dmat2x4; 16 | 17 | /// @} 18 | }//namespace glm 19 | -------------------------------------------------------------------------------- /FlowCV_SDK/third-party/glm/ext/matrix_double3x2.hpp: -------------------------------------------------------------------------------- 1 | /// @ref core 2 | /// @file glm/ext/matrix_double3x2.hpp 3 | 4 | #pragma once 5 | #include "../detail/type_mat3x2.hpp" 6 | 7 | namespace glm 8 | { 9 | /// @addtogroup core_matrix 10 | /// @{ 11 | 12 | /// 3 columns of 2 components matrix of double-precision floating-point numbers. 13 | /// 14 | /// @see GLSL 4.20.8 specification, section 4.1.6 Matrices 15 | typedef mat<3, 2, double, defaultp> dmat3x2; 16 | 17 | /// @} 18 | }//namespace glm 19 | -------------------------------------------------------------------------------- /FlowCV_SDK/third-party/glm/ext/matrix_double3x3.hpp: -------------------------------------------------------------------------------- 1 | /// @ref core 2 | /// @file glm/ext/matrix_double3x3.hpp 3 | 4 | #pragma once 5 | #include "../detail/type_mat3x3.hpp" 6 | 7 | namespace glm 8 | { 9 | /// @addtogroup core_matrix 10 | /// @{ 11 | 12 | /// 3 columns of 3 components matrix of double-precision floating-point numbers. 13 | /// 14 | /// @see GLSL 4.20.8 specification, section 4.1.6 Matrices 15 | typedef mat<3, 3, double, defaultp> dmat3x3; 16 | 17 | /// 3 columns of 3 components matrix of double-precision floating-point numbers. 18 | /// 19 | /// @see GLSL 4.20.8 specification, section 4.1.6 Matrices 20 | typedef mat<3, 3, double, defaultp> dmat3; 21 | 22 | /// @} 23 | }//namespace glm 24 | -------------------------------------------------------------------------------- /FlowCV_SDK/third-party/glm/ext/matrix_double3x4.hpp: -------------------------------------------------------------------------------- 1 | /// @ref core 2 | /// @file glm/ext/matrix_double3x4.hpp 3 | 4 | #pragma once 5 | #include "../detail/type_mat3x4.hpp" 6 | 7 | namespace glm 8 | { 9 | /// @addtogroup core_matrix 10 | /// @{ 11 | 12 | /// 3 columns of 4 components matrix of double-precision floating-point numbers. 13 | /// 14 | /// @see GLSL 4.20.8 specification, section 4.1.6 Matrices 15 | typedef mat<3, 4, double, defaultp> dmat3x4; 16 | 17 | /// @} 18 | }//namespace glm 19 | -------------------------------------------------------------------------------- /FlowCV_SDK/third-party/glm/ext/matrix_double4x2.hpp: -------------------------------------------------------------------------------- 1 | /// @ref core 2 | /// @file glm/ext/matrix_double4x2.hpp 3 | 4 | #pragma once 5 | #include "../detail/type_mat4x2.hpp" 6 | 7 | namespace glm 8 | { 9 | /// @addtogroup core_matrix 10 | /// @{ 11 | 12 | /// 4 columns of 2 components matrix of double-precision floating-point numbers. 13 | /// 14 | /// @see GLSL 4.20.8 specification, section 4.1.6 Matrices 15 | typedef mat<4, 2, double, defaultp> dmat4x2; 16 | 17 | /// @} 18 | }//namespace glm 19 | -------------------------------------------------------------------------------- /FlowCV_SDK/third-party/glm/ext/matrix_double4x3.hpp: -------------------------------------------------------------------------------- 1 | /// @ref core 2 | /// @file glm/ext/matrix_double4x3.hpp 3 | 4 | #pragma once 5 | #include "../detail/type_mat4x3.hpp" 6 | 7 | namespace glm 8 | { 9 | /// @addtogroup core_matrix 10 | /// @{ 11 | 12 | /// 4 columns of 3 components matrix of double-precision floating-point numbers. 13 | /// 14 | /// @see GLSL 4.20.8 specification, section 4.1.6 Matrices 15 | typedef mat<4, 3, double, defaultp> dmat4x3; 16 | 17 | /// @} 18 | }//namespace glm 19 | -------------------------------------------------------------------------------- /FlowCV_SDK/third-party/glm/ext/matrix_double4x4.hpp: -------------------------------------------------------------------------------- 1 | /// @ref core 2 | /// @file glm/ext/matrix_double4x4.hpp 3 | 4 | #pragma once 5 | #include "../detail/type_mat4x4.hpp" 6 | 7 | namespace glm 8 | { 9 | /// @addtogroup core_matrix 10 | /// @{ 11 | 12 | /// 4 columns of 4 components matrix of double-precision floating-point numbers. 13 | /// 14 | /// @see GLSL 4.20.8 specification, section 4.1.6 Matrices 15 | typedef mat<4, 4, double, defaultp> dmat4x4; 16 | 17 | /// 4 columns of 4 components matrix of double-precision floating-point numbers. 18 | /// 19 | /// @see GLSL 4.20.8 specification, section 4.1.6 Matrices 20 | typedef mat<4, 4, double, defaultp> dmat4; 21 | 22 | /// @} 23 | }//namespace glm 24 | -------------------------------------------------------------------------------- /FlowCV_SDK/third-party/glm/ext/matrix_float2x2.hpp: -------------------------------------------------------------------------------- 1 | /// @ref core 2 | /// @file glm/ext/matrix_float2x2.hpp 3 | 4 | #pragma once 5 | #include "../detail/type_mat2x2.hpp" 6 | 7 | namespace glm 8 | { 9 | /// @addtogroup core_matrix 10 | /// @{ 11 | 12 | /// 2 columns of 2 components matrix of single-precision floating-point numbers. 13 | /// 14 | /// @see GLSL 4.20.8 specification, section 4.1.6 Matrices 15 | typedef mat<2, 2, float, defaultp> mat2x2; 16 | 17 | /// 2 columns of 2 components matrix of single-precision floating-point numbers. 18 | /// 19 | /// @see GLSL 4.20.8 specification, section 4.1.6 Matrices 20 | typedef mat<2, 2, float, defaultp> mat2; 21 | 22 | /// @} 23 | }//namespace glm 24 | -------------------------------------------------------------------------------- /FlowCV_SDK/third-party/glm/ext/matrix_float2x3.hpp: -------------------------------------------------------------------------------- 1 | /// @ref core 2 | /// @file glm/ext/matrix_float2x3.hpp 3 | 4 | #pragma once 5 | #include "../detail/type_mat2x3.hpp" 6 | 7 | namespace glm 8 | { 9 | /// @addtogroup core_matrix 10 | /// @{ 11 | 12 | /// 2 columns of 3 components matrix of single-precision floating-point numbers. 13 | /// 14 | /// @see GLSL 4.20.8 specification, section 4.1.6 Matrices 15 | typedef mat<2, 3, float, defaultp> mat2x3; 16 | 17 | /// @} 18 | }//namespace glm 19 | -------------------------------------------------------------------------------- /FlowCV_SDK/third-party/glm/ext/matrix_float2x4.hpp: -------------------------------------------------------------------------------- 1 | /// @ref core 2 | /// @file glm/ext/matrix_float2x4.hpp 3 | 4 | #pragma once 5 | #include "../detail/type_mat2x4.hpp" 6 | 7 | namespace glm 8 | { 9 | /// @addtogroup core_matrix 10 | /// @{ 11 | 12 | /// 2 columns of 4 components matrix of single-precision floating-point numbers. 13 | /// 14 | /// @see GLSL 4.20.8 specification, section 4.1.6 Matrices 15 | typedef mat<2, 4, float, defaultp> mat2x4; 16 | 17 | /// @} 18 | }//namespace glm 19 | -------------------------------------------------------------------------------- /FlowCV_SDK/third-party/glm/ext/matrix_float3x2.hpp: -------------------------------------------------------------------------------- 1 | /// @ref core 2 | /// @file glm/ext/matrix_float3x2.hpp 3 | 4 | #pragma once 5 | #include "../detail/type_mat3x2.hpp" 6 | 7 | namespace glm 8 | { 9 | /// @addtogroup core 10 | /// @{ 11 | 12 | /// 3 columns of 2 components matrix of single-precision floating-point numbers. 13 | /// 14 | /// @see GLSL 4.20.8 specification, section 4.1.6 Matrices 15 | typedef mat<3, 2, float, defaultp> mat3x2; 16 | 17 | /// @} 18 | }//namespace glm 19 | -------------------------------------------------------------------------------- /FlowCV_SDK/third-party/glm/ext/matrix_float3x3.hpp: -------------------------------------------------------------------------------- 1 | /// @ref core 2 | /// @file glm/ext/matrix_float3x3.hpp 3 | 4 | #pragma once 5 | #include "../detail/type_mat3x3.hpp" 6 | 7 | namespace glm 8 | { 9 | /// @addtogroup core_matrix 10 | /// @{ 11 | 12 | /// 3 columns of 3 components matrix of single-precision floating-point numbers. 13 | /// 14 | /// @see GLSL 4.20.8 specification, section 4.1.6 Matrices 15 | typedef mat<3, 3, float, defaultp> mat3x3; 16 | 17 | /// 3 columns of 3 components matrix of single-precision floating-point numbers. 18 | /// 19 | /// @see GLSL 4.20.8 specification, section 4.1.6 Matrices 20 | typedef mat<3, 3, float, defaultp> mat3; 21 | 22 | /// @} 23 | }//namespace glm 24 | -------------------------------------------------------------------------------- /FlowCV_SDK/third-party/glm/ext/matrix_float3x4.hpp: -------------------------------------------------------------------------------- 1 | /// @ref core 2 | /// @file glm/ext/matrix_float3x4.hpp 3 | 4 | #pragma once 5 | #include "../detail/type_mat3x4.hpp" 6 | 7 | namespace glm 8 | { 9 | /// @addtogroup core_matrix 10 | /// @{ 11 | 12 | /// 3 columns of 4 components matrix of single-precision floating-point numbers. 13 | /// 14 | /// @see GLSL 4.20.8 specification, section 4.1.6 Matrices 15 | typedef mat<3, 4, float, defaultp> mat3x4; 16 | 17 | /// @} 18 | }//namespace glm 19 | -------------------------------------------------------------------------------- /FlowCV_SDK/third-party/glm/ext/matrix_float4x2.hpp: -------------------------------------------------------------------------------- 1 | /// @ref core 2 | /// @file glm/ext/matrix_float4x2.hpp 3 | 4 | #pragma once 5 | #include "../detail/type_mat4x2.hpp" 6 | 7 | namespace glm 8 | { 9 | /// @addtogroup core_matrix 10 | /// @{ 11 | 12 | /// 4 columns of 2 components matrix of single-precision floating-point numbers. 13 | /// 14 | /// @see GLSL 4.20.8 specification, section 4.1.6 Matrices 15 | typedef mat<4, 2, float, defaultp> mat4x2; 16 | 17 | /// @} 18 | }//namespace glm 19 | -------------------------------------------------------------------------------- /FlowCV_SDK/third-party/glm/ext/matrix_float4x3.hpp: -------------------------------------------------------------------------------- 1 | /// @ref core 2 | /// @file glm/ext/matrix_float4x3.hpp 3 | 4 | #pragma once 5 | #include "../detail/type_mat4x3.hpp" 6 | 7 | namespace glm 8 | { 9 | /// @addtogroup core_matrix 10 | /// @{ 11 | 12 | /// 4 columns of 3 components matrix of single-precision floating-point numbers. 13 | /// 14 | /// @see GLSL 4.20.8 specification, section 4.1.6 Matrices 15 | typedef mat<4, 3, float, defaultp> mat4x3; 16 | 17 | /// @} 18 | }//namespace glm 19 | -------------------------------------------------------------------------------- /FlowCV_SDK/third-party/glm/ext/matrix_float4x4.hpp: -------------------------------------------------------------------------------- 1 | /// @ref core 2 | /// @file glm/ext/matrix_float4x4.hpp 3 | 4 | #pragma once 5 | #include "../detail/type_mat4x4.hpp" 6 | 7 | namespace glm 8 | { 9 | /// @ingroup core_matrix 10 | /// @{ 11 | 12 | /// 4 columns of 4 components matrix of single-precision floating-point numbers. 13 | /// 14 | /// @see GLSL 4.20.8 specification, section 4.1.6 Matrices 15 | typedef mat<4, 4, float, defaultp> mat4x4; 16 | 17 | /// 4 columns of 4 components matrix of single-precision floating-point numbers. 18 | /// 19 | /// @see GLSL 4.20.8 specification, section 4.1.6 Matrices 20 | typedef mat<4, 4, float, defaultp> mat4; 21 | 22 | /// @} 23 | }//namespace glm 24 | -------------------------------------------------------------------------------- /FlowCV_SDK/third-party/glm/ext/quaternion_common_simd.inl: -------------------------------------------------------------------------------- 1 | #if GLM_ARCH & GLM_ARCH_SSE2_BIT 2 | 3 | namespace glm{ 4 | namespace detail 5 | { 6 | template 7 | struct compute_dot, float, true> 8 | { 9 | static GLM_FUNC_QUALIFIER float call(qua const& x, qua const& y) 10 | { 11 | return _mm_cvtss_f32(glm_vec1_dot(x.data, y.data)); 12 | } 13 | }; 14 | }//namespace detail 15 | }//namespace glm 16 | 17 | #endif//GLM_ARCH & GLM_ARCH_SSE2_BIT 18 | 19 | -------------------------------------------------------------------------------- /FlowCV_SDK/third-party/glm/ext/quaternion_transform.inl: -------------------------------------------------------------------------------- 1 | namespace glm 2 | { 3 | template 4 | GLM_FUNC_QUALIFIER qua rotate(qua const& q, T const& angle, vec<3, T, Q> const& v) 5 | { 6 | vec<3, T, Q> Tmp = v; 7 | 8 | // Axis of rotation must be normalised 9 | T len = glm::length(Tmp); 10 | if(abs(len - static_cast(1)) > static_cast(0.001)) 11 | { 12 | T oneOverLen = static_cast(1) / len; 13 | Tmp.x *= oneOverLen; 14 | Tmp.y *= oneOverLen; 15 | Tmp.z *= oneOverLen; 16 | } 17 | 18 | T const AngleRad(angle); 19 | T const Sin = sin(AngleRad * static_cast(0.5)); 20 | 21 | return q * qua(cos(AngleRad * static_cast(0.5)), Tmp.x * Sin, Tmp.y * Sin, Tmp.z * Sin); 22 | } 23 | }//namespace glm 24 | 25 | -------------------------------------------------------------------------------- /FlowCV_SDK/third-party/glm/ext/quaternion_trigonometric.inl: -------------------------------------------------------------------------------- 1 | #include "scalar_constants.hpp" 2 | 3 | namespace glm 4 | { 5 | template 6 | GLM_FUNC_QUALIFIER T angle(qua const& x) 7 | { 8 | if (abs(x.w) > cos_one_over_two()) 9 | { 10 | return asin(sqrt(x.x * x.x + x.y * x.y + x.z * x.z)) * static_cast(2); 11 | } 12 | 13 | return acos(x.w) * static_cast(2); 14 | } 15 | 16 | template 17 | GLM_FUNC_QUALIFIER vec<3, T, Q> axis(qua const& x) 18 | { 19 | T const tmp1 = static_cast(1) - x.w * x.w; 20 | if(tmp1 <= static_cast(0)) 21 | return vec<3, T, Q>(0, 0, 1); 22 | T const tmp2 = static_cast(1) / sqrt(tmp1); 23 | return vec<3, T, Q>(x.x * tmp2, x.y * tmp2, x.z * tmp2); 24 | } 25 | 26 | template 27 | GLM_FUNC_QUALIFIER qua angleAxis(T const& angle, vec<3, T, Q> const& v) 28 | { 29 | T const a(angle); 30 | T const s = glm::sin(a * static_cast(0.5)); 31 | 32 | return qua(glm::cos(a * static_cast(0.5)), v * s); 33 | } 34 | }//namespace glm 35 | -------------------------------------------------------------------------------- /FlowCV_SDK/third-party/glm/ext/scalar_constants.inl: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | namespace glm 4 | { 5 | template 6 | GLM_FUNC_QUALIFIER GLM_CONSTEXPR genType epsilon() 7 | { 8 | GLM_STATIC_ASSERT(std::numeric_limits::is_iec559, "'epsilon' only accepts floating-point inputs"); 9 | return std::numeric_limits::epsilon(); 10 | } 11 | 12 | template 13 | GLM_FUNC_QUALIFIER GLM_CONSTEXPR genType pi() 14 | { 15 | GLM_STATIC_ASSERT(std::numeric_limits::is_iec559, "'pi' only accepts floating-point inputs"); 16 | return static_cast(3.14159265358979323846264338327950288); 17 | } 18 | 19 | template 20 | GLM_FUNC_QUALIFIER GLM_CONSTEXPR genType cos_one_over_two() 21 | { 22 | return genType(0.877582561890372716130286068203503191); 23 | } 24 | } //namespace glm 25 | -------------------------------------------------------------------------------- /FlowCV_SDK/third-party/glm/ext/vector_bool1.hpp: -------------------------------------------------------------------------------- 1 | /// @ref ext_vector_bool1 2 | /// @file glm/ext/vector_bool1.hpp 3 | /// 4 | /// @defgroup ext_vector_bool1 GLM_EXT_vector_bool1 5 | /// @ingroup ext 6 | /// 7 | /// Exposes bvec1 vector type. 8 | /// 9 | /// Include to use the features of this extension. 10 | /// 11 | /// @see ext_vector_bool1_precision extension. 12 | 13 | #pragma once 14 | 15 | #include "../detail/type_vec1.hpp" 16 | 17 | #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED) 18 | # pragma message("GLM: GLM_EXT_vector_bool1 extension included") 19 | #endif 20 | 21 | namespace glm 22 | { 23 | /// @addtogroup ext_vector_bool1 24 | /// @{ 25 | 26 | /// 1 components vector of boolean. 27 | typedef vec<1, bool, defaultp> bvec1; 28 | 29 | /// @} 30 | }//namespace glm 31 | -------------------------------------------------------------------------------- /FlowCV_SDK/third-party/glm/ext/vector_bool1_precision.hpp: -------------------------------------------------------------------------------- 1 | /// @ref ext_vector_bool1_precision 2 | /// @file glm/ext/vector_bool1_precision.hpp 3 | /// 4 | /// @defgroup ext_vector_bool1_precision GLM_EXT_vector_bool1_precision 5 | /// @ingroup ext 6 | /// 7 | /// Exposes highp_bvec1, mediump_bvec1 and lowp_bvec1 types. 8 | /// 9 | /// Include to use the features of this extension. 10 | 11 | #pragma once 12 | 13 | #include "../detail/type_vec1.hpp" 14 | 15 | #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED) 16 | # pragma message("GLM: GLM_EXT_vector_bool1_precision extension included") 17 | #endif 18 | 19 | namespace glm 20 | { 21 | /// @addtogroup ext_vector_bool1_precision 22 | /// @{ 23 | 24 | /// 1 component vector of bool values. 25 | typedef vec<1, bool, highp> highp_bvec1; 26 | 27 | /// 1 component vector of bool values. 28 | typedef vec<1, bool, mediump> mediump_bvec1; 29 | 30 | /// 1 component vector of bool values. 31 | typedef vec<1, bool, lowp> lowp_bvec1; 32 | 33 | /// @} 34 | }//namespace glm 35 | -------------------------------------------------------------------------------- /FlowCV_SDK/third-party/glm/ext/vector_bool2.hpp: -------------------------------------------------------------------------------- 1 | /// @ref core 2 | /// @file glm/ext/vector_bool2.hpp 3 | 4 | #pragma once 5 | #include "../detail/type_vec2.hpp" 6 | 7 | namespace glm 8 | { 9 | /// @addtogroup core_vector 10 | /// @{ 11 | 12 | /// 2 components vector of boolean. 13 | /// 14 | /// @see GLSL 4.20.8 specification, section 4.1.5 Vectors 15 | typedef vec<2, bool, defaultp> bvec2; 16 | 17 | /// @} 18 | }//namespace glm 19 | -------------------------------------------------------------------------------- /FlowCV_SDK/third-party/glm/ext/vector_bool3.hpp: -------------------------------------------------------------------------------- 1 | /// @ref core 2 | /// @file glm/ext/vector_bool3.hpp 3 | 4 | #pragma once 5 | #include "../detail/type_vec3.hpp" 6 | 7 | namespace glm 8 | { 9 | /// @addtogroup core_vector 10 | /// @{ 11 | 12 | /// 3 components vector of boolean. 13 | /// 14 | /// @see GLSL 4.20.8 specification, section 4.1.5 Vectors 15 | typedef vec<3, bool, defaultp> bvec3; 16 | 17 | /// @} 18 | }//namespace glm 19 | -------------------------------------------------------------------------------- /FlowCV_SDK/third-party/glm/ext/vector_bool4.hpp: -------------------------------------------------------------------------------- 1 | /// @ref core 2 | /// @file glm/ext/vector_bool4.hpp 3 | 4 | #pragma once 5 | #include "../detail/type_vec4.hpp" 6 | 7 | namespace glm 8 | { 9 | /// @addtogroup core_vector 10 | /// @{ 11 | 12 | /// 4 components vector of boolean. 13 | /// 14 | /// @see GLSL 4.20.8 specification, section 4.1.5 Vectors 15 | typedef vec<4, bool, defaultp> bvec4; 16 | 17 | /// @} 18 | }//namespace glm 19 | -------------------------------------------------------------------------------- /FlowCV_SDK/third-party/glm/ext/vector_double1.hpp: -------------------------------------------------------------------------------- 1 | /// @ref ext_vector_double1 2 | /// @file glm/ext/vector_double1.hpp 3 | /// 4 | /// @defgroup ext_vector_double1 GLM_EXT_vector_double1 5 | /// @ingroup ext 6 | /// 7 | /// Exposes double-precision floating point vector type with one component. 8 | /// 9 | /// Include to use the features of this extension. 10 | /// 11 | /// @see ext_vector_double1_precision extension. 12 | /// @see ext_vector_float1 extension. 13 | 14 | #pragma once 15 | 16 | #include "../detail/type_vec1.hpp" 17 | 18 | #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED) 19 | # pragma message("GLM: GLM_EXT_vector_double1 extension included") 20 | #endif 21 | 22 | namespace glm 23 | { 24 | /// @addtogroup ext_vector_double1 25 | /// @{ 26 | 27 | /// 1 components vector of double-precision floating-point numbers. 28 | typedef vec<1, double, defaultp> dvec1; 29 | 30 | /// @} 31 | }//namespace glm 32 | -------------------------------------------------------------------------------- /FlowCV_SDK/third-party/glm/ext/vector_double2.hpp: -------------------------------------------------------------------------------- 1 | /// @ref core 2 | /// @file glm/ext/vector_double2.hpp 3 | 4 | #pragma once 5 | #include "../detail/type_vec2.hpp" 6 | 7 | namespace glm 8 | { 9 | /// @addtogroup core_vector 10 | /// @{ 11 | 12 | /// 2 components vector of double-precision floating-point numbers. 13 | /// 14 | /// @see GLSL 4.20.8 specification, section 4.1.5 Vectors 15 | typedef vec<2, double, defaultp> dvec2; 16 | 17 | /// @} 18 | }//namespace glm 19 | -------------------------------------------------------------------------------- /FlowCV_SDK/third-party/glm/ext/vector_double3.hpp: -------------------------------------------------------------------------------- 1 | /// @ref core 2 | /// @file glm/ext/vector_double3.hpp 3 | 4 | #pragma once 5 | #include "../detail/type_vec3.hpp" 6 | 7 | namespace glm 8 | { 9 | /// @addtogroup core_vector 10 | /// @{ 11 | 12 | /// 3 components vector of double-precision floating-point numbers. 13 | /// 14 | /// @see GLSL 4.20.8 specification, section 4.1.5 Vectors 15 | typedef vec<3, double, defaultp> dvec3; 16 | 17 | /// @} 18 | }//namespace glm 19 | -------------------------------------------------------------------------------- /FlowCV_SDK/third-party/glm/ext/vector_double4.hpp: -------------------------------------------------------------------------------- 1 | /// @ref core 2 | /// @file glm/ext/vector_double4.hpp 3 | 4 | #pragma once 5 | #include "../detail/type_vec4.hpp" 6 | 7 | namespace glm 8 | { 9 | /// @addtogroup core_vector 10 | /// @{ 11 | 12 | /// 4 components vector of double-precision floating-point numbers. 13 | /// 14 | /// @see GLSL 4.20.8 specification, section 4.1.5 Vectors 15 | typedef vec<4, double, defaultp> dvec4; 16 | 17 | /// @} 18 | }//namespace glm 19 | -------------------------------------------------------------------------------- /FlowCV_SDK/third-party/glm/ext/vector_float1.hpp: -------------------------------------------------------------------------------- 1 | /// @ref ext_vector_float1 2 | /// @file glm/ext/vector_float1.hpp 3 | /// 4 | /// @defgroup ext_vector_float1 GLM_EXT_vector_float1 5 | /// @ingroup ext 6 | /// 7 | /// Exposes single-precision floating point vector type with one component. 8 | /// 9 | /// Include to use the features of this extension. 10 | /// 11 | /// @see ext_vector_float1_precision extension. 12 | /// @see ext_vector_double1 extension. 13 | 14 | #pragma once 15 | 16 | #include "../detail/type_vec1.hpp" 17 | 18 | #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED) 19 | # pragma message("GLM: GLM_EXT_vector_float1 extension included") 20 | #endif 21 | 22 | namespace glm 23 | { 24 | /// @addtogroup ext_vector_float1 25 | /// @{ 26 | 27 | /// 1 components vector of single-precision floating-point numbers. 28 | typedef vec<1, float, defaultp> vec1; 29 | 30 | /// @} 31 | }//namespace glm 32 | -------------------------------------------------------------------------------- /FlowCV_SDK/third-party/glm/ext/vector_float2.hpp: -------------------------------------------------------------------------------- 1 | /// @ref core 2 | /// @file glm/ext/vector_float2.hpp 3 | 4 | #pragma once 5 | #include "../detail/type_vec2.hpp" 6 | 7 | namespace glm 8 | { 9 | /// @addtogroup core_vector 10 | /// @{ 11 | 12 | /// 2 components vector of single-precision floating-point numbers. 13 | /// 14 | /// @see GLSL 4.20.8 specification, section 4.1.5 Vectors 15 | typedef vec<2, float, defaultp> vec2; 16 | 17 | /// @} 18 | }//namespace glm 19 | -------------------------------------------------------------------------------- /FlowCV_SDK/third-party/glm/ext/vector_float3.hpp: -------------------------------------------------------------------------------- 1 | /// @ref core 2 | /// @file glm/ext/vector_float3.hpp 3 | 4 | #pragma once 5 | #include "../detail/type_vec3.hpp" 6 | 7 | namespace glm 8 | { 9 | /// @addtogroup core_vector 10 | /// @{ 11 | 12 | /// 3 components vector of single-precision floating-point numbers. 13 | /// 14 | /// @see GLSL 4.20.8 specification, section 4.1.5 Vectors 15 | typedef vec<3, float, defaultp> vec3; 16 | 17 | /// @} 18 | }//namespace glm 19 | -------------------------------------------------------------------------------- /FlowCV_SDK/third-party/glm/ext/vector_float4.hpp: -------------------------------------------------------------------------------- 1 | /// @ref core 2 | /// @file glm/ext/vector_float4.hpp 3 | 4 | #pragma once 5 | #include "../detail/type_vec4.hpp" 6 | 7 | namespace glm 8 | { 9 | /// @addtogroup core_vector 10 | /// @{ 11 | 12 | /// 4 components vector of single-precision floating-point numbers. 13 | /// 14 | /// @see GLSL 4.20.8 specification, section 4.1.5 Vectors 15 | typedef vec<4, float, defaultp> vec4; 16 | 17 | /// @} 18 | }//namespace glm 19 | -------------------------------------------------------------------------------- /FlowCV_SDK/third-party/glm/ext/vector_int1.hpp: -------------------------------------------------------------------------------- 1 | /// @ref ext_vector_int1 2 | /// @file glm/ext/vector_int1.hpp 3 | /// 4 | /// @defgroup ext_vector_int1 GLM_EXT_vector_int1 5 | /// @ingroup ext 6 | /// 7 | /// Exposes ivec1 vector type. 8 | /// 9 | /// Include to use the features of this extension. 10 | /// 11 | /// @see ext_vector_uint1 extension. 12 | /// @see ext_vector_int1_precision extension. 13 | 14 | #pragma once 15 | 16 | #include "../detail/type_vec1.hpp" 17 | 18 | #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED) 19 | # pragma message("GLM: GLM_EXT_vector_int1 extension included") 20 | #endif 21 | 22 | namespace glm 23 | { 24 | /// @addtogroup ext_vector_int1 25 | /// @{ 26 | 27 | /// 1 component vector of signed integer numbers. 28 | typedef vec<1, int, defaultp> ivec1; 29 | 30 | /// @} 31 | }//namespace glm 32 | 33 | -------------------------------------------------------------------------------- /FlowCV_SDK/third-party/glm/ext/vector_int1_precision.hpp: -------------------------------------------------------------------------------- 1 | /// @ref ext_vector_int1_precision 2 | /// @file glm/ext/vector_int1_precision.hpp 3 | /// 4 | /// @defgroup ext_vector_int1_precision GLM_EXT_vector_int1_precision 5 | /// @ingroup ext 6 | /// 7 | /// Exposes highp_ivec1, mediump_ivec1 and lowp_ivec1 types. 8 | /// 9 | /// Include to use the features of this extension. 10 | 11 | #pragma once 12 | 13 | #include "../detail/type_vec1.hpp" 14 | 15 | #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED) 16 | # pragma message("GLM: GLM_EXT_vector_int1_precision extension included") 17 | #endif 18 | 19 | namespace glm 20 | { 21 | /// @addtogroup ext_vector_int1_precision 22 | /// @{ 23 | 24 | /// 1 component vector of signed integer values. 25 | typedef vec<1, int, highp> highp_ivec1; 26 | 27 | /// 1 component vector of signed integer values. 28 | typedef vec<1, int, mediump> mediump_ivec1; 29 | 30 | /// 1 component vector of signed integer values. 31 | typedef vec<1, int, lowp> lowp_ivec1; 32 | 33 | /// @} 34 | }//namespace glm 35 | -------------------------------------------------------------------------------- /FlowCV_SDK/third-party/glm/ext/vector_int2.hpp: -------------------------------------------------------------------------------- 1 | /// @ref core 2 | /// @file glm/ext/vector_int2.hpp 3 | 4 | #pragma once 5 | #include "../detail/type_vec2.hpp" 6 | 7 | namespace glm 8 | { 9 | /// @addtogroup core_vector 10 | /// @{ 11 | 12 | /// 2 components vector of signed integer numbers. 13 | /// 14 | /// @see GLSL 4.20.8 specification, section 4.1.5 Vectors 15 | typedef vec<2, int, defaultp> ivec2; 16 | 17 | /// @} 18 | }//namespace glm 19 | -------------------------------------------------------------------------------- /FlowCV_SDK/third-party/glm/ext/vector_int3.hpp: -------------------------------------------------------------------------------- 1 | /// @ref core 2 | /// @file glm/ext/vector_int3.hpp 3 | 4 | #pragma once 5 | #include "../detail/type_vec3.hpp" 6 | 7 | namespace glm 8 | { 9 | /// @addtogroup core_vector 10 | /// @{ 11 | 12 | /// 3 components vector of signed integer numbers. 13 | /// 14 | /// @see GLSL 4.20.8 specification, section 4.1.5 Vectors 15 | typedef vec<3, int, defaultp> ivec3; 16 | 17 | /// @} 18 | }//namespace glm 19 | -------------------------------------------------------------------------------- /FlowCV_SDK/third-party/glm/ext/vector_int4.hpp: -------------------------------------------------------------------------------- 1 | /// @ref core 2 | /// @file glm/ext/vector_int4.hpp 3 | 4 | #pragma once 5 | #include "../detail/type_vec4.hpp" 6 | 7 | namespace glm 8 | { 9 | /// @addtogroup core_vector 10 | /// @{ 11 | 12 | /// 4 components vector of signed integer numbers. 13 | /// 14 | /// @see GLSL 4.20.8 specification, section 4.1.5 Vectors 15 | typedef vec<4, int, defaultp> ivec4; 16 | 17 | /// @} 18 | }//namespace glm 19 | -------------------------------------------------------------------------------- /FlowCV_SDK/third-party/glm/ext/vector_uint1.hpp: -------------------------------------------------------------------------------- 1 | /// @ref ext_vector_uint1 2 | /// @file glm/ext/vector_uint1.hpp 3 | /// 4 | /// @defgroup ext_vector_uint1 GLM_EXT_vector_uint1 5 | /// @ingroup ext 6 | /// 7 | /// Exposes uvec1 vector type. 8 | /// 9 | /// Include to use the features of this extension. 10 | /// 11 | /// @see ext_vector_int1 extension. 12 | /// @see ext_vector_uint1_precision extension. 13 | 14 | #pragma once 15 | 16 | #include "../detail/type_vec1.hpp" 17 | 18 | #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED) 19 | # pragma message("GLM: GLM_EXT_vector_uint1 extension included") 20 | #endif 21 | 22 | namespace glm 23 | { 24 | /// @addtogroup ext_vector_uint1 25 | /// @{ 26 | 27 | /// 1 component vector of unsigned integer numbers. 28 | typedef vec<1, unsigned int, defaultp> uvec1; 29 | 30 | /// @} 31 | }//namespace glm 32 | 33 | -------------------------------------------------------------------------------- /FlowCV_SDK/third-party/glm/ext/vector_uint2.hpp: -------------------------------------------------------------------------------- 1 | /// @ref core 2 | /// @file glm/ext/vector_uint2.hpp 3 | 4 | #pragma once 5 | #include "../detail/type_vec2.hpp" 6 | 7 | namespace glm 8 | { 9 | /// @addtogroup core_vector 10 | /// @{ 11 | 12 | /// 2 components vector of unsigned integer numbers. 13 | /// 14 | /// @see GLSL 4.20.8 specification, section 4.1.5 Vectors 15 | typedef vec<2, unsigned int, defaultp> uvec2; 16 | 17 | /// @} 18 | }//namespace glm 19 | -------------------------------------------------------------------------------- /FlowCV_SDK/third-party/glm/ext/vector_uint3.hpp: -------------------------------------------------------------------------------- 1 | /// @ref core 2 | /// @file glm/ext/vector_uint3.hpp 3 | 4 | #pragma once 5 | #include "../detail/type_vec3.hpp" 6 | 7 | namespace glm 8 | { 9 | /// @addtogroup core_vector 10 | /// @{ 11 | 12 | /// 3 components vector of unsigned integer numbers. 13 | /// 14 | /// @see GLSL 4.20.8 specification, section 4.1.5 Vectors 15 | typedef vec<3, unsigned int, defaultp> uvec3; 16 | 17 | /// @} 18 | }//namespace glm 19 | -------------------------------------------------------------------------------- /FlowCV_SDK/third-party/glm/ext/vector_uint4.hpp: -------------------------------------------------------------------------------- 1 | /// @ref core 2 | /// @file glm/ext/vector_uint4.hpp 3 | 4 | #pragma once 5 | #include "../detail/type_vec4.hpp" 6 | 7 | namespace glm 8 | { 9 | /// @addtogroup core_vector 10 | /// @{ 11 | 12 | /// 4 components vector of unsigned integer numbers. 13 | /// 14 | /// @see GLSL 4.20.8 specification, section 4.1.5 Vectors 15 | typedef vec<4, unsigned int, defaultp> uvec4; 16 | 17 | /// @} 18 | }//namespace glm 19 | -------------------------------------------------------------------------------- /FlowCV_SDK/third-party/glm/gtc/matrix_transform.inl: -------------------------------------------------------------------------------- 1 | #include "../geometric.hpp" 2 | #include "../trigonometric.hpp" 3 | #include "../matrix.hpp" 4 | -------------------------------------------------------------------------------- /FlowCV_SDK/third-party/glm/gtc/quaternion_simd.inl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FlowCV-org/FlowCV/b09c48edcc9437253da6049365d319fe036eff61/FlowCV_SDK/third-party/glm/gtc/quaternion_simd.inl -------------------------------------------------------------------------------- /FlowCV_SDK/third-party/glm/gtc/type_precision.inl: -------------------------------------------------------------------------------- 1 | /// @ref gtc_precision 2 | 3 | namespace glm 4 | { 5 | 6 | } 7 | -------------------------------------------------------------------------------- /FlowCV_SDK/third-party/glm/gtc/vec1.hpp: -------------------------------------------------------------------------------- 1 | /// @ref gtc_vec1 2 | /// @file glm/gtc/vec1.hpp 3 | /// 4 | /// @see core (dependence) 5 | /// 6 | /// @defgroup gtc_vec1 GLM_GTC_vec1 7 | /// @ingroup gtc 8 | /// 9 | /// Include to use the features of this extension. 10 | /// 11 | /// Add vec1, ivec1, uvec1 and bvec1 types. 12 | 13 | #pragma once 14 | 15 | // Dependency: 16 | #include "../ext/vector_bool1.hpp" 17 | #include "../ext/vector_bool1_precision.hpp" 18 | #include "../ext/vector_float1.hpp" 19 | #include "../ext/vector_float1_precision.hpp" 20 | #include "../ext/vector_double1.hpp" 21 | #include "../ext/vector_double1_precision.hpp" 22 | #include "../ext/vector_int1.hpp" 23 | #include "../ext/vector_int1_precision.hpp" 24 | #include "../ext/vector_uint1.hpp" 25 | #include "../ext/vector_uint1_precision.hpp" 26 | 27 | #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED) 28 | # pragma message("GLM: GLM_GTC_vec1 extension included") 29 | #endif 30 | 31 | -------------------------------------------------------------------------------- /FlowCV_SDK/third-party/glm/gtx/extend.inl: -------------------------------------------------------------------------------- 1 | /// @ref gtx_extend 2 | 3 | namespace glm 4 | { 5 | template 6 | GLM_FUNC_QUALIFIER genType extend 7 | ( 8 | genType const& Origin, 9 | genType const& Source, 10 | genType const& Distance 11 | ) 12 | { 13 | return Origin + (Source - Origin) * Distance; 14 | } 15 | 16 | template 17 | GLM_FUNC_QUALIFIER vec<2, T, Q> extend 18 | ( 19 | vec<2, T, Q> const& Origin, 20 | vec<2, T, Q> const& Source, 21 | T const& Distance 22 | ) 23 | { 24 | return Origin + (Source - Origin) * Distance; 25 | } 26 | 27 | template 28 | GLM_FUNC_QUALIFIER vec<3, T, Q> extend 29 | ( 30 | vec<3, T, Q> const& Origin, 31 | vec<3, T, Q> const& Source, 32 | T const& Distance 33 | ) 34 | { 35 | return Origin + (Source - Origin) * Distance; 36 | } 37 | 38 | template 39 | GLM_FUNC_QUALIFIER vec<4, T, Q> extend 40 | ( 41 | vec<4, T, Q> const& Origin, 42 | vec<4, T, Q> const& Source, 43 | T const& Distance 44 | ) 45 | { 46 | return Origin + (Source - Origin) * Distance; 47 | } 48 | }//namespace glm 49 | -------------------------------------------------------------------------------- /FlowCV_SDK/third-party/glm/gtx/exterior_product.inl: -------------------------------------------------------------------------------- 1 | /// @ref gtx_exterior_product 2 | 3 | #include 4 | 5 | namespace glm { 6 | namespace detail 7 | { 8 | template 9 | struct compute_cross_vec2 10 | { 11 | GLM_FUNC_QUALIFIER static T call(vec<2, T, Q> const& v, vec<2, T, Q> const& u) 12 | { 13 | GLM_STATIC_ASSERT(std::numeric_limits::is_iec559, "'cross' accepts only floating-point inputs"); 14 | 15 | return v.x * u.y - u.x * v.y; 16 | } 17 | }; 18 | }//namespace detail 19 | 20 | template 21 | GLM_FUNC_QUALIFIER T cross(vec<2, T, Q> const& x, vec<2, T, Q> const& y) 22 | { 23 | return detail::compute_cross_vec2::value>::call(x, y); 24 | } 25 | }//namespace glm 26 | 27 | -------------------------------------------------------------------------------- /FlowCV_SDK/third-party/glm/gtx/float_notmalize.inl: -------------------------------------------------------------------------------- 1 | /// @ref gtx_float_normalize 2 | 3 | #include 4 | 5 | namespace glm 6 | { 7 | template 8 | GLM_FUNC_QUALIFIER vec floatNormalize(vec const& v) 9 | { 10 | return vec(v) / static_cast(std::numeric_limits::max()); 11 | } 12 | 13 | }//namespace glm 14 | -------------------------------------------------------------------------------- /FlowCV_SDK/third-party/glm/gtx/functions.inl: -------------------------------------------------------------------------------- 1 | /// @ref gtx_functions 2 | 3 | #include "../exponential.hpp" 4 | 5 | namespace glm 6 | { 7 | template 8 | GLM_FUNC_QUALIFIER T gauss 9 | ( 10 | T x, 11 | T ExpectedValue, 12 | T StandardDeviation 13 | ) 14 | { 15 | return exp(-((x - ExpectedValue) * (x - ExpectedValue)) / (static_cast(2) * StandardDeviation * StandardDeviation)) / (StandardDeviation * sqrt(static_cast(6.28318530717958647692528676655900576))); 16 | } 17 | 18 | template 19 | GLM_FUNC_QUALIFIER T gauss 20 | ( 21 | vec<2, T, Q> const& Coord, 22 | vec<2, T, Q> const& ExpectedValue, 23 | vec<2, T, Q> const& StandardDeviation 24 | ) 25 | { 26 | vec<2, T, Q> const Squared = ((Coord - ExpectedValue) * (Coord - ExpectedValue)) / (static_cast(2) * StandardDeviation * StandardDeviation); 27 | return exp(-(Squared.x + Squared.y)); 28 | } 29 | }//namespace glm 30 | 31 | -------------------------------------------------------------------------------- /FlowCV_SDK/third-party/glm/gtx/gradient_paint.inl: -------------------------------------------------------------------------------- 1 | /// @ref gtx_gradient_paint 2 | 3 | namespace glm 4 | { 5 | template 6 | GLM_FUNC_QUALIFIER T radialGradient 7 | ( 8 | vec<2, T, Q> const& Center, 9 | T const& Radius, 10 | vec<2, T, Q> const& Focal, 11 | vec<2, T, Q> const& Position 12 | ) 13 | { 14 | vec<2, T, Q> F = Focal - Center; 15 | vec<2, T, Q> D = Position - Focal; 16 | T Radius2 = pow2(Radius); 17 | T Fx2 = pow2(F.x); 18 | T Fy2 = pow2(F.y); 19 | 20 | T Numerator = (D.x * F.x + D.y * F.y) + sqrt(Radius2 * (pow2(D.x) + pow2(D.y)) - pow2(D.x * F.y - D.y * F.x)); 21 | T Denominator = Radius2 - (Fx2 + Fy2); 22 | return Numerator / Denominator; 23 | } 24 | 25 | template 26 | GLM_FUNC_QUALIFIER T linearGradient 27 | ( 28 | vec<2, T, Q> const& Point0, 29 | vec<2, T, Q> const& Point1, 30 | vec<2, T, Q> const& Position 31 | ) 32 | { 33 | vec<2, T, Q> Dist = Point1 - Point0; 34 | return (Dist.x * (Position.x - Point0.x) + Dist.y * (Position.y - Point0.y)) / glm::dot(Dist, Dist); 35 | } 36 | }//namespace glm 37 | -------------------------------------------------------------------------------- /FlowCV_SDK/third-party/glm/gtx/handed_coordinate_space.inl: -------------------------------------------------------------------------------- 1 | /// @ref gtx_handed_coordinate_space 2 | 3 | namespace glm 4 | { 5 | template 6 | GLM_FUNC_QUALIFIER bool rightHanded 7 | ( 8 | vec<3, T, Q> const& tangent, 9 | vec<3, T, Q> const& binormal, 10 | vec<3, T, Q> const& normal 11 | ) 12 | { 13 | return dot(cross(normal, tangent), binormal) > T(0); 14 | } 15 | 16 | template 17 | GLM_FUNC_QUALIFIER bool leftHanded 18 | ( 19 | vec<3, T, Q> const& tangent, 20 | vec<3, T, Q> const& binormal, 21 | vec<3, T, Q> const& normal 22 | ) 23 | { 24 | return dot(cross(normal, tangent), binormal) < T(0); 25 | } 26 | }//namespace glm 27 | -------------------------------------------------------------------------------- /FlowCV_SDK/third-party/glm/gtx/log_base.inl: -------------------------------------------------------------------------------- 1 | /// @ref gtx_log_base 2 | 3 | namespace glm 4 | { 5 | template 6 | GLM_FUNC_QUALIFIER genType log(genType const& x, genType const& base) 7 | { 8 | return glm::log(x) / glm::log(base); 9 | } 10 | 11 | template 12 | GLM_FUNC_QUALIFIER vec log(vec const& x, vec const& base) 13 | { 14 | return glm::log(x) / glm::log(base); 15 | } 16 | }//namespace glm 17 | -------------------------------------------------------------------------------- /FlowCV_SDK/third-party/glm/gtx/matrix_cross_product.inl: -------------------------------------------------------------------------------- 1 | /// @ref gtx_matrix_cross_product 2 | 3 | namespace glm 4 | { 5 | template 6 | GLM_FUNC_QUALIFIER mat<3, 3, T, Q> matrixCross3 7 | ( 8 | vec<3, T, Q> const& x 9 | ) 10 | { 11 | mat<3, 3, T, Q> Result(T(0)); 12 | Result[0][1] = x.z; 13 | Result[1][0] = -x.z; 14 | Result[0][2] = -x.y; 15 | Result[2][0] = x.y; 16 | Result[1][2] = x.x; 17 | Result[2][1] = -x.x; 18 | return Result; 19 | } 20 | 21 | template 22 | GLM_FUNC_QUALIFIER mat<4, 4, T, Q> matrixCross4 23 | ( 24 | vec<3, T, Q> const& x 25 | ) 26 | { 27 | mat<4, 4, T, Q> Result(T(0)); 28 | Result[0][1] = x.z; 29 | Result[1][0] = -x.z; 30 | Result[0][2] = -x.y; 31 | Result[2][0] = x.y; 32 | Result[1][2] = x.x; 33 | Result[2][1] = -x.x; 34 | return Result; 35 | } 36 | 37 | }//namespace glm 38 | -------------------------------------------------------------------------------- /FlowCV_SDK/third-party/glm/gtx/matrix_factorisation.inl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FlowCV-org/FlowCV/b09c48edcc9437253da6049365d319fe036eff61/FlowCV_SDK/third-party/glm/gtx/matrix_factorisation.inl -------------------------------------------------------------------------------- /FlowCV_SDK/third-party/glm/gtx/mixed_product.inl: -------------------------------------------------------------------------------- 1 | /// @ref gtx_mixed_product 2 | 3 | namespace glm 4 | { 5 | template 6 | GLM_FUNC_QUALIFIER T mixedProduct 7 | ( 8 | vec<3, T, Q> const& v1, 9 | vec<3, T, Q> const& v2, 10 | vec<3, T, Q> const& v3 11 | ) 12 | { 13 | return dot(cross(v1, v2), v3); 14 | } 15 | }//namespace glm 16 | -------------------------------------------------------------------------------- /FlowCV_SDK/third-party/glm/gtx/normal.inl: -------------------------------------------------------------------------------- 1 | /// @ref gtx_normal 2 | 3 | namespace glm 4 | { 5 | template 6 | GLM_FUNC_QUALIFIER vec<3, T, Q> triangleNormal 7 | ( 8 | vec<3, T, Q> const& p1, 9 | vec<3, T, Q> const& p2, 10 | vec<3, T, Q> const& p3 11 | ) 12 | { 13 | return normalize(cross(p1 - p2, p1 - p3)); 14 | } 15 | }//namespace glm 16 | -------------------------------------------------------------------------------- /FlowCV_SDK/third-party/glm/gtx/normalize_dot.inl: -------------------------------------------------------------------------------- 1 | /// @ref gtx_normalize_dot 2 | 3 | namespace glm 4 | { 5 | template 6 | GLM_FUNC_QUALIFIER T normalizeDot(vec const& x, vec const& y) 7 | { 8 | return glm::dot(x, y) * glm::inversesqrt(glm::dot(x, x) * glm::dot(y, y)); 9 | } 10 | 11 | template 12 | GLM_FUNC_QUALIFIER T fastNormalizeDot(vec const& x, vec const& y) 13 | { 14 | return glm::dot(x, y) * glm::fastInverseSqrt(glm::dot(x, x) * glm::dot(y, y)); 15 | } 16 | }//namespace glm 17 | -------------------------------------------------------------------------------- /FlowCV_SDK/third-party/glm/gtx/number_precision.inl: -------------------------------------------------------------------------------- 1 | /// @ref gtx_number_precision 2 | 3 | namespace glm 4 | { 5 | 6 | } 7 | -------------------------------------------------------------------------------- /FlowCV_SDK/third-party/glm/gtx/optimum_pow.inl: -------------------------------------------------------------------------------- 1 | /// @ref gtx_optimum_pow 2 | 3 | namespace glm 4 | { 5 | template 6 | GLM_FUNC_QUALIFIER genType pow2(genType const& x) 7 | { 8 | return x * x; 9 | } 10 | 11 | template 12 | GLM_FUNC_QUALIFIER genType pow3(genType const& x) 13 | { 14 | return x * x * x; 15 | } 16 | 17 | template 18 | GLM_FUNC_QUALIFIER genType pow4(genType const& x) 19 | { 20 | return (x * x) * (x * x); 21 | } 22 | }//namespace glm 23 | -------------------------------------------------------------------------------- /FlowCV_SDK/third-party/glm/gtx/orthonormalize.inl: -------------------------------------------------------------------------------- 1 | /// @ref gtx_orthonormalize 2 | 3 | namespace glm 4 | { 5 | template 6 | GLM_FUNC_QUALIFIER mat<3, 3, T, Q> orthonormalize(mat<3, 3, T, Q> const& m) 7 | { 8 | mat<3, 3, T, Q> r = m; 9 | 10 | r[0] = normalize(r[0]); 11 | 12 | T d0 = dot(r[0], r[1]); 13 | r[1] -= r[0] * d0; 14 | r[1] = normalize(r[1]); 15 | 16 | T d1 = dot(r[1], r[2]); 17 | d0 = dot(r[0], r[2]); 18 | r[2] -= r[0] * d0 + r[1] * d1; 19 | r[2] = normalize(r[2]); 20 | 21 | return r; 22 | } 23 | 24 | template 25 | GLM_FUNC_QUALIFIER vec<3, T, Q> orthonormalize(vec<3, T, Q> const& x, vec<3, T, Q> const& y) 26 | { 27 | return normalize(x - y * dot(y, x)); 28 | } 29 | }//namespace glm 30 | -------------------------------------------------------------------------------- /FlowCV_SDK/third-party/glm/gtx/perpendicular.inl: -------------------------------------------------------------------------------- 1 | /// @ref gtx_perpendicular 2 | 3 | namespace glm 4 | { 5 | template 6 | GLM_FUNC_QUALIFIER genType perp(genType const& x, genType const& Normal) 7 | { 8 | return x - proj(x, Normal); 9 | } 10 | }//namespace glm 11 | -------------------------------------------------------------------------------- /FlowCV_SDK/third-party/glm/gtx/polar_coordinates.inl: -------------------------------------------------------------------------------- 1 | /// @ref gtx_polar_coordinates 2 | 3 | namespace glm 4 | { 5 | template 6 | GLM_FUNC_QUALIFIER vec<3, T, Q> polar 7 | ( 8 | vec<3, T, Q> const& euclidean 9 | ) 10 | { 11 | T const Length(length(euclidean)); 12 | vec<3, T, Q> const tmp(euclidean / Length); 13 | T const xz_dist(sqrt(tmp.x * tmp.x + tmp.z * tmp.z)); 14 | 15 | return vec<3, T, Q>( 16 | asin(tmp.y), // latitude 17 | atan(tmp.x, tmp.z), // longitude 18 | xz_dist); // xz distance 19 | } 20 | 21 | template 22 | GLM_FUNC_QUALIFIER vec<3, T, Q> euclidean 23 | ( 24 | vec<2, T, Q> const& polar 25 | ) 26 | { 27 | T const latitude(polar.x); 28 | T const longitude(polar.y); 29 | 30 | return vec<3, T, Q>( 31 | cos(latitude) * sin(longitude), 32 | sin(latitude), 33 | cos(latitude) * cos(longitude)); 34 | } 35 | 36 | }//namespace glm 37 | -------------------------------------------------------------------------------- /FlowCV_SDK/third-party/glm/gtx/projection.inl: -------------------------------------------------------------------------------- 1 | /// @ref gtx_projection 2 | 3 | namespace glm 4 | { 5 | template 6 | GLM_FUNC_QUALIFIER genType proj(genType const& x, genType const& Normal) 7 | { 8 | return glm::dot(x, Normal) / glm::dot(Normal, Normal) * Normal; 9 | } 10 | }//namespace glm 11 | -------------------------------------------------------------------------------- /FlowCV_SDK/third-party/glm/gtx/raw_data.inl: -------------------------------------------------------------------------------- 1 | /// @ref gtx_raw_data 2 | 3 | -------------------------------------------------------------------------------- /FlowCV_SDK/third-party/glm/gtx/scalar_relational.hpp: -------------------------------------------------------------------------------- 1 | /// @ref gtx_scalar_relational 2 | /// @file glm/gtx/scalar_relational.hpp 3 | /// 4 | /// @see core (dependence) 5 | /// 6 | /// @defgroup gtx_scalar_relational GLM_GTX_scalar_relational 7 | /// @ingroup gtx 8 | /// 9 | /// Include to use the features of this extension. 10 | /// 11 | /// Extend a position from a source to a position at a defined length. 12 | 13 | #pragma once 14 | 15 | // Dependency: 16 | #include "../glm.hpp" 17 | 18 | #if GLM_MESSAGES == GLM_ENABLE && !defined(GLM_EXT_INCLUDED) 19 | # ifndef GLM_ENABLE_EXPERIMENTAL 20 | # pragma message("GLM: GLM_GTX_extend is an experimental extension and may change in the future. Use #define GLM_ENABLE_EXPERIMENTAL before including it, if you really want to use it.") 21 | # else 22 | # pragma message("GLM: GLM_GTX_extend extension included") 23 | # endif 24 | #endif 25 | 26 | namespace glm 27 | { 28 | /// @addtogroup gtx_scalar_relational 29 | /// @{ 30 | 31 | 32 | 33 | /// @} 34 | }//namespace glm 35 | 36 | #include "scalar_relational.inl" 37 | -------------------------------------------------------------------------------- /FlowCV_SDK/third-party/glm/gtx/std_based_type.inl: -------------------------------------------------------------------------------- 1 | /// @ref gtx_std_based_type 2 | 3 | namespace glm 4 | { 5 | 6 | } 7 | -------------------------------------------------------------------------------- /FlowCV_SDK/third-party/glm/gtx/texture.inl: -------------------------------------------------------------------------------- 1 | /// @ref gtx_texture 2 | 3 | namespace glm 4 | { 5 | template 6 | inline T levels(vec const& Extent) 7 | { 8 | return glm::log2(compMax(Extent)) + static_cast(1); 9 | } 10 | 11 | template 12 | inline T levels(T Extent) 13 | { 14 | return vec<1, T, defaultp>(Extent).x; 15 | } 16 | }//namespace glm 17 | 18 | -------------------------------------------------------------------------------- /FlowCV_SDK/third-party/glm/gtx/transform.inl: -------------------------------------------------------------------------------- 1 | /// @ref gtx_transform 2 | 3 | namespace glm 4 | { 5 | template 6 | GLM_FUNC_QUALIFIER mat<4, 4, T, Q> translate(vec<3, T, Q> const& v) 7 | { 8 | return translate(mat<4, 4, T, Q>(static_cast(1)), v); 9 | } 10 | 11 | template 12 | GLM_FUNC_QUALIFIER mat<4, 4, T, Q> rotate(T angle, vec<3, T, Q> const& v) 13 | { 14 | return rotate(mat<4, 4, T, Q>(static_cast(1)), angle, v); 15 | } 16 | 17 | template 18 | GLM_FUNC_QUALIFIER mat<4, 4, T, Q> scale(vec<3, T, Q> const& v) 19 | { 20 | return scale(mat<4, 4, T, Q>(static_cast(1)), v); 21 | } 22 | 23 | }//namespace glm 24 | -------------------------------------------------------------------------------- /FlowCV_SDK/third-party/glm/gtx/type_aligned.inl: -------------------------------------------------------------------------------- 1 | /// @ref gtc_type_aligned 2 | 3 | namespace glm 4 | { 5 | 6 | } 7 | -------------------------------------------------------------------------------- /FlowCV_SDK/third-party/glm/mat2x2.hpp: -------------------------------------------------------------------------------- 1 | /// @ref core 2 | /// @file glm/mat2x2.hpp 3 | 4 | #pragma once 5 | #include "./ext/matrix_double2x2.hpp" 6 | #include "./ext/matrix_double2x2_precision.hpp" 7 | #include "./ext/matrix_float2x2.hpp" 8 | #include "./ext/matrix_float2x2_precision.hpp" 9 | 10 | -------------------------------------------------------------------------------- /FlowCV_SDK/third-party/glm/mat2x3.hpp: -------------------------------------------------------------------------------- 1 | /// @ref core 2 | /// @file glm/mat2x3.hpp 3 | 4 | #pragma once 5 | #include "./ext/matrix_double2x3.hpp" 6 | #include "./ext/matrix_double2x3_precision.hpp" 7 | #include "./ext/matrix_float2x3.hpp" 8 | #include "./ext/matrix_float2x3_precision.hpp" 9 | 10 | -------------------------------------------------------------------------------- /FlowCV_SDK/third-party/glm/mat2x4.hpp: -------------------------------------------------------------------------------- 1 | /// @ref core 2 | /// @file glm/mat2x4.hpp 3 | 4 | #pragma once 5 | #include "./ext/matrix_double2x4.hpp" 6 | #include "./ext/matrix_double2x4_precision.hpp" 7 | #include "./ext/matrix_float2x4.hpp" 8 | #include "./ext/matrix_float2x4_precision.hpp" 9 | 10 | -------------------------------------------------------------------------------- /FlowCV_SDK/third-party/glm/mat3x2.hpp: -------------------------------------------------------------------------------- 1 | /// @ref core 2 | /// @file glm/mat3x2.hpp 3 | 4 | #pragma once 5 | #include "./ext/matrix_double3x2.hpp" 6 | #include "./ext/matrix_double3x2_precision.hpp" 7 | #include "./ext/matrix_float3x2.hpp" 8 | #include "./ext/matrix_float3x2_precision.hpp" 9 | 10 | -------------------------------------------------------------------------------- /FlowCV_SDK/third-party/glm/mat3x3.hpp: -------------------------------------------------------------------------------- 1 | /// @ref core 2 | /// @file glm/mat3x3.hpp 3 | 4 | #pragma once 5 | #include "./ext/matrix_double3x3.hpp" 6 | #include "./ext/matrix_double3x3_precision.hpp" 7 | #include "./ext/matrix_float3x3.hpp" 8 | #include "./ext/matrix_float3x3_precision.hpp" 9 | -------------------------------------------------------------------------------- /FlowCV_SDK/third-party/glm/mat3x4.hpp: -------------------------------------------------------------------------------- 1 | /// @ref core 2 | /// @file glm/mat3x4.hpp 3 | 4 | #pragma once 5 | #include "./ext/matrix_double3x4.hpp" 6 | #include "./ext/matrix_double3x4_precision.hpp" 7 | #include "./ext/matrix_float3x4.hpp" 8 | #include "./ext/matrix_float3x4_precision.hpp" 9 | -------------------------------------------------------------------------------- /FlowCV_SDK/third-party/glm/mat4x2.hpp: -------------------------------------------------------------------------------- 1 | /// @ref core 2 | /// @file glm/mat4x2.hpp 3 | 4 | #pragma once 5 | #include "./ext/matrix_double4x2.hpp" 6 | #include "./ext/matrix_double4x2_precision.hpp" 7 | #include "./ext/matrix_float4x2.hpp" 8 | #include "./ext/matrix_float4x2_precision.hpp" 9 | 10 | -------------------------------------------------------------------------------- /FlowCV_SDK/third-party/glm/mat4x3.hpp: -------------------------------------------------------------------------------- 1 | /// @ref core 2 | /// @file glm/mat4x3.hpp 3 | 4 | #pragma once 5 | #include "./ext/matrix_double4x3.hpp" 6 | #include "./ext/matrix_double4x3_precision.hpp" 7 | #include "./ext/matrix_float4x3.hpp" 8 | #include "./ext/matrix_float4x3_precision.hpp" 9 | -------------------------------------------------------------------------------- /FlowCV_SDK/third-party/glm/mat4x4.hpp: -------------------------------------------------------------------------------- 1 | /// @ref core 2 | /// @file glm/mat4x4.hpp 3 | 4 | #pragma once 5 | #include "./ext/matrix_double4x4.hpp" 6 | #include "./ext/matrix_double4x4_precision.hpp" 7 | #include "./ext/matrix_float4x4.hpp" 8 | #include "./ext/matrix_float4x4_precision.hpp" 9 | 10 | -------------------------------------------------------------------------------- /FlowCV_SDK/third-party/glm/simd/exponential.h: -------------------------------------------------------------------------------- 1 | /// @ref simd 2 | /// @file glm/simd/experimental.h 3 | 4 | #pragma once 5 | 6 | #include "platform.h" 7 | 8 | #if GLM_ARCH & GLM_ARCH_SSE2_BIT 9 | 10 | GLM_FUNC_QUALIFIER glm_f32vec4 glm_vec1_sqrt_lowp(glm_f32vec4 x) 11 | { 12 | return _mm_mul_ss(_mm_rsqrt_ss(x), x); 13 | } 14 | 15 | GLM_FUNC_QUALIFIER glm_f32vec4 glm_vec4_sqrt_lowp(glm_f32vec4 x) 16 | { 17 | return _mm_mul_ps(_mm_rsqrt_ps(x), x); 18 | } 19 | 20 | #endif//GLM_ARCH & GLM_ARCH_SSE2_BIT 21 | -------------------------------------------------------------------------------- /FlowCV_SDK/third-party/glm/simd/packing.h: -------------------------------------------------------------------------------- 1 | /// @ref simd 2 | /// @file glm/simd/packing.h 3 | 4 | #pragma once 5 | 6 | #if GLM_ARCH & GLM_ARCH_SSE2_BIT 7 | 8 | #endif//GLM_ARCH & GLM_ARCH_SSE2_BIT 9 | -------------------------------------------------------------------------------- /FlowCV_SDK/third-party/glm/simd/trigonometric.h: -------------------------------------------------------------------------------- 1 | /// @ref simd 2 | /// @file glm/simd/trigonometric.h 3 | 4 | #pragma once 5 | 6 | #if GLM_ARCH & GLM_ARCH_SSE2_BIT 7 | 8 | #endif//GLM_ARCH & GLM_ARCH_SSE2_BIT 9 | 10 | -------------------------------------------------------------------------------- /FlowCV_SDK/third-party/glm/simd/vector_relational.h: -------------------------------------------------------------------------------- 1 | /// @ref simd 2 | /// @file glm/simd/vector_relational.h 3 | 4 | #pragma once 5 | 6 | #if GLM_ARCH & GLM_ARCH_SSE2_BIT 7 | 8 | #endif//GLM_ARCH & GLM_ARCH_SSE2_BIT 9 | -------------------------------------------------------------------------------- /FlowCV_SDK/third-party/glm/vec2.hpp: -------------------------------------------------------------------------------- 1 | /// @ref core 2 | /// @file glm/vec2.hpp 3 | 4 | #pragma once 5 | #include "./ext/vector_bool2.hpp" 6 | #include "./ext/vector_bool2_precision.hpp" 7 | #include "./ext/vector_float2.hpp" 8 | #include "./ext/vector_float2_precision.hpp" 9 | #include "./ext/vector_double2.hpp" 10 | #include "./ext/vector_double2_precision.hpp" 11 | #include "./ext/vector_int2.hpp" 12 | #include "./ext/vector_int2_precision.hpp" 13 | #include "./ext/vector_uint2.hpp" 14 | #include "./ext/vector_uint2_precision.hpp" 15 | -------------------------------------------------------------------------------- /FlowCV_SDK/third-party/glm/vec3.hpp: -------------------------------------------------------------------------------- 1 | /// @ref core 2 | /// @file glm/vec3.hpp 3 | 4 | #pragma once 5 | #include "./ext/vector_bool3.hpp" 6 | #include "./ext/vector_bool3_precision.hpp" 7 | #include "./ext/vector_float3.hpp" 8 | #include "./ext/vector_float3_precision.hpp" 9 | #include "./ext/vector_double3.hpp" 10 | #include "./ext/vector_double3_precision.hpp" 11 | #include "./ext/vector_int3.hpp" 12 | #include "./ext/vector_int3_precision.hpp" 13 | #include "./ext/vector_uint3.hpp" 14 | #include "./ext/vector_uint3_precision.hpp" 15 | -------------------------------------------------------------------------------- /FlowCV_SDK/third-party/glm/vec4.hpp: -------------------------------------------------------------------------------- 1 | /// @ref core 2 | /// @file glm/vec4.hpp 3 | 4 | #pragma once 5 | #include "./ext/vector_bool4.hpp" 6 | #include "./ext/vector_bool4_precision.hpp" 7 | #include "./ext/vector_float4.hpp" 8 | #include "./ext/vector_float4_precision.hpp" 9 | #include "./ext/vector_double4.hpp" 10 | #include "./ext/vector_double4_precision.hpp" 11 | #include "./ext/vector_int4.hpp" 12 | #include "./ext/vector_int4_precision.hpp" 13 | #include "./ext/vector_uint4.hpp" 14 | #include "./ext/vector_uint4_precision.hpp" 15 | 16 | -------------------------------------------------------------------------------- /FlowCV_SDK/third-party/imgui/.editorconfig: -------------------------------------------------------------------------------- 1 | # See http://editorconfig.org to read about the EditorConfig format. 2 | # - In theory automatically supported by VS2017+ and most common IDE or text editors. 3 | # - In practice VS2019 stills gets trailing whitespaces wrong :( 4 | # - Suggest install to trim whitespaces: https://marketplace.visualstudio.com/items?itemName=MadsKristensen.TrailingWhitespaceVisualizer 5 | # - Alternative for older VS2010 to VS2015: https://marketplace.visualstudio.com/items?itemName=EditorConfigTeam.EditorConfig 6 | 7 | # top-most EditorConfig file 8 | root = true 9 | 10 | # Default settings: 11 | # Use 4 spaces as indentation 12 | [*] 13 | indent_style = space 14 | indent_size = 4 15 | insert_final_newline = true 16 | trim_trailing_whitespace = true 17 | 18 | [imstb_*] 19 | indent_size = 3 20 | trim_trailing_whitespace = false 21 | 22 | [Makefile] 23 | indent_style = tab 24 | indent_size = 4 25 | -------------------------------------------------------------------------------- /FlowCV_SDK/third-party/imgui/backends/vulkan/generate_spv.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | ## -V: create SPIR-V binary 3 | ## -x: save binary output as text-based 32-bit hexadecimal numbers 4 | ## -o: output file 5 | glslangValidator -V -x -o glsl_shader.frag.u32 glsl_shader.frag 6 | glslangValidator -V -x -o glsl_shader.vert.u32 glsl_shader.vert 7 | -------------------------------------------------------------------------------- /FlowCV_SDK/third-party/imgui/backends/vulkan/glsl_shader.frag: -------------------------------------------------------------------------------- 1 | #version 450 core 2 | layout(location = 0) out vec4 fColor; 3 | 4 | layout(set=0, binding=0) uniform sampler2D sTexture; 5 | 6 | layout(location = 0) in struct { 7 | vec4 Color; 8 | vec2 UV; 9 | } In; 10 | 11 | void main() 12 | { 13 | fColor = In.Color * texture(sTexture, In.UV.st); 14 | } 15 | -------------------------------------------------------------------------------- /FlowCV_SDK/third-party/imgui/backends/vulkan/glsl_shader.vert: -------------------------------------------------------------------------------- 1 | #version 450 core 2 | layout(location = 0) in vec2 aPos; 3 | layout(location = 1) in vec2 aUV; 4 | layout(location = 2) in vec4 aColor; 5 | 6 | layout(push_constant) uniform uPushConstant { 7 | vec2 uScale; 8 | vec2 uTranslate; 9 | } pc; 10 | 11 | out gl_PerVertex { 12 | vec4 gl_Position; 13 | }; 14 | 15 | layout(location = 0) out struct { 16 | vec4 Color; 17 | vec2 UV; 18 | } Out; 19 | 20 | void main() 21 | { 22 | Out.Color = aColor; 23 | Out.UV = aUV; 24 | gl_Position = vec4(aPos * pc.uScale + pc.uTranslate, 0, 1); 25 | } 26 | -------------------------------------------------------------------------------- /FlowCV_SDK/third-party/imgui/examples/README.txt: -------------------------------------------------------------------------------- 1 | See BACKENDS and EXAMPLES files in the docs/ folder, or on the web at: https://github.com/ocornut/imgui/tree/master/docs 2 | 3 | Backends = Helper code to facilitate integration with platforms/graphics api (used by Examples + should be used by your app). 4 | Examples = Standalone applications showcasing integration with platforms/graphics api. 5 | 6 | Some Examples have extra README files in their respective directory, please check them too! 7 | 8 | Once Dear ImGui is running (in either examples or your own application/game/engine), 9 | run and refer to ImGui::ShowDemoWindow() in imgui_demo.cpp for the end-user API. 10 | -------------------------------------------------------------------------------- /FlowCV_SDK/third-party/imgui/examples/example_allegro5/imconfig_allegro5.h: -------------------------------------------------------------------------------- 1 | //----------------------------------------------------------------------------- 2 | // COMPILE-TIME OPTIONS FOR DEAR IMGUI ALLEGRO 5 EXAMPLE 3 | // See imconfig.h for the full template 4 | // Because Allegro doesn't support 16-bit vertex indices, we enable the compile-time option of imgui to use 32-bit indices 5 | //----------------------------------------------------------------------------- 6 | 7 | #pragma once 8 | 9 | // Use 32-bit vertex indices because Allegro doesn't support 16-bit ones 10 | // This allows us to avoid converting vertices format at runtime 11 | #define ImDrawIdx int 12 | -------------------------------------------------------------------------------- /FlowCV_SDK/third-party/imgui/examples/example_android_opengl3/android/.gitignore: -------------------------------------------------------------------------------- 1 | .cxx 2 | .externalNativeBuild 3 | build/ 4 | *.iml 5 | 6 | .idea 7 | .gradle 8 | local.properties 9 | 10 | # Android Studio puts a Gradle wrapper here, that we don't want: 11 | gradle/ 12 | gradlew* 13 | -------------------------------------------------------------------------------- /FlowCV_SDK/third-party/imgui/examples/example_android_opengl3/android/app/build.gradle: -------------------------------------------------------------------------------- 1 | apply plugin: 'com.android.application' 2 | apply plugin: 'kotlin-android' 3 | 4 | android { 5 | compileSdkVersion 29 6 | buildToolsVersion "30.0.3" 7 | ndkVersion "21.4.7075529" 8 | defaultConfig { 9 | applicationId "imgui.example.android" 10 | minSdkVersion 23 11 | targetSdkVersion 29 12 | versionCode 1 13 | versionName "1.0" 14 | } 15 | 16 | buildTypes { 17 | release { 18 | minifyEnabled false 19 | proguardFiles getDefaultProguardFile('proguard-android-optimize.txt') 20 | } 21 | } 22 | 23 | externalNativeBuild { 24 | cmake { 25 | path "../../CMakeLists.txt" 26 | } 27 | } 28 | } 29 | repositories { 30 | mavenCentral() 31 | } 32 | dependencies { 33 | implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version" 34 | } 35 | -------------------------------------------------------------------------------- /FlowCV_SDK/third-party/imgui/examples/example_android_opengl3/android/app/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 10 | 11 | 15 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | -------------------------------------------------------------------------------- /FlowCV_SDK/third-party/imgui/examples/example_android_opengl3/android/build.gradle: -------------------------------------------------------------------------------- 1 | buildscript { 2 | ext.kotlin_version = '1.4.31' 3 | repositories { 4 | google() 5 | mavenCentral() 6 | 7 | } 8 | dependencies { 9 | classpath 'com.android.tools.build:gradle:4.1.0' 10 | classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" 11 | 12 | } 13 | } 14 | 15 | allprojects { 16 | repositories { 17 | google() 18 | mavenCentral() 19 | } 20 | } 21 | 22 | task clean(type: Delete) { 23 | delete rootProject.buildDir 24 | } 25 | -------------------------------------------------------------------------------- /FlowCV_SDK/third-party/imgui/examples/example_android_opengl3/android/settings.gradle: -------------------------------------------------------------------------------- 1 | include ':app' 2 | -------------------------------------------------------------------------------- /FlowCV_SDK/third-party/imgui/examples/example_apple_metal/README.md: -------------------------------------------------------------------------------- 1 | # iOS / OSX Metal example 2 | 3 | ## Introduction 4 | 5 | This example shows how to integrate Dear ImGui with Metal. It is based on the "cross-platform" game template provided with Xcode as of Xcode 9. 6 | 7 | Consider basing your work off the example_glfw_metal/ or example_sdl_metal/ examples. They are better supported and will be portable unlike this one. 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /FlowCV_SDK/third-party/imgui/examples/example_apple_metal/macOS/Info-macOS.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | $(DEVELOPMENT_LANGUAGE) 7 | CFBundleExecutable 8 | $(EXECUTABLE_NAME) 9 | CFBundleIconFile 10 | 11 | CFBundleIdentifier 12 | $(PRODUCT_BUNDLE_IDENTIFIER) 13 | CFBundleInfoDictionaryVersion 14 | 6.0 15 | CFBundleName 16 | imgui 17 | CFBundlePackageType 18 | APPL 19 | CFBundleShortVersionString 20 | 1.0 21 | CFBundleVersion 22 | 1 23 | LSMinimumSystemVersion 24 | $(MACOSX_DEPLOYMENT_TARGET) 25 | NSMainStoryboardFile 26 | MainMenu 27 | NSPrincipalClass 28 | NSApplication 29 | 30 | 31 | -------------------------------------------------------------------------------- /FlowCV_SDK/third-party/imgui/examples/example_glfw_opengl2/build_win32.bat: -------------------------------------------------------------------------------- 1 | @REM Build for Visual Studio compiler. Run your copy of vcvars32.bat or vcvarsall.bat to setup command-line compiler. 2 | @set OUT_DIR=Debug 3 | @set OUT_EXE=example_glfw_opengl2 4 | @set INCLUDES=/I..\.. /I..\..\backends /I..\libs\glfw\include 5 | @set SOURCES=main.cpp ..\..\backends\imgui_impl_opengl2.cpp ..\..\backends\imgui_impl_glfw.cpp ..\..\imgui*.cpp 6 | @set LIBS=/LIBPATH:..\libs\glfw\lib-vc2010-32 glfw3.lib opengl32.lib gdi32.lib shell32.lib 7 | mkdir %OUT_DIR% 8 | cl /nologo /Zi /MD %INCLUDES% %SOURCES% /Fe%OUT_DIR%/%OUT_EXE%.exe /Fo%OUT_DIR%/ /link %LIBS% 9 | -------------------------------------------------------------------------------- /FlowCV_SDK/third-party/imgui/examples/example_glfw_opengl3/build_win32.bat: -------------------------------------------------------------------------------- 1 | @REM Build for Visual Studio compiler. Run your copy of vcvars32.bat or vcvarsall.bat to setup command-line compiler. 2 | @set OUT_DIR=Debug 3 | @set OUT_EXE=example_glfw_opengl3 4 | @set INCLUDES=/I..\.. /I..\..\backends /I..\libs\glfw\include 5 | @set SOURCES=main.cpp ..\..\backends\imgui_impl_glfw.cpp ..\..\backends\imgui_impl_opengl3.cpp ..\..\imgui*.cpp 6 | @set LIBS=/LIBPATH:..\libs\glfw\lib-vc2010-32 glfw3.lib opengl32.lib gdi32.lib shell32.lib 7 | mkdir %OUT_DIR% 8 | cl /nologo /Zi /MD %INCLUDES% %SOURCES% /Fe%OUT_DIR%/%OUT_EXE%.exe /Fo%OUT_DIR%/ /link %LIBS% 9 | -------------------------------------------------------------------------------- /FlowCV_SDK/third-party/imgui/examples/example_glfw_vulkan/build_win32.bat: -------------------------------------------------------------------------------- 1 | @REM Build for Visual Studio compiler. Run your copy of vcvars32.bat or vcvarsall.bat to setup command-line compiler. 2 | 3 | @set OUT_EXE=example_glfw_vulkan 4 | @set INCLUDES=/I..\.. /I..\..\backends /I..\libs\glfw\include /I %VULKAN_SDK%\include 5 | @set SOURCES=main.cpp ..\..\backends\imgui_impl_vulkan.cpp ..\..\backends\imgui_impl_glfw.cpp ..\..\imgui*.cpp 6 | @set LIBS=/LIBPATH:..\libs\glfw\lib-vc2010-32 /libpath:%VULKAN_SDK%\lib32 glfw3.lib opengl32.lib gdi32.lib shell32.lib vulkan-1.lib 7 | 8 | @set OUT_DIR=Debug 9 | mkdir %OUT_DIR% 10 | cl /nologo /Zi /MD %INCLUDES% %SOURCES% /Fe%OUT_DIR%/%OUT_EXE%.exe /Fo%OUT_DIR%/ /link %LIBS% 11 | 12 | @set OUT_DIR=Release 13 | mkdir %OUT_DIR% 14 | cl /nologo /Zi /MD /Ox /Oi %INCLUDES% %SOURCES% /Fe%OUT_DIR%/%OUT_EXE%.exe /Fo%OUT_DIR%/ /link %LIBS% 15 | -------------------------------------------------------------------------------- /FlowCV_SDK/third-party/imgui/examples/example_glfw_vulkan/build_win64.bat: -------------------------------------------------------------------------------- 1 | @REM Build for Visual Studio compiler. Run your copy of amd64/vcvars32.bat to setup 64-bit command-line compiler. 2 | 3 | @set INCLUDES=/I..\.. /I..\..\backends /I..\libs\glfw\include /I %VULKAN_SDK%\include 4 | @set SOURCES=main.cpp ..\..\backends\imgui_impl_vulkan.cpp ..\..\backends\imgui_impl_glfw.cpp ..\..\imgui*.cpp 5 | @set LIBS=/LIBPATH:..\libs\glfw\lib-vc2010-64 /libpath:%VULKAN_SDK%\lib glfw3.lib opengl32.lib gdi32.lib shell32.lib vulkan-1.lib 6 | 7 | @set OUT_DIR=Debug 8 | mkdir %OUT_DIR% 9 | cl /nologo /Zi /MD %INCLUDES% %SOURCES% /Fe%OUT_DIR%/%OUT_EXE%.exe /Fo%OUT_DIR%/ /link %LIBS% 10 | 11 | @set OUT_DIR=Release 12 | mkdir %OUT_DIR% 13 | cl /nologo /Zi /MD /Ox /Oi %INCLUDES% %SOURCES% /Fe%OUT_DIR%/%OUT_EXE%.exe /Fo%OUT_DIR%/ /link %LIBS% 14 | -------------------------------------------------------------------------------- /FlowCV_SDK/third-party/imgui/examples/example_marmalade/data/app.icf: -------------------------------------------------------------------------------- 1 | # This file is for configuration settings for your 2 | # application. 3 | # 4 | # The syntax is similar to windows .ini files ie 5 | # 6 | # [GroupName] 7 | # Setting = Value 8 | # 9 | # Which can be read by your application using 10 | # e.g s3eConfigGetString("GroupName", "Setting", string) 11 | # 12 | # All settings must be documented in .config.txt files. 13 | # New settings specific to this application should be 14 | # documented in app.config.txt 15 | # 16 | # Some conditional operations are also permitted, see the 17 | # S3E documentation for details. 18 | 19 | [S3E] 20 | MemSize=6000000 21 | MemSizeDebug=6000000 22 | DispFixRot=FixedLandscape 23 | 24 | # emulate iphone 5 resolution, change these settings to emulate other display resolution 25 | WinWidth=1136 26 | WinHeight=640 27 | 28 | [GX] 29 | DataCacheSize=131070 30 | 31 | [Util] 32 | #MemoryBreakpoint=1282 33 | -------------------------------------------------------------------------------- /FlowCV_SDK/third-party/imgui/examples/example_marmalade/marmalade_example.mkb: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env mkb 2 | 3 | # ImGui - standalone example application for Marmalade 4 | # Copyright (C) 2015 by Giovanni Zito 5 | # This file is part of ImGui 6 | # https://github.com/ocornut/imgui 7 | 8 | define IMGUI_DISABLE_INCLUDE_IMCONFIG_H 9 | define IMGUI_DISABLE_WIN32_DEFAULT_CLIPBOARD_FUNCS 10 | define IMGUI_DISABLE_WIN32_DEFAULT_IME_FUNCS 11 | define _snprintf=snprintf 12 | 13 | options 14 | { 15 | optimise-speed=1 16 | } 17 | 18 | includepaths 19 | { 20 | ../.. 21 | ../../backends 22 | } 23 | 24 | subprojects 25 | { 26 | iwgx 27 | } 28 | 29 | files 30 | { 31 | (.) 32 | ["imgui"] 33 | ../../imgui.cpp 34 | ../../imgui_demo.cpp 35 | ../../imgui_draw.cpp 36 | ../../imgui_tables.cpp 37 | ../../imgui_widgets.cpp 38 | ../../imconfig.h 39 | ../../imgui.h 40 | ../../imgui_internal.h 41 | 42 | ["imgui","Marmalade backend"] 43 | ../../backends/imgui_impl_marmalade.h 44 | ../../backends/imgui_impl_marmalade.cpp 45 | main.cpp 46 | 47 | } 48 | -------------------------------------------------------------------------------- /FlowCV_SDK/third-party/imgui/examples/example_null/build_win32.bat: -------------------------------------------------------------------------------- 1 | @REM Build for Visual Studio compiler. Run your copy of vcvars32.bat or vcvarsall.bat to setup command-line compiler. 2 | mkdir Debug 3 | cl /nologo /Zi /MD /I ..\.. %* *.cpp ..\..\*.cpp /FeDebug/example_null.exe /FoDebug/ /link gdi32.lib shell32.lib imm32.lib 4 | -------------------------------------------------------------------------------- /FlowCV_SDK/third-party/imgui/examples/example_sdl_directx11/build_win32.bat: -------------------------------------------------------------------------------- 1 | @REM Build for Visual Studio compiler. Run your copy of vcvars32.bat or vcvarsall.bat to setup command-line compiler. 2 | @set OUT_DIR=Debug 3 | @set OUT_EXE=example_sdl_directx11 4 | @set INCLUDES=/I..\.. /I..\..\backends /I%SDL2_DIR%\include /I "%WindowsSdkDir%Include\um" /I "%WindowsSdkDir%Include\shared" /I "%DXSDK_DIR%Include" 5 | @set SOURCES=main.cpp ..\..\backends\imgui_impl_sdl.cpp ..\..\backends\imgui_impl_dx11.cpp ..\..\imgui*.cpp 6 | @set LIBS=/LIBPATH:%SDL2_DIR%\lib\x86 SDL2.lib SDL2main.lib /LIBPATH:"%DXSDK_DIR%/Lib/x86" d3d11.lib d3dcompiler.lib shell32.lib 7 | mkdir %OUT_DIR% 8 | cl /nologo /Zi /MD %INCLUDES% %SOURCES% /Fe%OUT_DIR%/%OUT_EXE%.exe /Fo%OUT_DIR%/ /link %LIBS% /subsystem:console 9 | -------------------------------------------------------------------------------- /FlowCV_SDK/third-party/imgui/examples/example_sdl_opengl2/build_win32.bat: -------------------------------------------------------------------------------- 1 | @REM Build for Visual Studio compiler. Run your copy of vcvars32.bat or vcvarsall.bat to setup command-line compiler. 2 | @set OUT_DIR=Debug 3 | @set OUT_EXE=example_sdl_opengl2 4 | @set INCLUDES=/I..\.. /I..\..\backends /I%SDL2_DIR%\include 5 | @set SOURCES=main.cpp ..\..\backends\imgui_impl_sdl.cpp ..\..\backends\imgui_impl_opengl2.cpp ..\..\imgui*.cpp 6 | @set LIBS=/LIBPATH:%SDL2_DIR%\lib\x86 SDL2.lib SDL2main.lib opengl32.lib shell32.lib 7 | mkdir %OUT_DIR% 8 | cl /nologo /Zi /MD %INCLUDES% %SOURCES% /Fe%OUT_DIR%/%OUT_EXE%.exe /Fo%OUT_DIR%/ /link %LIBS% /subsystem:console 9 | -------------------------------------------------------------------------------- /FlowCV_SDK/third-party/imgui/examples/example_sdl_opengl3/build_win32.bat: -------------------------------------------------------------------------------- 1 | @REM Build for Visual Studio compiler. Run your copy of vcvars32.bat or vcvarsall.bat to setup command-line compiler. 2 | @set OUT_DIR=Debug 3 | @set OUT_EXE=example_sdl_opengl3 4 | @set INCLUDES=/I..\.. /I..\..\backends /I%SDL2_DIR%\include 5 | @set SOURCES=main.cpp ..\..\backends\imgui_impl_sdl.cpp ..\..\backends\imgui_impl_opengl3.cpp ..\..\imgui*.cpp 6 | @set LIBS=/LIBPATH:%SDL2_DIR%\lib\x86 SDL2.lib SDL2main.lib opengl32.lib shell32.lib 7 | mkdir %OUT_DIR% 8 | cl /nologo /Zi /MD %INCLUDES% %SOURCES% /Fe%OUT_DIR%/%OUT_EXE%.exe /Fo%OUT_DIR%/ /link %LIBS% /subsystem:console 9 | -------------------------------------------------------------------------------- /FlowCV_SDK/third-party/imgui/examples/example_sdl_sdlrenderer/build_win32.bat: -------------------------------------------------------------------------------- 1 | @REM Build for Visual Studio compiler. Run your copy of vcvars32.bat or vcvarsall.bat to setup command-line compiler. 2 | @set OUT_DIR=Debug 3 | @set OUT_EXE=example_sdl_sdlrenderer_ 4 | @set INCLUDES=/I..\.. /I..\..\backends /I%SDL2_DIR%\include 5 | @set SOURCES=main.cpp ..\..\backends\imgui_impl_sdl.cpp ..\..\backends\imgui_impl_sdlrenderer.cpp ..\..\imgui*.cpp 6 | @set LIBS=/LIBPATH:%SDL2_DIR%\lib\x86 SDL2.lib SDL2main.lib 7 | mkdir %OUT_DIR% 8 | cl /nologo /Zi /MD %INCLUDES% %SOURCES% /Fe%OUT_DIR%/%OUT_EXE%.exe /Fo%OUT_DIR%/ /link %LIBS% /subsystem:console 9 | -------------------------------------------------------------------------------- /FlowCV_SDK/third-party/imgui/examples/example_sdl_vulkan/build_win32.bat: -------------------------------------------------------------------------------- 1 | @REM Build for Visual Studio compiler. Run your copy of vcvars32.bat or vcvarsall.bat to setup command-line compiler. 2 | 3 | @set OUT_EXE=example_sdl_vulkan 4 | @set INCLUDES=/I..\.. /I..\..\backends /I%SDL2_DIR%\include /I %VULKAN_SDK%\include 5 | @set SOURCES=main.cpp ..\..\backends\imgui_impl_sdl.cpp ..\..\backends\imgui_impl_vulkan.cpp ..\..\imgui*.cpp 6 | @set LIBS=/LIBPATH:%SDL2_DIR%\lib\x86 /libpath:%VULKAN_SDK%\lib32 SDL2.lib SDL2main.lib shell32.lib vulkan-1.lib 7 | 8 | @set OUT_DIR=Debug 9 | mkdir %OUT_DIR% 10 | cl /nologo /Zi /MD %INCLUDES% %SOURCES% /Fe%OUT_DIR%/%OUT_EXE%.exe /Fo%OUT_DIR%/ /link %LIBS% /subsystem:console 11 | -------------------------------------------------------------------------------- /FlowCV_SDK/third-party/imgui/examples/example_win32_directx10/build_win32.bat: -------------------------------------------------------------------------------- 1 | @REM Build for Visual Studio compiler. Run your copy of vcvars32.bat or vcvarsall.bat to setup command-line compiler. 2 | @set OUT_DIR=Debug 3 | @set OUT_EXE=example_win32_directx10 4 | @set INCLUDES=/I..\.. /I..\..\backends /I "%WindowsSdkDir%Include\um" /I "%WindowsSdkDir%Include\shared" /I "%DXSDK_DIR%Include" 5 | @set SOURCES=main.cpp ..\..\backends\imgui_impl_win32.cpp ..\..\backends\imgui_impl_dx10.cpp ..\..\imgui*.cpp 6 | @set LIBS=/LIBPATH:"%DXSDK_DIR%/Lib/x86" d3d10.lib d3dcompiler.lib 7 | mkdir %OUT_DIR% 8 | cl /nologo /Zi /MD %INCLUDES% /D UNICODE /D _UNICODE %SOURCES% /Fe%OUT_DIR%/%OUT_EXE%.exe /Fo%OUT_DIR%/ /link %LIBS% 9 | -------------------------------------------------------------------------------- /FlowCV_SDK/third-party/imgui/examples/example_win32_directx11/build_win32.bat: -------------------------------------------------------------------------------- 1 | @REM Build for Visual Studio compiler. Run your copy of vcvars32.bat or vcvarsall.bat to setup command-line compiler. 2 | @set OUT_DIR=Debug 3 | @set OUT_EXE=example_win32_directx11 4 | @set INCLUDES=/I..\.. /I..\..\backends /I "%WindowsSdkDir%Include\um" /I "%WindowsSdkDir%Include\shared" /I "%DXSDK_DIR%Include" 5 | @set SOURCES=main.cpp ..\..\backends\imgui_impl_dx11.cpp ..\..\backends\imgui_impl_win32.cpp ..\..\imgui*.cpp 6 | @set LIBS=/LIBPATH:"%DXSDK_DIR%/Lib/x86" d3d11.lib d3dcompiler.lib 7 | mkdir %OUT_DIR% 8 | cl /nologo /Zi /MD %INCLUDES% /D UNICODE /D _UNICODE %SOURCES% /Fe%OUT_DIR%/%OUT_EXE%.exe /Fo%OUT_DIR%/ /link %LIBS% 9 | 10 | -------------------------------------------------------------------------------- /FlowCV_SDK/third-party/imgui/examples/example_win32_directx12/build_win32.bat: -------------------------------------------------------------------------------- 1 | @REM Build for Visual Studio compiler. Run your copy of vcvars32.bat or vcvarsall.bat to setup command-line compiler. 2 | @REM Important: to build on 32-bit systems, the DX12 backends needs '#define ImTextureID ImU64', so we pass it here. 3 | @set OUT_DIR=Debug 4 | @set OUT_EXE=example_win32_directx12 5 | @set INCLUDES=/I..\.. /I..\..\backends /I "%WindowsSdkDir%Include\um" /I "%WindowsSdkDir%Include\shared" 6 | @set SOURCES=main.cpp ..\..\backends\imgui_impl_dx12.cpp ..\..\backends\imgui_impl_win32.cpp ..\..\imgui*.cpp 7 | @set LIBS=d3d12.lib d3dcompiler.lib dxgi.lib 8 | mkdir Debug 9 | cl /nologo /Zi /MD %INCLUDES% /D ImTextureID=ImU64 /D UNICODE /D _UNICODE %SOURCES% /Fe%OUT_DIR%/%OUT_EXE%.exe /Fo%OUT_DIR%/ /link %LIBS% 10 | -------------------------------------------------------------------------------- /FlowCV_SDK/third-party/imgui/examples/example_win32_directx9/build_win32.bat: -------------------------------------------------------------------------------- 1 | @REM Build for Visual Studio compiler. Run your copy of vcvars32.bat or vcvarsall.bat to setup command-line compiler. 2 | @set OUT_DIR=Debug 3 | @set OUT_EXE=example_win32_directx9 4 | @set INCLUDES=/I..\.. /I..\..\backends /I "%DXSDK_DIR%/Include" 5 | @set SOURCES=main.cpp ..\..\backends\imgui_impl_dx9.cpp ..\..\backends\imgui_impl_win32.cpp ..\..\imgui*.cpp 6 | @set LIBS=/LIBPATH:"%DXSDK_DIR%/Lib/x86" d3d9.lib 7 | mkdir %OUT_DIR% 8 | cl /nologo /Zi /MD %INCLUDES% /D UNICODE /D _UNICODE %SOURCES% /Fe%OUT_DIR%/%OUT_EXE%.exe /Fo%OUT_DIR%/ /link %LIBS% 9 | -------------------------------------------------------------------------------- /FlowCV_SDK/third-party/imgui/examples/libs/glfw/COPYING.txt: -------------------------------------------------------------------------------- 1 | Copyright (c) 2002-2006 Marcus Geelnard 2 | Copyright (c) 2006-2010 Camilla Berglund 3 | 4 | This software is provided 'as-is', without any express or implied 5 | warranty. In no event will the authors be held liable for any damages 6 | arising from the use of this software. 7 | 8 | Permission is granted to anyone to use this software for any purpose, 9 | including commercial applications, and to alter it and redistribute it 10 | freely, subject to the following restrictions: 11 | 12 | 1. The origin of this software must not be misrepresented; you must not 13 | claim that you wrote the original software. If you use this software 14 | in a product, an acknowledgment in the product documentation would 15 | be appreciated but is not required. 16 | 17 | 2. Altered source versions must be plainly marked as such, and must not 18 | be misrepresented as being the original software. 19 | 20 | 3. This notice may not be removed or altered from any source 21 | distribution. 22 | 23 | -------------------------------------------------------------------------------- /FlowCV_SDK/third-party/imgui/examples/libs/glfw/lib-vc2019-32/glfw3.dll: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:944bc3279890b6b9f3dcbe0a4cbd75823cda00857699fa01f0c362a0a617b3f8 3 | size 195584 4 | -------------------------------------------------------------------------------- /FlowCV_SDK/third-party/imgui/examples/libs/glfw/lib-vc2019-32/glfw3.lib: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:91edca8491539c5f8acf8a861d0bbdcb4906097fbd994c062e12f5cedab12d05 3 | size 488754 4 | -------------------------------------------------------------------------------- /FlowCV_SDK/third-party/imgui/examples/libs/glfw/lib-vc2019-32/glfw3_mt.lib: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:25225a41b24e299ee13b38f1c253dec45ffa7487e11aa577477f793baac40196 3 | size 488520 4 | -------------------------------------------------------------------------------- /FlowCV_SDK/third-party/imgui/examples/libs/glfw/lib-vc2019-32/glfw3dll.lib: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:24285fc3c483ba46b84127b9e906ca5697689327e613b12bf0cb4d8f28a25e35 3 | size 30922 4 | -------------------------------------------------------------------------------- /FlowCV_SDK/third-party/imgui/examples/libs/glfw/lib-vc2019-64/glfw3.dll: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:7b7b1f51cd5eaff2d54a9252e6166e00bd9b303132e757fc1337e9e80867abd1 3 | size 214016 4 | -------------------------------------------------------------------------------- /FlowCV_SDK/third-party/imgui/examples/libs/glfw/lib-vc2019-64/glfw3.lib: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:fc51770d8bf926d9f4d91f4a0fc1c3c69e38a4b48a8c4f60917db60b37212d15 3 | size 624444 4 | -------------------------------------------------------------------------------- /FlowCV_SDK/third-party/imgui/examples/libs/glfw/lib-vc2019-64/glfw3_mt.lib: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:512b466d6fee2e355f0558fb75082101ec8b319f5c5b71e434fb49fd768d7469 3 | size 623882 4 | -------------------------------------------------------------------------------- /FlowCV_SDK/third-party/imgui/examples/libs/glfw/lib-vc2019-64/glfw3dll.lib: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:7937b472803b7408253d24f127fd709caa2d13f46bc0778fa38ef97626147fbc 3 | size 30306 4 | -------------------------------------------------------------------------------- /FlowCV_SDK/third-party/imgui/examples/libs/usynergy/README.txt: -------------------------------------------------------------------------------- 1 | 2 | uSynergy client -- Implementation for the embedded Synergy client library 3 | version 1.0.0, July 7th, 2012 4 | Copyright (c) 2012 Alex Evans 5 | 6 | This is a copy of the files once found at: 7 | https://github.com/symless/synergy-core/tree/790d108a56ada9caad8e56ff777d444485a69da9/src/micro 8 | 9 | -------------------------------------------------------------------------------- /FlowCV_SDK/third-party/imgui/misc/README.txt: -------------------------------------------------------------------------------- 1 | 2 | misc/cpp/ 3 | InputText() wrappers for C++ standard library (STL) type: std::string. 4 | This is also an example of how you may wrap your own similar types. 5 | 6 | misc/debuggers/ 7 | Helper files for popular debuggers. 8 | With the .natvis file, types like ImVector<> will be displayed nicely in Visual Studio debugger. 9 | 10 | misc/fonts/ 11 | Fonts loading/merging instructions (e.g. How to handle glyph ranges, how to merge icons fonts). 12 | Command line tool "binary_to_compressed_c" to create compressed arrays to embed data in source code. 13 | Suggested fonts and links. 14 | 15 | misc/freetype/ 16 | Font atlas builder/rasterizer using FreeType instead of stb_truetype. 17 | Benefit from better FreeType rasterization, in particular for small fonts. 18 | 19 | misc/single_file/ 20 | Single-file header stub. 21 | We use this to validate compiling all *.cpp files in a same compilation unit. 22 | Users of that technique (also called "Unity builds") can generally provide this themselves, 23 | so we don't really recommend you use this in your projects. 24 | -------------------------------------------------------------------------------- /FlowCV_SDK/third-party/imgui/misc/cpp/README.txt: -------------------------------------------------------------------------------- 1 | 2 | imgui_stdlib.h + imgui_stdlib.cpp 3 | InputText() wrappers for C++ standard library (STL) type: std::string. 4 | This is also an example of how you may wrap your own similar types. 5 | 6 | imgui_scoped.h 7 | [Experimental, not currently in main repository] 8 | Additional header file with some RAII-style wrappers for common Dear ImGui functions. 9 | Try by merging: https://github.com/ocornut/imgui/pull/2197 10 | Discuss at: https://github.com/ocornut/imgui/issues/2096 11 | 12 | See more C++ related extension on Wiki 13 | https://github.com/ocornut/imgui/wiki/Useful-Extensions#cness 14 | -------------------------------------------------------------------------------- /FlowCV_SDK/third-party/imgui/misc/debuggers/README.txt: -------------------------------------------------------------------------------- 1 | 2 | HELPER FILES FOR POPULAR DEBUGGERS 3 | 4 | imgui.gdb 5 | GDB: disable stepping into trivial functions. 6 | (read comments inside file for details) 7 | 8 | imgui.natstepfilter 9 | Visual Studio Debugger: disable stepping into trivial functions. 10 | (read comments inside file for details) 11 | 12 | imgui.natvis 13 | Visual Studio Debugger: describe Dear ImGui types for better display. 14 | With this, types like ImVector<> will be displayed nicely in the debugger. 15 | (read comments inside file for details) 16 | 17 | -------------------------------------------------------------------------------- /FlowCV_SDK/third-party/imgui/misc/debuggers/imgui.gdb: -------------------------------------------------------------------------------- 1 | # GDB configuration to aid debugging experience 2 | 3 | # To enable these customizations edit $HOME/.gdbinit (or ./.gdbinit if local gdbinit is enabled) and add: 4 | # add-auto-load-safe-path /path/to/imgui.gdb 5 | # source /path/to/imgui.gdb 6 | # 7 | # More Information at: 8 | # * https://sourceware.org/gdb/current/onlinedocs/gdb/gdbinit-man.html 9 | # * https://sourceware.org/gdb/current/onlinedocs/gdb/Init-File-in-the-Current-Directory.html#Init-File-in-the-Current-Directory 10 | 11 | # Disable stepping into trivial functions 12 | skip -rfunction Im(Vec2|Vec4|Strv|Vector|Span)::.+ 13 | -------------------------------------------------------------------------------- /FlowCV_SDK/third-party/imgui/misc/fonts/Cousine-Regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FlowCV-org/FlowCV/b09c48edcc9437253da6049365d319fe036eff61/FlowCV_SDK/third-party/imgui/misc/fonts/Cousine-Regular.ttf -------------------------------------------------------------------------------- /FlowCV_SDK/third-party/imgui/misc/fonts/DroidSans.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FlowCV-org/FlowCV/b09c48edcc9437253da6049365d319fe036eff61/FlowCV_SDK/third-party/imgui/misc/fonts/DroidSans.ttf -------------------------------------------------------------------------------- /FlowCV_SDK/third-party/imgui/misc/fonts/Karla-Regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FlowCV-org/FlowCV/b09c48edcc9437253da6049365d319fe036eff61/FlowCV_SDK/third-party/imgui/misc/fonts/Karla-Regular.ttf -------------------------------------------------------------------------------- /FlowCV_SDK/third-party/imgui/misc/fonts/ProggyClean.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FlowCV-org/FlowCV/b09c48edcc9437253da6049365d319fe036eff61/FlowCV_SDK/third-party/imgui/misc/fonts/ProggyClean.ttf -------------------------------------------------------------------------------- /FlowCV_SDK/third-party/imgui/misc/fonts/ProggyTiny.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FlowCV-org/FlowCV/b09c48edcc9437253da6049365d319fe036eff61/FlowCV_SDK/third-party/imgui/misc/fonts/ProggyTiny.ttf -------------------------------------------------------------------------------- /FlowCV_SDK/third-party/imgui/misc/fonts/Roboto-Medium.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FlowCV-org/FlowCV/b09c48edcc9437253da6049365d319fe036eff61/FlowCV_SDK/third-party/imgui/misc/fonts/Roboto-Medium.ttf -------------------------------------------------------------------------------- /FlowCV_SDK/third-party/imgui/misc/single_file/imgui_single_file.h: -------------------------------------------------------------------------------- 1 | // dear imgui: single-file wrapper include 2 | // We use this to validate compiling all *.cpp files in a same compilation unit. 3 | // Users of that technique (also called "Unity builds") can generally provide this themselves, 4 | // so we don't really recommend you use this in your projects. 5 | 6 | // Do this: 7 | // #define IMGUI_IMPLEMENTATION 8 | // Before you include this file in *one* C++ file to create the implementation. 9 | // Using this in your project will leak the contents of imgui_internal.h and ImVec2 operators in this compilation unit. 10 | #include "../../imgui.h" 11 | 12 | #ifdef IMGUI_IMPLEMENTATION 13 | #include "../../imgui.cpp" 14 | #include "../../imgui_demo.cpp" 15 | #include "../../imgui_draw.cpp" 16 | #include "../../imgui_tables.cpp" 17 | #include "../../imgui_widgets.cpp" 18 | #endif 19 | -------------------------------------------------------------------------------- /FlowCV_SDK/third-party/imgui_wrapper/gl_helpers/EBO.cpp: -------------------------------------------------------------------------------- 1 | #include"EBO.h" 2 | 3 | void EBO::Set(GLuint *indices, GLsizeiptr size, bool dynamic_draw) 4 | { 5 | glGenBuffers(1, &ID); 6 | glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, ID); 7 | if (!dynamic_draw) 8 | glBufferData(GL_ELEMENT_ARRAY_BUFFER, size, indices, GL_STATIC_DRAW); 9 | else 10 | glBufferData(GL_ELEMENT_ARRAY_BUFFER, size, indices, GL_DYNAMIC_DRAW); 11 | } 12 | 13 | // Binds the EBO 14 | void EBO::Bind() 15 | { 16 | glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, ID); 17 | } 18 | 19 | // Unbinds the EBO 20 | void EBO::Unbind() 21 | { 22 | glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, 0); 23 | } 24 | 25 | // Deletes the EBO 26 | void EBO::Delete() 27 | { 28 | glDeleteBuffers(1, &ID); 29 | } -------------------------------------------------------------------------------- /FlowCV_SDK/third-party/imgui_wrapper/gl_helpers/EBO.h: -------------------------------------------------------------------------------- 1 | #ifndef EBO_CLASS_H 2 | #define EBO_CLASS_H 3 | 4 | #include 5 | 6 | class EBO 7 | { 8 | public: 9 | // ID reference of Elements Buffer Object 10 | GLuint ID; 11 | 12 | // Generate Element Buffer and link to indices 13 | void Set(GLuint* indices, GLsizeiptr size, bool dynamic_draw = false); 14 | // Binds the EBO 15 | void Bind(); 16 | // Unbinds the EBO 17 | void Unbind(); 18 | // Deletes the EBO 19 | void Delete(); 20 | }; 21 | 22 | #endif -------------------------------------------------------------------------------- /FlowCV_SDK/third-party/imgui_wrapper/gl_helpers/VAO.cpp: -------------------------------------------------------------------------------- 1 | #include"VAO.h" 2 | 3 | void VAO::Set() 4 | { 5 | glGenVertexArrays(1, &ID); 6 | } 7 | 8 | // Links a VBO Attribute such as a position or color to the VAO 9 | void VAO::LinkAttrib(std::shared_ptr vbo, GLuint layout, GLuint numComponents, GLenum type, GLsizeiptr stride, void* offset) 10 | { 11 | vbo->Bind(); 12 | glVertexAttribPointer(layout, numComponents, type, GL_FALSE, stride, offset); 13 | glEnableVertexAttribArray(layout); 14 | vbo->Unbind(); 15 | } 16 | 17 | // Binds the VAO 18 | void VAO::Bind() 19 | { 20 | glBindVertexArray(ID); 21 | } 22 | 23 | // Unbinds the VAO 24 | void VAO::Unbind() 25 | { 26 | glBindVertexArray(0); 27 | } 28 | 29 | // Deletes the VAO 30 | void VAO::Delete() 31 | { 32 | glDeleteVertexArrays(1, &ID); 33 | } -------------------------------------------------------------------------------- /FlowCV_SDK/third-party/imgui_wrapper/gl_helpers/VAO.h: -------------------------------------------------------------------------------- 1 | #ifndef VAO_CLASS_H 2 | #define VAO_CLASS_H 3 | 4 | #include 5 | #include 6 | #include"VBO.h" 7 | 8 | class VAO 9 | { 10 | public: 11 | // ID reference for the Vertex Array Object 12 | GLuint ID; 13 | 14 | void Set(); 15 | // Links a VBO Attribute such as a position or color to the VAO 16 | void LinkAttrib(std::shared_ptr vbo, GLuint layout, GLuint numComponents, GLenum type, GLsizeiptr stride, void* offset); 17 | // Binds the VAO 18 | void Bind(); 19 | // Unbinds the VAO 20 | void Unbind(); 21 | // Deletes the VAO 22 | void Delete(); 23 | }; 24 | 25 | #endif -------------------------------------------------------------------------------- /FlowCV_SDK/third-party/imgui_wrapper/gl_helpers/VBO.cpp: -------------------------------------------------------------------------------- 1 | #include"VBO.h" 2 | 3 | 4 | // Binds the VBO 5 | void VBO::Bind() 6 | { 7 | glBindBuffer(GL_ARRAY_BUFFER, ID); 8 | } 9 | 10 | // Unbinds the VBO 11 | void VBO::Unbind() 12 | { 13 | glBindBuffer(GL_ARRAY_BUFFER, 0); 14 | } 15 | 16 | // Deletes the VBO 17 | void VBO::Delete() 18 | { 19 | glDeleteBuffers(1, &ID); 20 | } 21 | 22 | void VBO::Set(GLfloat *vertices, GLsizeiptr size, bool dynamic_draw) 23 | { 24 | glGenBuffers(1, &ID); 25 | glBindBuffer(GL_ARRAY_BUFFER, ID); 26 | if (!dynamic_draw) 27 | glBufferData(GL_ARRAY_BUFFER, size, vertices, GL_STATIC_DRAW); 28 | else 29 | glBufferData(GL_ARRAY_BUFFER, size, vertices, GL_DYNAMIC_DRAW); 30 | } 31 | -------------------------------------------------------------------------------- /FlowCV_SDK/third-party/imgui_wrapper/gl_helpers/VBO.h: -------------------------------------------------------------------------------- 1 | #ifndef VBO_CLASS_H 2 | #define VBO_CLASS_H 3 | 4 | #include 5 | 6 | class VBO 7 | { 8 | public: 9 | // Reference ID of the Vertex Buffer Object 10 | GLuint ID; 11 | 12 | // Set Vertex Buffer and link it to vertices 13 | void Set(GLfloat* vertices, GLsizeiptr size, bool dynamic_draw = false); 14 | // Binds the VBO 15 | void Bind(); 16 | // Unbinds the VBO 17 | void Unbind(); 18 | // Deletes the VBO 19 | void Delete(); 20 | }; 21 | 22 | #endif -------------------------------------------------------------------------------- /FlowCV_SDK/third-party/imgui_wrapper/imgui_instance_helper.cpp: -------------------------------------------------------------------------------- 1 | // 2 | // Created by Richard on 1/10/2022. 3 | // 4 | #include "imgui_instance_helper.hpp" 5 | 6 | std::string CreateControlString(const char *text, const char *unique_name) 7 | { 8 | std::string idString = std::string(text); 9 | idString += "##"; 10 | idString += unique_name; 11 | 12 | return idString; 13 | } 14 | -------------------------------------------------------------------------------- /FlowCV_SDK/third-party/imgui_wrapper/imgui_instance_helper.hpp: -------------------------------------------------------------------------------- 1 | // 2 | // Helper Functions for ImGui when working with instances that might contain the same control names 3 | // 4 | 5 | #ifndef IMGUI_INSTANCE_HELPER_HPP_ 6 | #define IMGUI_INSTANCE_HELPER_HPP_ 7 | #include 8 | #include 9 | 10 | // Forward Declarations 11 | std::string CreateControlString(const char *text, const char *unique_name); 12 | 13 | #endif //IMGUI_INSTANCE_HELPER_HPP_ 14 | -------------------------------------------------------------------------------- /FlowCV_SDK/third-party/node-editor/docs/TODO.md: -------------------------------------------------------------------------------- 1 | In random order: 2 | * Documentation: Make one 3 | 4 | Done: 5 | * ~~ImGui: Factor out changes to ImGui to use vanilla version.~~ 6 | * ~~Editor: Fix variable naming (mainly add `m_` prefix)~~ 7 | * ~~Editor: Split NodeEditorImpl.cpp to multiple files, file has grown too big.~~ 8 | * ~~Editor: Factor out use of `picojson.h`~~ 9 | * ~~Editor: Move use of `` to optional code extensions~~ 10 | 11 | 12 | 13 | 14 | #57 - join `ax::NodeEditor::EditorContext` with `struct EditorContext` and remove `reinterpret_cast<>` -------------------------------------------------------------------------------- /FlowCV_SDK/third-party/node-editor/examples/application/include/application.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include 3 | 4 | ImTextureID Application_LoadTexture(const char* path); 5 | ImTextureID Application_CreateTexture(const void* data, int width, int height); 6 | void Application_DestroyTexture(ImTextureID texture); 7 | int Application_GetTextureWidth(ImTextureID texture); 8 | int Application_GetTextureHeight(ImTextureID texture); 9 | 10 | const char* Application_GetName(); 11 | void Application_Initialize(); 12 | void Application_Finalize(); 13 | void Application_Frame(); 14 | -------------------------------------------------------------------------------- /FlowCV_SDK/third-party/node-editor/examples/application/support/Icon.icns: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FlowCV-org/FlowCV/b09c48edcc9437253da6049365d319fe036eff61/FlowCV_SDK/third-party/node-editor/examples/application/support/Icon.icns -------------------------------------------------------------------------------- /FlowCV_SDK/third-party/node-editor/examples/application/support/Icon.ico: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:295cb9f6e64cc354f6540960c82f7d2730e39854ef39da908e1db602968b128f 3 | size 39257 4 | -------------------------------------------------------------------------------- /FlowCV_SDK/third-party/node-editor/examples/application/support/Icon.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:fa1fb2f51b1c55ffe59a60de4c5e8efaa60a633b4db96aac116d82826a83a50f 3 | size 52666 4 | -------------------------------------------------------------------------------- /FlowCV_SDK/third-party/node-editor/examples/application/support/Resource.rc.in: -------------------------------------------------------------------------------- 1 | #define IDI_APPLICATION 32512 2 | 3 | IDI_APPLICATION ICON "${ApplicationIcon}" 4 | -------------------------------------------------------------------------------- /FlowCV_SDK/third-party/node-editor/examples/basic-interaction-example/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | add_example_executable(basic-interaction-example 2 | basic-interaction-example.cpp 3 | ) -------------------------------------------------------------------------------- /FlowCV_SDK/third-party/node-editor/examples/blueprints-example/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | add_example_executable(blueprints-example 2 | blueprints-example.cpp 3 | utilities/builders.h 4 | utilities/drawing.h 5 | utilities/widgets.h 6 | utilities/builders.cpp 7 | utilities/drawing.cpp 8 | utilities/widgets.cpp 9 | ) 10 | -------------------------------------------------------------------------------- /FlowCV_SDK/third-party/node-editor/examples/blueprints-example/data/BlueprintBackground.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:357fc753233be3d0c599679cc01052017452da21b86f6615e277acb63411e9d1 3 | size 5513 4 | -------------------------------------------------------------------------------- /FlowCV_SDK/third-party/node-editor/examples/blueprints-example/data/ic_restore_white_24dp.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:aadcb576d827aef65d4a789e80a7a6f1780b26ee969702808b0c8eb1e56fadad 3 | size 332 4 | -------------------------------------------------------------------------------- /FlowCV_SDK/third-party/node-editor/examples/blueprints-example/data/ic_save_white_24dp.png: -------------------------------------------------------------------------------- 1 | version https://git-lfs.github.com/spec/v1 2 | oid sha256:dee85f964f6d242e2b8a37941012ad111cbff40c58714f9c4adfc190b4920379 3 | size 168 4 | -------------------------------------------------------------------------------- /FlowCV_SDK/third-party/node-editor/examples/blueprints-example/utilities/drawing.h: -------------------------------------------------------------------------------- 1 | # pragma once 2 | # include 3 | 4 | namespace ax { 5 | namespace Drawing { 6 | 7 | enum class IconType: ImU32 { Flow, Circle, Square, Grid, RoundSquare, Diamond }; 8 | 9 | void DrawIcon(ImDrawList* drawList, const ImVec2& a, const ImVec2& b, IconType type, bool filled, ImU32 color, ImU32 innerColor); 10 | 11 | } // namespace Drawing 12 | } // namespace ax -------------------------------------------------------------------------------- /FlowCV_SDK/third-party/node-editor/examples/blueprints-example/utilities/widgets.cpp: -------------------------------------------------------------------------------- 1 | # include "widgets.h" 2 | # define IMGUI_DEFINE_MATH_OPERATORS 3 | # include 4 | 5 | void ax::Widgets::Icon(const ImVec2& size, IconType type, bool filled, const ImVec4& color/* = ImVec4(1, 1, 1, 1)*/, const ImVec4& innerColor/* = ImVec4(0, 0, 0, 0)*/) 6 | { 7 | if (ImGui::IsRectVisible(size)) 8 | { 9 | auto cursorPos = ImGui::GetCursorScreenPos(); 10 | auto drawList = ImGui::GetWindowDrawList(); 11 | ax::Drawing::DrawIcon(drawList, cursorPos, cursorPos + size, type, filled, ImColor(color), ImColor(innerColor)); 12 | } 13 | 14 | ImGui::Dummy(size); 15 | } 16 | 17 | -------------------------------------------------------------------------------- /FlowCV_SDK/third-party/node-editor/examples/blueprints-example/utilities/widgets.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include 3 | #include "drawing.h" 4 | 5 | namespace ax { 6 | namespace Widgets { 7 | 8 | using Drawing::IconType; 9 | 10 | void Icon(const ImVec2& size, IconType type, bool filled, const ImVec4& color = ImVec4(1, 1, 1, 1), const ImVec4& innerColor = ImVec4(0, 0, 0, 0)); 11 | 12 | } // namespace Widgets 13 | } // namespace ax -------------------------------------------------------------------------------- /FlowCV_SDK/third-party/node-editor/examples/canvas-example/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | add_example_executable(canvas-example 2 | canvas-example.cpp 3 | ) 4 | 5 | #target_link_libraries(Canvas PRIVATE imgui_canvas) -------------------------------------------------------------------------------- /FlowCV_SDK/third-party/node-editor/examples/simple-example/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | add_example_executable(simple-example 2 | simple-example.cpp 3 | ) -------------------------------------------------------------------------------- /FlowCV_SDK/third-party/node-editor/external/ScopeGuard/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | project(ScopeGuard) 2 | 3 | add_library(ScopeGuard INTERFACE) 4 | 5 | set(_ScopeGuard_Sources 6 | ${CMAKE_CURRENT_SOURCE_DIR}/ScopeGuard.h 7 | ) 8 | 9 | target_include_directories(ScopeGuard INTERFACE ${CMAKE_CURRENT_SOURCE_DIR}) 10 | target_sources(ScopeGuard INTERFACE ${_ScopeGuard_Sources}) 11 | 12 | source_group("ThirdParty\\ScopeGuard" FILES ${_ScopeGuard_Sources}) -------------------------------------------------------------------------------- /FlowCV_SDK/third-party/node-editor/external/stb_image/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | project(stb_image) 2 | 3 | add_library(stb_image INTERFACE) 4 | 5 | set(_stb_image_Sources 6 | ${CMAKE_CURRENT_SOURCE_DIR}/stb_image.h 7 | ) 8 | 9 | target_include_directories(stb_image INTERFACE ${CMAKE_CURRENT_SOURCE_DIR}) 10 | target_sources(stb_image INTERFACE ${_stb_image_Sources}) 11 | 12 | source_group("ThirdParty\\stb_image" FILES ${_stb_image_Sources}) -------------------------------------------------------------------------------- /FlowCV_SDK/third-party/node-editor/misc/cmake-modules/FindScopeGuard.cmake: -------------------------------------------------------------------------------- 1 | if (TARGET ScopeGuard) 2 | return() 3 | endif() 4 | 5 | set(_ScopeGuard_SourceDir ${IMGUI_NODE_EDITOR_ROOT_DIR}/external/ScopeGuard) 6 | set(_ScopeGuard_BinaryDir ${CMAKE_BINARY_DIR}/external/ScopeGuard) 7 | 8 | add_subdirectory(${_ScopeGuard_SourceDir} ${_ScopeGuard_BinaryDir}) 9 | 10 | include(${CMAKE_ROOT}/Modules/FindPackageHandleStandardArgs.cmake) 11 | 12 | find_package_handle_standard_args( 13 | ScopeGuard 14 | REQUIRED_VARS 15 | _ScopeGuard_SourceDir 16 | ) 17 | 18 | -------------------------------------------------------------------------------- /FlowCV_SDK/third-party/node-editor/misc/cmake-modules/Findgl3w.cmake: -------------------------------------------------------------------------------- 1 | if (TARGET gl3w) 2 | return() 3 | endif() 4 | 5 | set(_gl3w_SourceDir ${IMGUI_NODE_EDITOR_ROOT_DIR}/external/gl3w) 6 | set(_gl3w_BinaryDir ${CMAKE_BINARY_DIR}/external/gl3w) 7 | 8 | add_subdirectory(${_gl3w_SourceDir} ${_gl3w_BinaryDir}) 9 | 10 | include(${CMAKE_ROOT}/Modules/FindPackageHandleStandardArgs.cmake) 11 | 12 | find_package_handle_standard_args( 13 | gl3w 14 | REQUIRED_VARS 15 | _gl3w_SourceDir 16 | ) 17 | 18 | -------------------------------------------------------------------------------- /FlowCV_SDK/third-party/node-editor/misc/cmake-modules/Findimgui.cmake: -------------------------------------------------------------------------------- 1 | if (TARGET imgui) 2 | return() 3 | endif() 4 | 5 | set(_imgui_SourceDir ${IMGUI_NODE_EDITOR_ROOT_DIR}/external/imgui) 6 | set(_imgui_BinaryDir ${CMAKE_BINARY_DIR}/external/imgui) 7 | 8 | add_subdirectory(${_imgui_SourceDir} ${_imgui_BinaryDir}) 9 | 10 | include(${CMAKE_ROOT}/Modules/FindPackageHandleStandardArgs.cmake) 11 | 12 | find_package_handle_standard_args( 13 | imgui 14 | REQUIRED_VARS 15 | _imgui_SourceDir 16 | ) 17 | 18 | -------------------------------------------------------------------------------- /FlowCV_SDK/third-party/node-editor/misc/cmake-modules/Findstb_image.cmake: -------------------------------------------------------------------------------- 1 | if (TARGET stb_image) 2 | return() 3 | endif() 4 | 5 | set(_stb_image_SourceDir ${IMGUI_NODE_EDITOR_ROOT_DIR}/external/stb_image) 6 | set(_stb_image_BinaryDir ${CMAKE_BINARY_DIR}/external/stb_image) 7 | 8 | add_subdirectory(${_stb_image_SourceDir} ${_stb_image_BinaryDir}) 9 | 10 | include(${CMAKE_ROOT}/Modules/FindPackageHandleStandardArgs.cmake) 11 | 12 | find_package_handle_standard_args( 13 | stb_image 14 | REQUIRED_VARS 15 | _stb_image_SourceDir 16 | ) 17 | 18 | -------------------------------------------------------------------------------- /FlowCV_SDK/third-party/tclap/AUTHORS: -------------------------------------------------------------------------------- 1 | 2 | original author: Michael E. Smoot 3 | invaluable contributions: Daniel Aarno 4 | more contributions: Erik Zeek 5 | more contributions: Fabien Carmagnac (Tinbergen-AM) 6 | outstanding editing: Carol Smoot 7 | -------------------------------------------------------------------------------- /FlowCV_SDK/third-party/tclap/README: -------------------------------------------------------------------------------- 1 | 2 | TCLAP - Templatized Command Line Argument Parser 3 | 4 | This is a simple C++ library that facilitates parsing command line 5 | arguments in a type independent manner. It doesn't conform exactly 6 | to either the GNU or POSIX standards, although it is close. See 7 | docs/manual.html for descriptions of how things work or look at the 8 | simple examples in the examples dir. 9 | 10 | To find out what the latest changes are read the NEWS file in this directory. 11 | 12 | 13 | Any and all feedback is welcome to: Mike Smoot 14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /Internal_Nodes/AbsDiff/abs_diff.hpp: -------------------------------------------------------------------------------- 1 | // 2 | // Plugin AbsDiff 3 | // 4 | 5 | #ifndef FLOWCV_PLUGIN_ABS_DIFF_HPP_ 6 | #define FLOWCV_PLUGIN_ABS_DIFF_HPP_ 7 | #include 8 | #include "FlowCV_Types.hpp" 9 | #include "imgui_wrapper.hpp" 10 | #include "imgui_opencv.hpp" 11 | #include "json.hpp" 12 | 13 | namespace DSPatch::DSPatchables 14 | { 15 | 16 | class AbsDiff final : public Component 17 | { 18 | public: 19 | AbsDiff(); 20 | void UpdateGui(void *context, int interface) override; 21 | bool HasGui(int interface) override; 22 | std::string GetState() override; 23 | void SetState(std::string &&json_serialized) override; 24 | 25 | protected: 26 | void Process_(SignalBus const &inputs, SignalBus &outputs) override; 27 | 28 | private: 29 | }; 30 | 31 | } // namespace DSPatch::DSPatchables 32 | 33 | #endif // FLOWCV_PLUGIN_ABS_DIFF_HPP_ 34 | -------------------------------------------------------------------------------- /Internal_Nodes/Add/add.hpp: -------------------------------------------------------------------------------- 1 | // 2 | // Plugin Add 3 | // 4 | 5 | #ifndef FLOWCV_PLUGIN_ADD_HPP_ 6 | #define FLOWCV_PLUGIN_ADD_HPP_ 7 | #include 8 | #include "FlowCV_Types.hpp" 9 | #include "imgui_wrapper.hpp" 10 | #include "imgui_opencv.hpp" 11 | #include "json.hpp" 12 | 13 | namespace DSPatch::DSPatchables 14 | { 15 | 16 | class Add final : public Component 17 | { 18 | public: 19 | Add(); 20 | void UpdateGui(void *context, int interface) override; 21 | bool HasGui(int interface) override; 22 | std::string GetState() override; 23 | void SetState(std::string &&json_serialized) override; 24 | 25 | protected: 26 | void Process_(SignalBus const &inputs, SignalBus &outputs) override; 27 | 28 | private: 29 | int mask_mode_; 30 | }; 31 | 32 | } // namespace DSPatch::DSPatchables 33 | 34 | #endif // FLOWCV_PLUGIN_ADD_HPP_ 35 | -------------------------------------------------------------------------------- /Internal_Nodes/AddWeighted/add_weighted.hpp: -------------------------------------------------------------------------------- 1 | // 2 | // Plugin AddWeighted 3 | // 4 | 5 | #ifndef FLOWCV_PLUGIN_ADD_WEIGHTED_HPP_ 6 | #define FLOWCV_PLUGIN_ADD_WEIGHTED_HPP_ 7 | #include 8 | #include "FlowCV_Types.hpp" 9 | #include "imgui_wrapper.hpp" 10 | #include "imgui_opencv.hpp" 11 | #include "json.hpp" 12 | 13 | namespace DSPatch::DSPatchables 14 | { 15 | 16 | class AddWeighted final : public Component 17 | { 18 | public: 19 | AddWeighted(); 20 | void UpdateGui(void *context, int interface) override; 21 | bool HasGui(int interface) override; 22 | std::string GetState() override; 23 | void SetState(std::string &&json_serialized) override; 24 | 25 | protected: 26 | void Process_(SignalBus const &inputs, SignalBus &outputs) override; 27 | 28 | private: 29 | float alpha_; 30 | float beta_; 31 | float gamma_; 32 | }; 33 | 34 | } // namespace DSPatch::DSPatchables 35 | 36 | #endif // FLOWCV_PLUGIN_ADD_WEIGHTED_HPP_ 37 | -------------------------------------------------------------------------------- /Internal_Nodes/Bitwise/bitwise.hpp: -------------------------------------------------------------------------------- 1 | // 2 | // Plugin Bitwise 3 | // 4 | 5 | #ifndef FLOWCV_PLUGIN_BITWISE_HPP_ 6 | #define FLOWCV_PLUGIN_BITWISE_HPP_ 7 | #include 8 | #include "FlowCV_Types.hpp" 9 | #include "imgui_wrapper.hpp" 10 | #include "imgui_opencv.hpp" 11 | #include "json.hpp" 12 | 13 | namespace DSPatch::DSPatchables 14 | { 15 | 16 | class Bitwise final : public Component 17 | { 18 | public: 19 | Bitwise(); 20 | void UpdateGui(void *context, int interface) override; 21 | bool HasGui(int interface) override; 22 | std::string GetState() override; 23 | void SetState(std::string &&json_serialized) override; 24 | 25 | protected: 26 | void Process_(SignalBus const &inputs, SignalBus &outputs) override; 27 | 28 | private: 29 | int bitwise_mode_; 30 | }; 31 | 32 | } // namespace DSPatch::DSPatchables 33 | 34 | #endif // FLOWCV_PLUGIN_BITWISE_HPP_ 35 | -------------------------------------------------------------------------------- /Internal_Nodes/BlobDetector/blob_detector.hpp: -------------------------------------------------------------------------------- 1 | // 2 | // Plugin BlobDetector 3 | // 4 | 5 | #ifndef FLOWCV_PLUGIN_BLOB_DETECTOR_HPP_ 6 | #define FLOWCV_PLUGIN_BLOB_DETECTOR_HPP_ 7 | #include 8 | #include "FlowCV_Types.hpp" 9 | #include "imgui_wrapper.hpp" 10 | #include "imgui_opencv.hpp" 11 | #include "json.hpp" 12 | 13 | namespace DSPatch::DSPatchables 14 | { 15 | 16 | class BlobDetector final : public Component 17 | { 18 | public: 19 | BlobDetector(); 20 | void UpdateGui(void *context, int interface) override; 21 | bool HasGui(int interface) override; 22 | std::string GetState() override; 23 | void SetState(std::string &&json_serialized) override; 24 | 25 | protected: 26 | void Process_(SignalBus const &inputs, SignalBus &outputs) override; 27 | 28 | private: 29 | ImVec4 blob_viz_color_; 30 | int blob_param_color_; 31 | int blob_param_repeat_; 32 | cv::SimpleBlobDetector::Params blob_params_; 33 | }; 34 | 35 | } // namespace DSPatch::DSPatchables 36 | 37 | #endif // FLOWCV_PLUGIN_BLOB_DETECTOR_HPP_ 38 | -------------------------------------------------------------------------------- /Internal_Nodes/Blur/blur.hpp: -------------------------------------------------------------------------------- 1 | // 2 | // Various OpenCV Blur Filters 3 | // 4 | 5 | #ifndef FLOWCV_BLUR_HPP_ 6 | #define FLOWCV_BLUR_HPP_ 7 | #include 8 | #include 9 | #include 10 | #include "imgui_wrapper.hpp" 11 | #include "imgui_opencv.hpp" 12 | #include "json.hpp" 13 | 14 | namespace DSPatch::DSPatchables 15 | { 16 | 17 | class Blur final : public Component 18 | { 19 | public: 20 | Blur(); 21 | void UpdateGui(void *context, int interface) override; 22 | bool HasGui(int interface) override; 23 | std::string GetState() override; 24 | void SetState(std::string &&json_serialized) override; 25 | 26 | protected: 27 | void Process_(SignalBus const &inputs, SignalBus &outputs) override; 28 | 29 | private: 30 | std::mutex mutex_lock_; 31 | FlowCV::FlowCV_Properties props_; 32 | }; 33 | 34 | } // namespace DSPatch::DSPatchables 35 | 36 | #endif // FLOWCV_GAUSSIAN_BLUR_HPP_ 37 | -------------------------------------------------------------------------------- /Internal_Nodes/Canny/canny.hpp: -------------------------------------------------------------------------------- 1 | // 2 | // Plugin Canny 3 | // 4 | 5 | #ifndef FLOWCV_PLUGIN_CANNY_HPP_ 6 | #define FLOWCV_PLUGIN_CANNY_HPP_ 7 | #include 8 | #include "FlowCV_Types.hpp" 9 | #include "FlowCV_Properties.hpp" 10 | #include "imgui_wrapper.hpp" 11 | #include "imgui_opencv.hpp" 12 | #include "json.hpp" 13 | 14 | namespace DSPatch::DSPatchables 15 | { 16 | 17 | class CannyFilter final : public Component 18 | { 19 | public: 20 | CannyFilter(); 21 | void UpdateGui(void *context, int interface) override; 22 | bool HasGui(int interface) override; 23 | std::string GetState() override; 24 | void SetState(std::string &&json_serialized) override; 25 | 26 | protected: 27 | void Process_(SignalBus const &inputs, SignalBus &outputs) override; 28 | 29 | private: 30 | FlowCV::FlowCV_Properties props_; 31 | }; 32 | 33 | } // namespace DSPatch::DSPatchables 34 | 35 | #endif // FLOWCV_PLUGIN_CANNY_HPP_ 36 | -------------------------------------------------------------------------------- /Internal_Nodes/ColorReduce/color_reduce.hpp: -------------------------------------------------------------------------------- 1 | // 2 | // Plugin ColorReduce 3 | // 4 | 5 | #ifndef FLOWCV_PLUGIN_COLOR_REDUCE_HPP_ 6 | #define FLOWCV_PLUGIN_COLOR_REDUCE_HPP_ 7 | #include 8 | #include "FlowCV_Types.hpp" 9 | #include "imgui_wrapper.hpp" 10 | #include "imgui_opencv.hpp" 11 | #include "json.hpp" 12 | 13 | namespace DSPatch::DSPatchables 14 | { 15 | 16 | class ColorReduce final : public Component 17 | { 18 | public: 19 | ColorReduce(); 20 | void UpdateGui(void *context, int interface) override; 21 | bool HasGui(int interface) override; 22 | std::string GetState() override; 23 | void SetState(std::string &&json_serialized) override; 24 | 25 | protected: 26 | void Process_(SignalBus const &inputs, SignalBus &outputs) override; 27 | 28 | private: 29 | int div_; 30 | }; 31 | 32 | } // namespace DSPatch::DSPatchables 33 | 34 | #endif // FLOWCV_PLUGIN_COLOR_REDUCE_HPP_ 35 | -------------------------------------------------------------------------------- /Internal_Nodes/Colorcorrect/ColorCorrect.hpp: -------------------------------------------------------------------------------- 1 | // 2 | // Plugin Colorcorrect 3 | // 4 | 5 | #ifndef FLOWCV_PLUGIN_COLORCORRECT_HPP_ 6 | #define FLOWCV_PLUGIN_COLORCORRECT_HPP_ 7 | #include 8 | #include "FlowCV_Types.hpp" 9 | #include "imgui_wrapper.hpp" 10 | #include "imgui_opencv.hpp" 11 | #include "json.hpp" 12 | 13 | namespace DSPatch::DSPatchables 14 | { 15 | 16 | class Colorcorrect final : public Component 17 | { 18 | public: 19 | Colorcorrect(); 20 | void UpdateGui(void *context, int interface) override; 21 | bool HasGui(int interface) override; 22 | std::string GetState() override; 23 | void SetState(std::string &&json_serialized) override; 24 | 25 | protected: 26 | void Process_(SignalBus const &inputs, SignalBus &outputs) override; 27 | void UpdateLUT(); 28 | 29 | private: 30 | std::array lut_cache_; 31 | ImVec4 color_range_low_; 32 | ImVec4 color_range_high_; 33 | float brightness_; 34 | float contrast_; 35 | float gain_; 36 | float gamma_; 37 | float saturation_; 38 | }; 39 | 40 | } // namespace DSPatch::DSPatchables 41 | 42 | #endif // FLOWCV_PLUGIN_COLORCORRECT_HPP_ 43 | -------------------------------------------------------------------------------- /Internal_Nodes/Combine/combine.hpp: -------------------------------------------------------------------------------- 1 | // 2 | // Plugin Combine 3 | // 4 | 5 | #ifndef FLOWCV_PLUGIN_COMBINE_HPP_ 6 | #define FLOWCV_PLUGIN_COMBINE_HPP_ 7 | #include 8 | #include "FlowCV_Types.hpp" 9 | #include "FlowCV_Properties.hpp" 10 | #include "imgui_wrapper.hpp" 11 | #include "imgui_opencv.hpp" 12 | #include "json.hpp" 13 | 14 | namespace DSPatch::DSPatchables 15 | { 16 | 17 | class Combine final : public Component 18 | { 19 | public: 20 | Combine(); 21 | void UpdateGui(void *context, int interface) override; 22 | bool HasGui(int interface) override; 23 | std::string GetState() override; 24 | void SetState(std::string &&json_serialized) override; 25 | 26 | protected: 27 | void Process_(SignalBus const &inputs, SignalBus &outputs) override; 28 | 29 | private: 30 | }; 31 | 32 | } // namespace DSPatch::DSPatchables 33 | 34 | #endif // FLOWCV_PLUGIN_COMBINE_HPP_ 35 | -------------------------------------------------------------------------------- /Internal_Nodes/Contours/contours.hpp: -------------------------------------------------------------------------------- 1 | // 2 | // Plugin Contours 3 | // 4 | 5 | #ifndef FLOWCV_PLUGIN_CONTOURS_HPP_ 6 | #define FLOWCV_PLUGIN_CONTOURS_HPP_ 7 | #include 8 | #include "FlowCV_Types.hpp" 9 | #include "imgui_wrapper.hpp" 10 | #include "imgui_opencv.hpp" 11 | #include "json.hpp" 12 | 13 | namespace DSPatch::DSPatchables 14 | { 15 | 16 | class Contours final : public Component 17 | { 18 | public: 19 | Contours(); 20 | void UpdateGui(void *context, int interface) override; 21 | bool HasGui(int interface) override; 22 | std::string GetState() override; 23 | void SetState(std::string &&json_serialized) override; 24 | 25 | protected: 26 | void Process_(SignalBus const &inputs, SignalBus &outputs) override; 27 | 28 | private: 29 | int mode_; 30 | int method_; 31 | bool filter_by_area_; 32 | float area_min_; 33 | float area_max_; 34 | bool draw_contours_; 35 | bool fill_contours_; 36 | bool draw_bbox_; 37 | ImVec4 contour_color_; 38 | ImVec4 bbox_color_; 39 | }; 40 | 41 | } // namespace DSPatch::DSPatchables 42 | 43 | #endif // FLOWCV_PLUGIN_CONTOURS_HPP_ 44 | -------------------------------------------------------------------------------- /Internal_Nodes/ConvertColor/convert_color.hpp: -------------------------------------------------------------------------------- 1 | // 2 | // Plugin ConvertColor 3 | // 4 | 5 | #ifndef FLOWCV_PLUGIN_CONVERT_COLOR_HPP_ 6 | #define FLOWCV_PLUGIN_CONVERT_COLOR_HPP_ 7 | #include 8 | #include "FlowCV_Types.hpp" 9 | #include "imgui_wrapper.hpp" 10 | #include "imgui_opencv.hpp" 11 | #include "json.hpp" 12 | 13 | namespace DSPatch::DSPatchables 14 | { 15 | 16 | class ConvertColor final : public Component 17 | { 18 | public: 19 | ConvertColor(); 20 | void UpdateGui(void *context, int interface) override; 21 | bool HasGui(int interface) override; 22 | std::string GetState() override; 23 | void SetState(std::string &&json_serialized) override; 24 | 25 | protected: 26 | void Process_(SignalBus const &inputs, SignalBus &outputs) override; 27 | 28 | private: 29 | int cvt_mode_; 30 | bool channel_error_; 31 | }; 32 | 33 | } // namespace DSPatch::DSPatchables 34 | 35 | #endif // FLOWCV_PLUGIN_CONVERT_COLOR_HPP_ 36 | -------------------------------------------------------------------------------- /Internal_Nodes/CopyMakeBorder/copy_make_border.hpp: -------------------------------------------------------------------------------- 1 | // 2 | // Plugin CopyMakeBorder 3 | // 4 | 5 | #ifndef FLOWCV_PLUGIN_COPY_MAKE_BORDER_HPP_ 6 | #define FLOWCV_PLUGIN_COPY_MAKE_BORDER_HPP_ 7 | #include 8 | #include "FlowCV_Types.hpp" 9 | #include "imgui_wrapper.hpp" 10 | #include "imgui_opencv.hpp" 11 | #include "json.hpp" 12 | 13 | namespace DSPatch::DSPatchables 14 | { 15 | 16 | class CopyMakeBorder final : public Component 17 | { 18 | public: 19 | CopyMakeBorder(); 20 | void UpdateGui(void *context, int interface) override; 21 | bool HasGui(int interface) override; 22 | std::string GetState() override; 23 | void SetState(std::string &&json_serialized) override; 24 | 25 | protected: 26 | void Process_(SignalBus const &inputs, SignalBus &outputs) override; 27 | 28 | private: 29 | int add_width_; 30 | int add_height_; 31 | int border_type_; 32 | ImVec4 border_color_; 33 | bool center_; 34 | bool has_size_input_; 35 | }; 36 | 37 | } // namespace DSPatch::DSPatchables 38 | 39 | #endif // FLOWCV_PLUGIN_COPY_MAKE_BORDER_HPP_ 40 | -------------------------------------------------------------------------------- /Internal_Nodes/Crop/crop.hpp: -------------------------------------------------------------------------------- 1 | // 2 | // Plugin Crop 3 | // 4 | 5 | #ifndef FLOWCV_PLUGIN_CROP_HPP_ 6 | #define FLOWCV_PLUGIN_CROP_HPP_ 7 | #include 8 | #include "FlowCV_Types.hpp" 9 | #include "imgui_wrapper.hpp" 10 | #include "imgui_opencv.hpp" 11 | #include "json.hpp" 12 | 13 | namespace DSPatch::DSPatchables 14 | { 15 | 16 | class Crop final : public Component 17 | { 18 | public: 19 | Crop(); 20 | void UpdateGui(void *context, int interface) override; 21 | bool HasGui(int interface) override; 22 | std::string GetState() override; 23 | void SetState(std::string &&json_serialized) override; 24 | 25 | protected: 26 | void Process_(SignalBus const &inputs, SignalBus &outputs) override; 27 | 28 | private: 29 | cv::Rect crop_area_; 30 | bool has_json_data_; 31 | bool calc_total_bbox_; 32 | int json_bbox_index_; 33 | int adjust_size_x_; 34 | int adjust_size_y_; 35 | }; 36 | 37 | } // namespace DSPatch::DSPatchables 38 | 39 | #endif // FLOWCV_PLUGIN_CROP_HPP_ 40 | -------------------------------------------------------------------------------- /Internal_Nodes/DNN/dnn_backend_helper.hpp: -------------------------------------------------------------------------------- 1 | // 2 | // Helper for getting DNN Backend and Target Lists 3 | // 4 | 5 | #ifndef DNN_BACKEND_HELPER_HPP_ 6 | #define DNN_BACKEND_HELPER_HPP_ 7 | #include 8 | #include 9 | #include 10 | 11 | class DnnBackendListHelper 12 | { 13 | public: 14 | DnnBackendListHelper(); 15 | void UpdateTargetList(cv::dnn::Backend backend); 16 | std::vector> GetBackEndList(); 17 | std::vector> GetTargetList(); 18 | 19 | private: 20 | std::vector> backend_list_; 21 | std::vector> target_list_; 22 | }; 23 | 24 | #endif // DNN_BACKEND_HELPER_HPP_ 25 | -------------------------------------------------------------------------------- /Internal_Nodes/DiscreteCosineTransform/discrete_cosine_transform.hpp: -------------------------------------------------------------------------------- 1 | // 2 | // Plugin DiscreteCosineTransform 3 | // 4 | 5 | #ifndef FLOWCV_PLUGIN_DISCRETE_COSINE_TRANSFORM_HPP_ 6 | #define FLOWCV_PLUGIN_DISCRETE_COSINE_TRANSFORM_HPP_ 7 | #include 8 | #include "FlowCV_Types.hpp" 9 | #include "imgui_wrapper.hpp" 10 | #include "imgui_opencv.hpp" 11 | #include "json.hpp" 12 | 13 | namespace DSPatch::DSPatchables 14 | { 15 | 16 | class DiscreteCosineTransform final : public Component 17 | { 18 | public: 19 | DiscreteCosineTransform(); 20 | void UpdateGui(void *context, int interface) override; 21 | bool HasGui(int interface) override; 22 | std::string GetState() override; 23 | void SetState(std::string &&json_serialized) override; 24 | 25 | protected: 26 | void Process_(SignalBus const &inputs, SignalBus &outputs) override; 27 | 28 | private: 29 | int mode_; 30 | }; 31 | 32 | } // namespace DSPatch::DSPatchables 33 | 34 | #endif // FLOWCV_PLUGIN_DISCRETE_COSINE_TRANSFORM_HPP_ 35 | -------------------------------------------------------------------------------- /Internal_Nodes/DiscreteFourierTransform/discrete_fourier_transform.hpp: -------------------------------------------------------------------------------- 1 | // 2 | // Plugin DiscreteFourierTransform 3 | // 4 | 5 | #ifndef FLOWCV_PLUGIN_DISCRETE_FOURIER_TRANSFORM_HPP_ 6 | #define FLOWCV_PLUGIN_DISCRETE_FOURIER_TRANSFORM_HPP_ 7 | #include 8 | #include "FlowCV_Types.hpp" 9 | #include "imgui_wrapper.hpp" 10 | #include "imgui_opencv.hpp" 11 | #include "json.hpp" 12 | 13 | namespace DSPatch::DSPatchables 14 | { 15 | 16 | class DiscreteFourierTransform final : public Component 17 | { 18 | public: 19 | DiscreteFourierTransform(); 20 | void UpdateGui(void *context, int interface) override; 21 | bool HasGui(int interface) override; 22 | std::string GetState() override; 23 | void SetState(std::string &&json_serialized) override; 24 | 25 | protected: 26 | void Process_(SignalBus const &inputs, SignalBus &outputs) override; 27 | 28 | private: 29 | int mode_; 30 | bool log_view_; 31 | bool shift_dc_center_; 32 | }; 33 | 34 | } // namespace DSPatch::DSPatchables 35 | 36 | #endif // FLOWCV_PLUGIN_DISCRETE_FOURIER_TRANSFORM_HPP_ 37 | -------------------------------------------------------------------------------- /Internal_Nodes/Divide/divide.hpp: -------------------------------------------------------------------------------- 1 | // 2 | // Plugin Divide 3 | // 4 | 5 | #ifndef FLOWCV_PLUGIN_DIVIDE_HPP_ 6 | #define FLOWCV_PLUGIN_DIVIDE_HPP_ 7 | #include 8 | #include "FlowCV_Types.hpp" 9 | #include "imgui_wrapper.hpp" 10 | #include "imgui_opencv.hpp" 11 | #include "json.hpp" 12 | 13 | namespace DSPatch::DSPatchables 14 | { 15 | 16 | class Divide final : public Component 17 | { 18 | public: 19 | Divide(); 20 | void UpdateGui(void *context, int interface) override; 21 | bool HasGui(int interface) override; 22 | std::string GetState() override; 23 | void SetState(std::string &&json_serialized) override; 24 | 25 | protected: 26 | void Process_(SignalBus const &inputs, SignalBus &outputs) override; 27 | 28 | private: 29 | float scale_; 30 | }; 31 | 32 | } // namespace DSPatch::DSPatchables 33 | 34 | #endif // FLOWCV_PLUGIN_DIVIDE_HPP_ 35 | -------------------------------------------------------------------------------- /Internal_Nodes/DrawTools/draw_number.hpp: -------------------------------------------------------------------------------- 1 | // 2 | // Plugin DrawNumber 3 | // 4 | 5 | #ifndef FLOWCV_PLUGIN_DRAW_NUMBER_HPP_ 6 | #define FLOWCV_PLUGIN_DRAW_NUMBER_HPP_ 7 | #include 8 | #include "FlowCV_Types.hpp" 9 | #include "imgui_wrapper.hpp" 10 | #include "imgui_opencv.hpp" 11 | #include "json.hpp" 12 | 13 | namespace DSPatch::DSPatchables 14 | { 15 | 16 | class DrawNumber final : public Component 17 | { 18 | public: 19 | DrawNumber(); 20 | void UpdateGui(void *context, int interface) override; 21 | bool HasGui(int interface) override; 22 | std::string GetState() override; 23 | void SetState(std::string &&json_serialized) override; 24 | 25 | protected: 26 | void Process_(SignalBus const &inputs, SignalBus &outputs) override; 27 | 28 | private: 29 | cv::Point2i text_pos_; 30 | float text_scale_; 31 | ImVec4 text_color_; 32 | int text_thickness_; 33 | int text_font_; 34 | }; 35 | 36 | } // namespace DSPatch::DSPatchables 37 | 38 | #endif // FLOWCV_PLUGIN_DRAW_NUMBER_HPP_ 39 | -------------------------------------------------------------------------------- /Internal_Nodes/DrawTools/draw_text.hpp: -------------------------------------------------------------------------------- 1 | // 2 | // Plugin DrawText 3 | // 4 | 5 | #ifndef FLOWCV_PLUGIN_DRAW_TEXT_HPP_ 6 | #define FLOWCV_PLUGIN_DRAW_TEXT_HPP_ 7 | #include 8 | #include "FlowCV_Types.hpp" 9 | #include "imgui_wrapper.hpp" 10 | #include "imgui_opencv.hpp" 11 | #include "json.hpp" 12 | 13 | namespace DSPatch::DSPatchables 14 | { 15 | 16 | class DrawText final : public Component 17 | { 18 | public: 19 | DrawText(); 20 | void UpdateGui(void *context, int interface) override; 21 | bool HasGui(int interface) override; 22 | std::string GetState() override; 23 | void SetState(std::string &&json_serialized) override; 24 | 25 | protected: 26 | void Process_(SignalBus const &inputs, SignalBus &outputs) override; 27 | 28 | private: 29 | char text_[128]; 30 | cv::Point2i text_pos_; 31 | float text_scale_; 32 | ImVec4 text_color_; 33 | int text_thickness_; 34 | bool has_str_input_; 35 | int text_font_; 36 | }; 37 | 38 | } // namespace DSPatch::DSPatchables 39 | 40 | #endif // FLOWCV_PLUGIN_DRAW_TEXT_HPP_ 41 | -------------------------------------------------------------------------------- /Internal_Nodes/GetOptimalDft/get_optimal_dft.hpp: -------------------------------------------------------------------------------- 1 | // 2 | // Plugin GetOptimalDft 3 | // 4 | 5 | #ifndef FLOWCV_PLUGIN_GET_OPTIMAL_DFT_HPP_ 6 | #define FLOWCV_PLUGIN_GET_OPTIMAL_DFT_HPP_ 7 | #include 8 | #include "FlowCV_Types.hpp" 9 | #include "imgui_wrapper.hpp" 10 | #include "imgui_opencv.hpp" 11 | #include "json.hpp" 12 | 13 | namespace DSPatch::DSPatchables 14 | { 15 | 16 | class GetOptimalDft final : public Component 17 | { 18 | public: 19 | GetOptimalDft(); 20 | void UpdateGui(void *context, int interface) override; 21 | bool HasGui(int interface) override; 22 | std::string GetState() override; 23 | void SetState(std::string &&json_serialized) override; 24 | 25 | protected: 26 | void Process_(SignalBus const &inputs, SignalBus &outputs) override; 27 | 28 | private: 29 | bool has_size_input_; 30 | bool has_frame_input_; 31 | int width_; 32 | int height_; 33 | }; 34 | 35 | } // namespace DSPatch::DSPatchables 36 | 37 | #endif // FLOWCV_PLUGIN_GET_OPTIMAL_DFT_HPP_ 38 | -------------------------------------------------------------------------------- /Internal_Nodes/GetSize/get_size.hpp: -------------------------------------------------------------------------------- 1 | // 2 | // Plugin GetSize 3 | // 4 | 5 | #ifndef FLOWCV_PLUGIN_GET_SIZE_HPP_ 6 | #define FLOWCV_PLUGIN_GET_SIZE_HPP_ 7 | #include 8 | #include "FlowCV_Types.hpp" 9 | #include "imgui_wrapper.hpp" 10 | #include "imgui_opencv.hpp" 11 | #include "json.hpp" 12 | 13 | namespace DSPatch::DSPatchables 14 | { 15 | 16 | class GetSize final : public Component 17 | { 18 | public: 19 | GetSize(); 20 | void UpdateGui(void *context, int interface) override; 21 | bool HasGui(int interface) override; 22 | std::string GetState() override; 23 | void SetState(std::string &&json_serialized) override; 24 | 25 | protected: 26 | void Process_(SignalBus const &inputs, SignalBus &outputs) override; 27 | 28 | private: 29 | }; 30 | 31 | } // namespace DSPatch::DSPatchables 32 | 33 | #endif // FLOWCV_PLUGIN_GET_SIZE_HPP_ 34 | -------------------------------------------------------------------------------- /Internal_Nodes/JsonViewer/json_viewer.hpp: -------------------------------------------------------------------------------- 1 | // 2 | // Plugin JsonViewer 3 | // 4 | 5 | #ifndef FLOWCV_PLUGIN_JSON_VIEWER_HPP_ 6 | #define FLOWCV_PLUGIN_JSON_VIEWER_HPP_ 7 | #include 8 | #include "FlowCV_Types.hpp" 9 | #include "imgui_wrapper.hpp" 10 | #include "imgui_opencv.hpp" 11 | #include "json.hpp" 12 | 13 | namespace DSPatch::DSPatchables 14 | { 15 | 16 | class JsonViewer final : public Component 17 | { 18 | public: 19 | JsonViewer(); 20 | void UpdateGui(void *context, int interface) override; 21 | bool HasGui(int interface) override; 22 | std::string GetState() override; 23 | void SetState(std::string &&json_serialized) override; 24 | 25 | protected: 26 | void Process_(SignalBus const &inputs, SignalBus &outputs) override; 27 | 28 | private: 29 | nlohmann::json json_data_; 30 | std::mutex io_mutex_; 31 | bool show_raw_out_; 32 | }; 33 | 34 | } // namespace DSPatch::DSPatchables 35 | 36 | #endif // FLOWCV_PLUGIN_JSON_VIEWER_HPP_ 37 | -------------------------------------------------------------------------------- /Internal_Nodes/LaplacianFilter/laplacian_filter.hpp: -------------------------------------------------------------------------------- 1 | // 2 | // Plugin LaplacianFilter 3 | // 4 | 5 | #ifndef FLOWCV_PLUGIN_LAPLACIAN_FILTER_HPP_ 6 | #define FLOWCV_PLUGIN_LAPLACIAN_FILTER_HPP_ 7 | #include 8 | #include "FlowCV_Types.hpp" 9 | #include "imgui_wrapper.hpp" 10 | #include "imgui_opencv.hpp" 11 | #include "json.hpp" 12 | 13 | namespace DSPatch::DSPatchables 14 | { 15 | 16 | class LaplacianFilter final : public Component 17 | { 18 | public: 19 | LaplacianFilter(); 20 | void UpdateGui(void *context, int interface) override; 21 | bool HasGui(int interface) override; 22 | std::string GetState() override; 23 | void SetState(std::string &&json_serialized) override; 24 | 25 | protected: 26 | void Process_(SignalBus const &inputs, SignalBus &outputs) override; 27 | 28 | private: 29 | int out_depth_; 30 | int ksize_; 31 | float scale_; 32 | float delta_; 33 | }; 34 | 35 | } // namespace DSPatch::DSPatchables 36 | 37 | #endif // FLOWCV_PLUGIN_LAPLACIAN_FILTER_HPP_ 38 | -------------------------------------------------------------------------------- /Internal_Nodes/Magnitude/magnitude.hpp: -------------------------------------------------------------------------------- 1 | // 2 | // Plugin Magnitude 3 | // 4 | 5 | #ifndef FLOWCV_PLUGIN_MAGNITUDE_HPP_ 6 | #define FLOWCV_PLUGIN_MAGNITUDE_HPP_ 7 | #include 8 | #include "FlowCV_Types.hpp" 9 | #include "imgui_wrapper.hpp" 10 | #include "imgui_opencv.hpp" 11 | #include "json.hpp" 12 | 13 | namespace DSPatch::DSPatchables 14 | { 15 | 16 | class Magnitude final : public Component 17 | { 18 | public: 19 | Magnitude(); 20 | void UpdateGui(void *context, int interface) override; 21 | bool HasGui(int interface) override; 22 | std::string GetState() override; 23 | void SetState(std::string &&json_serialized) override; 24 | 25 | protected: 26 | void Process_(SignalBus const &inputs, SignalBus &outputs) override; 27 | 28 | private: 29 | }; 30 | 31 | } // namespace DSPatch::DSPatchables 32 | 33 | #endif // FLOWCV_PLUGIN_MAGNITUDE_HPP_ 34 | -------------------------------------------------------------------------------- /Internal_Nodes/Max/max.hpp: -------------------------------------------------------------------------------- 1 | // 2 | // Plugin Max 3 | // 4 | 5 | #ifndef FLOWCV_PLUGIN_MAX_HPP_ 6 | #define FLOWCV_PLUGIN_MAX_HPP_ 7 | #include 8 | #include "FlowCV_Types.hpp" 9 | #include "imgui_wrapper.hpp" 10 | #include "imgui_opencv.hpp" 11 | #include "json.hpp" 12 | 13 | namespace DSPatch::DSPatchables 14 | { 15 | 16 | class Max final : public Component 17 | { 18 | public: 19 | Max(); 20 | void UpdateGui(void *context, int interface) override; 21 | bool HasGui(int interface) override; 22 | std::string GetState() override; 23 | void SetState(std::string &&json_serialized) override; 24 | 25 | protected: 26 | void Process_(SignalBus const &inputs, SignalBus &outputs) override; 27 | 28 | private: 29 | }; 30 | 31 | } // namespace DSPatch::DSPatchables 32 | 33 | #endif // FLOWCV_PLUGIN_MAX_HPP_ 34 | -------------------------------------------------------------------------------- /Internal_Nodes/Mean/mean.hpp: -------------------------------------------------------------------------------- 1 | // 2 | // Plugin Mean 3 | // 4 | 5 | #ifndef FLOWCV_PLUGIN_MEAN_HPP_ 6 | #define FLOWCV_PLUGIN_MEAN_HPP_ 7 | #include 8 | #include "FlowCV_Types.hpp" 9 | #include "imgui_wrapper.hpp" 10 | #include "imgui_opencv.hpp" 11 | #include "json.hpp" 12 | 13 | namespace DSPatch::DSPatchables 14 | { 15 | 16 | class Mean final : public Component 17 | { 18 | public: 19 | Mean(); 20 | void UpdateGui(void *context, int interface) override; 21 | bool HasGui(int interface) override; 22 | std::string GetState() override; 23 | void SetState(std::string &&json_serialized) override; 24 | 25 | protected: 26 | void Process_(SignalBus const &inputs, SignalBus &outputs) override; 27 | 28 | private: 29 | float scale_; 30 | bool calc_mean_; 31 | bool calc_std_dev_; 32 | }; 33 | 34 | } // namespace DSPatch::DSPatchables 35 | 36 | #endif // FLOWCV_PLUGIN_MEAN_HPP_ 37 | -------------------------------------------------------------------------------- /Internal_Nodes/Min/min.hpp: -------------------------------------------------------------------------------- 1 | // 2 | // Plugin Min 3 | // 4 | 5 | #ifndef FLOWCV_PLUGIN_MIN_HPP_ 6 | #define FLOWCV_PLUGIN_MIN_HPP_ 7 | #include 8 | #include "FlowCV_Types.hpp" 9 | #include "imgui_wrapper.hpp" 10 | #include "imgui_opencv.hpp" 11 | #include "json.hpp" 12 | 13 | namespace DSPatch::DSPatchables 14 | { 15 | 16 | class Min final : public Component 17 | { 18 | public: 19 | Min(); 20 | void UpdateGui(void *context, int interface) override; 21 | bool HasGui(int interface) override; 22 | std::string GetState() override; 23 | void SetState(std::string &&json_serialized) override; 24 | 25 | protected: 26 | void Process_(SignalBus const &inputs, SignalBus &outputs) override; 27 | 28 | private: 29 | }; 30 | 31 | } // namespace DSPatch::DSPatchables 32 | 33 | #endif // FLOWCV_PLUGIN_MIN_HPP_ 34 | -------------------------------------------------------------------------------- /Internal_Nodes/Morphology/Morphology.hpp: -------------------------------------------------------------------------------- 1 | // 2 | // Plugin Morphology 3 | // 4 | 5 | #ifndef FLOWCV_PLUGIN_MORPHOLOGY_HPP_ 6 | #define FLOWCV_PLUGIN_MORPHOLOGY_HPP_ 7 | #include 8 | #include "FlowCV_Types.hpp" 9 | #include "imgui_wrapper.hpp" 10 | #include "imgui_opencv.hpp" 11 | #include "json.hpp" 12 | 13 | namespace DSPatch::DSPatchables 14 | { 15 | 16 | class Morphology final : public Component 17 | { 18 | public: 19 | Morphology(); 20 | void UpdateGui(void *context, int interface) override; 21 | bool HasGui(int interface) override; 22 | std::string GetState() override; 23 | void SetState(std::string &&json_serialized) override; 24 | 25 | protected: 26 | void Process_(SignalBus const &inputs, SignalBus &outputs) override; 27 | 28 | private: 29 | int op_; 30 | int iterations_; 31 | int border_type_; 32 | int morph_amt_; 33 | int morph_shape_; 34 | ImVec4 border_color_; 35 | }; 36 | 37 | } // namespace DSPatch::DSPatchables 38 | 39 | #endif // FLOWCV_PLUGIN_MORPHOLOGY_HPP_ 40 | -------------------------------------------------------------------------------- /Internal_Nodes/Multiply/multiply.hpp: -------------------------------------------------------------------------------- 1 | // 2 | // Plugin Multiply 3 | // 4 | 5 | #ifndef FLOWCV_PLUGIN_MULTIPLY_HPP_ 6 | #define FLOWCV_PLUGIN_MULTIPLY_HPP_ 7 | #include 8 | #include "FlowCV_Types.hpp" 9 | #include "imgui_wrapper.hpp" 10 | #include "imgui_opencv.hpp" 11 | #include "json.hpp" 12 | 13 | namespace DSPatch::DSPatchables 14 | { 15 | 16 | class Multiply final : public Component 17 | { 18 | public: 19 | Multiply(); 20 | void UpdateGui(void *context, int interface) override; 21 | bool HasGui(int interface) override; 22 | std::string GetState() override; 23 | void SetState(std::string &&json_serialized) override; 24 | 25 | protected: 26 | void Process_(SignalBus const &inputs, SignalBus &outputs) override; 27 | 28 | private: 29 | float scale_; 30 | }; 31 | 32 | } // namespace DSPatch::DSPatchables 33 | 34 | #endif // FLOWCV_PLUGIN_MULTIPLY_HPP_ 35 | -------------------------------------------------------------------------------- /Internal_Nodes/Normalize/normalize.hpp: -------------------------------------------------------------------------------- 1 | // 2 | // Plugin Normalize 3 | // 4 | 5 | #ifndef FLOWCV_PLUGIN_NORMALIZE_HPP_ 6 | #define FLOWCV_PLUGIN_NORMALIZE_HPP_ 7 | #include 8 | #include "FlowCV_Types.hpp" 9 | #include "imgui_wrapper.hpp" 10 | #include "imgui_opencv.hpp" 11 | #include "json.hpp" 12 | 13 | namespace DSPatch::DSPatchables 14 | { 15 | 16 | class Normalize final : public Component 17 | { 18 | public: 19 | Normalize(); 20 | void UpdateGui(void *context, int interface) override; 21 | bool HasGui(int interface) override; 22 | std::string GetState() override; 23 | void SetState(std::string &&json_serialized) override; 24 | 25 | protected: 26 | void Process_(SignalBus const &inputs, SignalBus &outputs) override; 27 | 28 | private: 29 | int norm_type_; 30 | float alpha_; 31 | float beta_; 32 | }; 33 | 34 | } // namespace DSPatch::DSPatchables 35 | 36 | #endif // FLOWCV_PLUGIN_NORMALIZE_HPP_ 37 | -------------------------------------------------------------------------------- /Internal_Nodes/PerspectiveWarp/perspective_warp.hpp: -------------------------------------------------------------------------------- 1 | // 2 | // Plugin Perspective Warp 3 | // 4 | 5 | #ifndef FLOWCV_PLUGIN_PERSPECTIVE_WARP_HPP_ 6 | #define FLOWCV_PLUGIN_PERSPECTIVE_WARP_HPP_ 7 | #include 8 | #include "FlowCV_Types.hpp" 9 | #include "imgui_wrapper.hpp" 10 | #include "imgui_opencv.hpp" 11 | #include "json.hpp" 12 | 13 | namespace DSPatch::DSPatchables 14 | { 15 | 16 | class PerspectiveWarp final : public Component 17 | { 18 | public: 19 | PerspectiveWarp(); 20 | void UpdateGui(void *context, int interface) override; 21 | bool HasGui(int interface) override; 22 | std::string GetState() override; 23 | void SetState(std::string &&json_serialized) override; 24 | 25 | protected: 26 | void Process_(SignalBus const &inputs, SignalBus &outputs) override; 27 | 28 | private: 29 | int corner_count_; 30 | bool is_poly_; 31 | float ratio_adjustment_; 32 | int interp_mode_; 33 | bool use_fixed_res_; 34 | int fixed_width_; 35 | int fixed_height_; 36 | }; 37 | 38 | } // namespace DSPatch::DSPatchables 39 | 40 | #endif // FLOWCV_PLUGIN_PERSPECTIVE_WARP_HPP_ 41 | -------------------------------------------------------------------------------- /Internal_Nodes/Resize/resize.hpp: -------------------------------------------------------------------------------- 1 | // 2 | // Plugin Resize 3 | // 4 | 5 | #ifndef FLOWCV_PLUGIN_RESIZE_HPP_ 6 | #define FLOWCV_PLUGIN_RESIZE_HPP_ 7 | #include 8 | #include "FlowCV_Types.hpp" 9 | #include "imgui_wrapper.hpp" 10 | #include "imgui_opencv.hpp" 11 | #include "json.hpp" 12 | 13 | namespace DSPatch::DSPatchables 14 | { 15 | 16 | class Resize final : public Component 17 | { 18 | public: 19 | Resize(); 20 | void UpdateGui(void *context, int interface) override; 21 | bool HasGui(int interface) override; 22 | std::string GetState() override; 23 | void SetState(std::string &&json_serialized) override; 24 | 25 | protected: 26 | void Process_(SignalBus const &inputs, SignalBus &outputs) override; 27 | 28 | private: 29 | bool has_size_input_; 30 | bool has_ref_frame_; 31 | int width_; 32 | int height_; 33 | int interp_mode_; 34 | }; 35 | 36 | } // namespace DSPatch::DSPatchables 37 | 38 | #endif // FLOWCV_PLUGIN_RESIZE_HPP_ 39 | -------------------------------------------------------------------------------- /Internal_Nodes/ScaleAbs/scale_abs.hpp: -------------------------------------------------------------------------------- 1 | // 2 | // Plugin ScaleAbs 3 | // 4 | 5 | #ifndef FLOWCV_PLUGIN_SCALE_ABS_HPP_ 6 | #define FLOWCV_PLUGIN_SCALE_ABS_HPP_ 7 | #include 8 | #include "FlowCV_Types.hpp" 9 | #include "imgui_wrapper.hpp" 10 | #include "imgui_opencv.hpp" 11 | #include "json.hpp" 12 | 13 | namespace DSPatch::DSPatchables 14 | { 15 | 16 | class ScaleAbs final : public Component 17 | { 18 | public: 19 | ScaleAbs(); 20 | void UpdateGui(void *context, int interface) override; 21 | bool HasGui(int interface) override; 22 | std::string GetState() override; 23 | void SetState(std::string &&json_serialized) override; 24 | 25 | protected: 26 | void Process_(SignalBus const &inputs, SignalBus &outputs) override; 27 | 28 | private: 29 | float alpha_; 30 | float beta_; 31 | }; 32 | 33 | } // namespace DSPatch::DSPatchables 34 | 35 | #endif // FLOWCV_PLUGIN_SCALE_ABS_HPP_ 36 | -------------------------------------------------------------------------------- /Internal_Nodes/ScharrFilter/scharr_filter.hpp: -------------------------------------------------------------------------------- 1 | // 2 | // Plugin ScharrFilter 3 | // 4 | 5 | #ifndef FLOWCV_PLUGIN_SCHARR_FILTER_HPP_ 6 | #define FLOWCV_PLUGIN_SCHARR_FILTER_HPP_ 7 | #include 8 | #include "FlowCV_Types.hpp" 9 | #include "imgui_wrapper.hpp" 10 | #include "imgui_opencv.hpp" 11 | #include "json.hpp" 12 | 13 | namespace DSPatch::DSPatchables 14 | { 15 | 16 | class ScharrFilter final : public Component 17 | { 18 | public: 19 | ScharrFilter(); 20 | void UpdateGui(void *context, int interface) override; 21 | bool HasGui(int interface) override; 22 | std::string GetState() override; 23 | void SetState(std::string &&json_serialized) override; 24 | 25 | protected: 26 | void Process_(SignalBus const &inputs, SignalBus &outputs) override; 27 | 28 | private: 29 | int out_depth_; 30 | int derivative_order_; 31 | float scale_; 32 | float delta_; 33 | }; 34 | 35 | } // namespace DSPatch::DSPatchables 36 | 37 | #endif // FLOWCV_PLUGIN_SCHARR_FILTER_HPP_ 38 | -------------------------------------------------------------------------------- /Internal_Nodes/Sharpen/sharpen.hpp: -------------------------------------------------------------------------------- 1 | // 2 | // Plugin Sharpen 3 | // 4 | 5 | #ifndef FLOWCV_PLUGIN_SHARPEN_HPP_ 6 | #define FLOWCV_PLUGIN_SHARPEN_HPP_ 7 | #include 8 | #include "FlowCV_Types.hpp" 9 | #include "FlowCV_Properties.hpp" 10 | #include "imgui_wrapper.hpp" 11 | #include "imgui_opencv.hpp" 12 | #include "json.hpp" 13 | 14 | namespace DSPatch::DSPatchables 15 | { 16 | 17 | class Sharpen final : public Component 18 | { 19 | public: 20 | Sharpen(); 21 | void UpdateGui(void *context, int interface) override; 22 | bool HasGui(int interface) override; 23 | std::string GetState() override; 24 | void SetState(std::string &&json_serialized) override; 25 | 26 | protected: 27 | void Process_(SignalBus const &inputs, SignalBus &outputs) override; 28 | 29 | private: 30 | FlowCV::FlowCV_Properties props_; 31 | }; 32 | 33 | } // namespace DSPatch::DSPatchables 34 | 35 | #endif // FLOWCV_PLUGIN_SHARPEN_HPP_ 36 | -------------------------------------------------------------------------------- /Internal_Nodes/SobelFilter/sobel_filter.hpp: -------------------------------------------------------------------------------- 1 | // 2 | // Plugin SobelFilter 3 | // 4 | 5 | #ifndef FLOWCV_PLUGIN_SOBEL_FILTER_HPP_ 6 | #define FLOWCV_PLUGIN_SOBEL_FILTER_HPP_ 7 | #include 8 | #include "FlowCV_Types.hpp" 9 | #include "imgui_wrapper.hpp" 10 | #include "imgui_opencv.hpp" 11 | #include "json.hpp" 12 | 13 | namespace DSPatch::DSPatchables 14 | { 15 | 16 | class SobelFilter final : public Component 17 | { 18 | public: 19 | SobelFilter(); 20 | void UpdateGui(void *context, int interface) override; 21 | bool HasGui(int interface) override; 22 | std::string GetState() override; 23 | void SetState(std::string &&json_serialized) override; 24 | 25 | protected: 26 | void Process_(SignalBus const &inputs, SignalBus &outputs) override; 27 | 28 | private: 29 | int out_depth_; 30 | int derivative_order_; 31 | int ksize_; 32 | float scale_; 33 | float delta_; 34 | }; 35 | 36 | } // namespace DSPatch::DSPatchables 37 | 38 | #endif // FLOWCV_PLUGIN_SOBEL_FILTER_HPP_ 39 | -------------------------------------------------------------------------------- /Internal_Nodes/Solid/solid.hpp: -------------------------------------------------------------------------------- 1 | // 2 | // Plugin Solid 3 | // 4 | 5 | #ifndef FLOWCV_PLUGIN_SOLID_HPP_ 6 | #define FLOWCV_PLUGIN_SOLID_HPP_ 7 | #include 8 | #include "FlowCV_Types.hpp" 9 | #include "imgui_wrapper.hpp" 10 | #include "imgui_opencv.hpp" 11 | #include "json.hpp" 12 | 13 | namespace DSPatch::DSPatchables 14 | { 15 | 16 | class Solid final : public Component 17 | { 18 | public: 19 | Solid(); 20 | void UpdateGui(void *context, int interface) override; 21 | bool HasGui(int interface) override; 22 | std::string GetState() override; 23 | void SetState(std::string &&json_serialized) override; 24 | 25 | protected: 26 | void Process_(SignalBus const &inputs, SignalBus &outputs) override; 27 | 28 | private: 29 | std::mutex io_mutex_; 30 | int width_{}; 31 | int height_{}; 32 | ImVec4 color_; 33 | int grey_value_; 34 | int fps_; 35 | int fps_index_; 36 | float fps_time_{}; 37 | std::chrono::steady_clock::time_point last_time_; 38 | bool is_color_; 39 | bool has_alpha_; 40 | }; 41 | 42 | } // namespace DSPatch::DSPatchables 43 | 44 | #endif // FLOWCV_PLUGIN_SOLID_HPP_ 45 | -------------------------------------------------------------------------------- /Internal_Nodes/Split/split.hpp: -------------------------------------------------------------------------------- 1 | // 2 | // Plugin Split 3 | // 4 | 5 | #ifndef FLOWCV_PLUGIN_SPLIT_HPP_ 6 | #define FLOWCV_PLUGIN_SPLIT_HPP_ 7 | #include 8 | #include "FlowCV_Types.hpp" 9 | #include "FlowCV_Properties.hpp" 10 | #include "imgui_wrapper.hpp" 11 | #include "imgui_opencv.hpp" 12 | #include "json.hpp" 13 | 14 | namespace DSPatch::DSPatchables 15 | { 16 | 17 | class Split final : public Component 18 | { 19 | public: 20 | Split(); 21 | void UpdateGui(void *context, int interface) override; 22 | bool HasGui(int interface) override; 23 | std::string GetState() override; 24 | void SetState(std::string &&json_serialized) override; 25 | 26 | protected: 27 | void Process_(SignalBus const &inputs, SignalBus &outputs) override; 28 | 29 | private: 30 | bool is_color_; 31 | }; 32 | 33 | } // namespace DSPatch::DSPatchables 34 | 35 | #endif // FLOWCV_PLUGIN_SPLIT_HPP_ 36 | -------------------------------------------------------------------------------- /Internal_Nodes/Subtract/subtract.hpp: -------------------------------------------------------------------------------- 1 | // 2 | // Plugin Subtract 3 | // 4 | 5 | #ifndef FLOWCV_PLUGIN_SUBTRACT_HPP_ 6 | #define FLOWCV_PLUGIN_SUBTRACT_HPP_ 7 | #include 8 | #include "FlowCV_Types.hpp" 9 | #include "imgui_wrapper.hpp" 10 | #include "imgui_opencv.hpp" 11 | #include "json.hpp" 12 | 13 | namespace DSPatch::DSPatchables 14 | { 15 | 16 | class Subtract final : public Component 17 | { 18 | public: 19 | Subtract(); 20 | void UpdateGui(void *context, int interface) override; 21 | bool HasGui(int interface) override; 22 | std::string GetState() override; 23 | void SetState(std::string &&json_serialized) override; 24 | 25 | protected: 26 | void Process_(SignalBus const &inputs, SignalBus &outputs) override; 27 | 28 | private: 29 | int mask_mode_; 30 | bool has_mask_; 31 | }; 32 | 33 | } // namespace DSPatch::DSPatchables 34 | 35 | #endif // FLOWCV_PLUGIN_SUBTRACT_HPP_ 36 | -------------------------------------------------------------------------------- /Internal_Nodes/Threshold/threshold.hpp: -------------------------------------------------------------------------------- 1 | // 2 | // Plugin Threshold 3 | // 4 | 5 | #ifndef FLOWCV_PLUGIN_THRESHOLD_HPP_ 6 | #define FLOWCV_PLUGIN_THRESHOLD_HPP_ 7 | #include 8 | #include "FlowCV_Types.hpp" 9 | #include "imgui_wrapper.hpp" 10 | #include "imgui_opencv.hpp" 11 | #include "json.hpp" 12 | 13 | namespace DSPatch::DSPatchables 14 | { 15 | 16 | class Threshold final : public Component 17 | { 18 | public: 19 | Threshold(); 20 | void UpdateGui(void *context, int interface) override; 21 | bool HasGui(int interface) override; 22 | std::string GetState() override; 23 | void SetState(std::string &&json_serialized) override; 24 | 25 | protected: 26 | void Process_(SignalBus const &inputs, SignalBus &outputs) override; 27 | 28 | private: 29 | int thresh_method_; 30 | int thresh_amt_; 31 | int thresh_type_; 32 | int adapt_type_; 33 | int adapt_thresh_; 34 | int adapt_block_; 35 | ImVec4 hsv_low_; 36 | ImVec4 hsv_high_; 37 | }; 38 | 39 | } // namespace DSPatch::DSPatchables 40 | 41 | #endif // FLOWCV_PLUGIN_THRESHOLD_HPP_ 42 | -------------------------------------------------------------------------------- /Internal_Nodes/Transform/transform.hpp: -------------------------------------------------------------------------------- 1 | // 2 | // Plugin Transform 3 | // 4 | 5 | #ifndef FLOWCV_PLUGIN_TRANSFORM_HPP_ 6 | #define FLOWCV_PLUGIN_TRANSFORM_HPP_ 7 | #include 8 | #include "FlowCV_Types.hpp" 9 | #include "FlowCV_Properties.hpp" 10 | #include "imgui_wrapper.hpp" 11 | #include "imgui_opencv.hpp" 12 | #include "json.hpp" 13 | 14 | namespace DSPatch::DSPatchables 15 | { 16 | 17 | class Transform final : public Component 18 | { 19 | public: 20 | Transform(); 21 | void UpdateGui(void *context, int interface) override; 22 | bool HasGui(int interface) override; 23 | std::string GetState() override; 24 | void SetState(std::string &&json_serialized) override; 25 | 26 | protected: 27 | void Process_(SignalBus const &inputs, SignalBus &outputs) override; 28 | 29 | private: 30 | FlowCV::FlowCV_Properties props_; 31 | std::mutex io_mutex_; 32 | }; 33 | 34 | } // namespace DSPatch::DSPatchables 35 | 36 | #endif // FLOWCV_PLUGIN_TRANSFORM_HPP_ 37 | -------------------------------------------------------------------------------- /Internal_Nodes/Viewer/viewer.hpp: -------------------------------------------------------------------------------- 1 | // 2 | // Created by Richard on 1/3/2022. 3 | // 4 | 5 | #ifndef FLOWCV_VIEWER_HPP_ 6 | #define FLOWCV_VIEWER_HPP_ 7 | #include 8 | #include 9 | #include "FlowCV_Types.hpp" 10 | #include "imgui_wrapper.hpp" 11 | #include "imgui_opencv.hpp" 12 | 13 | namespace DSPatch::DSPatchables 14 | { 15 | 16 | class Viewer final : public Component 17 | { 18 | public: 19 | Viewer(); 20 | void UpdateGui(void *context, int interface) override; 21 | bool HasGui(int interface) override; 22 | std::string GetState() override; 23 | void SetState(std::string &&json_serialized) override; 24 | 25 | protected: 26 | void Process_(SignalBus const &inputs, SignalBus &outputs) override; 27 | 28 | private: 29 | cv::Mat frame_; 30 | bool has_update_; 31 | ImGuiOpenCvWindow viewer_; 32 | std::mutex io_mutex_; 33 | std::chrono::steady_clock::time_point last_input_update_; 34 | }; 35 | 36 | } // namespace DSPatch::DSPatchables 37 | 38 | #endif // FLOWCV_VIEWER_HPP_ 39 | -------------------------------------------------------------------------------- /Managers/Internal_Node_Manager.hpp: -------------------------------------------------------------------------------- 1 | // 2 | // FlowCV Internal Component Manager 3 | // 4 | 5 | #ifndef FLOWCV_INTERNAL_NODE_MANAGER_HPP_ 6 | #define FLOWCV_INTERNAL_NODE_MANAGER_HPP_ 7 | #include 8 | #include 9 | #include "FlowCV_Types.hpp" 10 | 11 | namespace FlowCV 12 | { 13 | 14 | class InternalNodeManager 15 | { 16 | public: 17 | InternalNodeManager(); 18 | ~InternalNodeManager() = default; 19 | uint32_t NodeCount(); 20 | bool GetNodeDescription(uint32_t index, NodeDescription &nodeDesc); 21 | bool GetNodeDescription(const char *name, NodeDescription &nodeDesc); 22 | std::shared_ptr CreateNodeInstance(const char *name); 23 | bool HasNode(const char *name); 24 | 25 | protected: 26 | private: 27 | std::vector node_list_; 28 | }; 29 | } // End Namespace FlowCV 30 | #endif // FLOWCV_INTERNAL_NODE_MANAGER_HPP_ 31 | -------------------------------------------------------------------------------- /Plugins/DataOutput/macos/List_Serial_Ports_Mac.cpp: -------------------------------------------------------------------------------- 1 | // 2 | // Created by Richard on 6/17/22. 3 | // 4 | 5 | #include "List_Serial_Ports_Mac.hpp" 6 | 7 | namespace SerialDeviceEnum 8 | { 9 | std::vector DeviceEnumerator::GetSerialPortList() 10 | { 11 | std::vector serPorts; 12 | std::vector devices_found = serial::list_ports(); 13 | 14 | auto iter = devices_found.begin(); 15 | 16 | while (iter != devices_found.end()) { 17 | serial::PortInfo device = *iter++; 18 | 19 | SerialPortInfo si; 20 | si.description = device.description; 21 | si.port = device.port; 22 | si.hardware_id = device.hardware_id; 23 | serPorts.emplace_back(si); 24 | 25 | // printf( "(%s, %s, %s)\n", device.port.c_str(), device.description.c_str(), device.hardware_id.c_str() ); 26 | } 27 | 28 | return serPorts; 29 | } 30 | } // namespace SerialDeviceEnum -------------------------------------------------------------------------------- /Plugins/DataOutput/macos/List_Serial_Ports_Mac.hpp: -------------------------------------------------------------------------------- 1 | // 2 | // Platform Serial Device Enumerator 3 | // MacOS 4 | // 5 | 6 | #ifndef FLOWCV_SERIAL_PORTS_MAC_HPP_ 7 | #define FLOWCV_SERIAL_PORTS_MAC_HPP_ 8 | #include 9 | #include 10 | #include 11 | #include 12 | #include 13 | #include 14 | #include 15 | #include 16 | #include 17 | 18 | namespace SerialDeviceEnum 19 | { 20 | 21 | struct SerialPortInfo 22 | { 23 | std::string port; 24 | std::string description; 25 | std::string hardware_id; 26 | }; 27 | 28 | class DeviceEnumerator 29 | { 30 | 31 | public: 32 | std::vector GetSerialPortList(); 33 | }; 34 | 35 | } // End Namespace SerialDeviceEnum 36 | 37 | #endif // FLOWCV_SERIAL_PORTS_MAC_HPP_ 38 | -------------------------------------------------------------------------------- /Plugins/DataOutput/macos/serial/.clang-format: -------------------------------------------------------------------------------- 1 | DisableFormat: true 2 | SortIncludes: false -------------------------------------------------------------------------------- /Plugins/DataOutput/serial_enumerator.hpp: -------------------------------------------------------------------------------- 1 | // 2 | // Created by Richard on 3/26/2022. 3 | // 4 | 5 | #ifndef FLOWCV_SERIAL_ENUMERATOR_HPP_ 6 | #define FLOWCV_SERIAL_ENUMERATOR_HPP_ 7 | #include 8 | #include 9 | 10 | #ifdef _WIN32 11 | #include "List_Serial_Ports_Win.hpp" 12 | #endif 13 | 14 | #ifdef __linux__ 15 | #include "List_Serial_Ports_Linux.hpp" 16 | #endif 17 | 18 | #ifdef __APPLE__ 19 | #include "List_Serial_Ports_Mac.hpp" 20 | #endif 21 | 22 | class Serial_Enumerator 23 | { 24 | 25 | public: 26 | void RefreshSerialList(); 27 | int GetSerialCount(); 28 | std::string GetSerialName(uint32_t index); 29 | std::string GetSerialDesc(uint32_t index); 30 | std::string GetSerialID(uint32_t index); 31 | 32 | private: 33 | std::vector serial_list_; 34 | }; 35 | #endif // FLOWCV_SERIAL_ENUMERATOR_HPP_ 36 | -------------------------------------------------------------------------------- /Plugins/DataOutput/win/List_Serial_Ports_Win.hpp: -------------------------------------------------------------------------------- 1 | // 2 | // Platform Serial Device Enumerator 3 | // Windows 4 | // 5 | 6 | #ifndef FLOWCV_SERIAL_PORTS_WIN_HPP_ 7 | #define FLOWCV_SERIAL_PORTS_WIN_HPP_ 8 | 9 | // clang-format off 10 | #include 11 | #include 12 | #include 13 | #include 14 | #include 15 | #include 16 | #include 17 | #include 18 | // clang-format on 19 | 20 | namespace SerialDeviceEnum 21 | { 22 | 23 | struct SerialPortInfo 24 | { 25 | std::string port; 26 | std::string description; 27 | std::string hardware_id; 28 | }; 29 | 30 | class DeviceEnumerator 31 | { 32 | public: 33 | std::vector GetSerialPortList(); 34 | }; 35 | } // End Namespace SerialDeviceEnum 36 | #endif // FLOWCV_SERIAL_PORTS_WIN_HPP_ 37 | -------------------------------------------------------------------------------- /Plugins/VideoCapture/camera_enumerator.hpp: -------------------------------------------------------------------------------- 1 | // 2 | // Platform Camera Enumerator 3 | // 4 | 5 | #ifndef FLOWCV_CAMERA_ENUMERATOR_HPP_ 6 | #define FLOWCV_CAMERA_ENUMERATOR_HPP_ 7 | 8 | #include 9 | #include 10 | 11 | class Camera_Enumerator 12 | { 13 | public: 14 | void RefreshCameraList(); 15 | int GetCameraCount(); 16 | std::string GetCameraName(uint32_t index); 17 | int GetCameraIndex(uint32_t index); 18 | 19 | private: 20 | std::vector> camera_list_; 21 | }; 22 | 23 | #endif // FLOWCV_CAMERA_ENUMERATOR_HPP_ 24 | -------------------------------------------------------------------------------- /Plugins/VideoCapture/linux/Camera_V4L.hpp: -------------------------------------------------------------------------------- 1 | // 2 | // Created by Richard on 2/26/2022. 3 | // 4 | 5 | #ifndef FLOWCV_CAMERA_V4L_HPP_ 6 | #define FLOWCV_CAMERA_V4L_HPP_ 7 | #include 8 | #include 9 | #include 10 | #include 11 | 12 | namespace camv4l 13 | { 14 | 15 | struct Device 16 | { 17 | int id; // This can be used to open the device in OpenCV 18 | std::string deviceName; // This can be used to show the devices to the user 19 | }; 20 | 21 | class Camera_V4L_Enumerator 22 | { 23 | public: 24 | std::map getVideoDevicesMap(); 25 | 26 | private: 27 | }; 28 | } // namespace camv4l 29 | #endif // FLOWCV_CAMERA_V4L_HPP_ 30 | -------------------------------------------------------------------------------- /Plugins/VideoCapture/macos/Camera_MacOS.hpp: -------------------------------------------------------------------------------- 1 | // 2 | // Created by Richard Wardlow 3 | // 4 | 5 | #ifndef FLOWCV_CAMERA_MACOS_HPP_ 6 | #define FLOWCV_CAMERA_MACOS_HPP_ 7 | #include 8 | #include 9 | #include 10 | #include 11 | #include 12 | #include 13 | 14 | namespace cam_macos 15 | { 16 | 17 | struct Device 18 | { 19 | int id; // This can be used to open the device in OpenCV 20 | std::string deviceName; // This can be used to show the devices to the user 21 | }; 22 | 23 | class Camera_MacOS_Enumerator 24 | { 25 | public: 26 | std::map getVideoDevicesMap(); 27 | 28 | private: 29 | }; 30 | } // namespace cam_macos 31 | #endif // FLOWCV_CAMERA_MACOS_HPP_ 32 | -------------------------------------------------------------------------------- /Plugins/VideoCapture/win/Camera_MSMF.hpp: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include 3 | #include 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | #include 11 | #include 12 | 13 | #pragma comment(lib, "Mfplat.lib") 14 | #pragma comment(lib, "Mf.lib") 15 | #pragma comment(lib, "strmiids.lib") 16 | 17 | namespace msmf 18 | { 19 | 20 | struct Device 21 | { 22 | int id; // This can be used to open the device in OpenCV 23 | std::string devicePath; 24 | std::string deviceName; // This can be used to show the devices to the user 25 | }; 26 | 27 | class DeviceEnumerator 28 | { 29 | 30 | public: 31 | DeviceEnumerator() = default; 32 | std::map getDevicesMap(REFGUID category); 33 | std::map getVideoDevicesMap(); 34 | std::map getAudioDevicesMap(); 35 | 36 | private: 37 | std::string ConvertBSTRToMBS(BSTR bstr); 38 | std::string ConvertWCSToMBS(const wchar_t *pstr, long wslen); 39 | std::string ConvertWCHhartoMBS(BSTR bstr); 40 | }; 41 | } // namespace msmf 42 | -------------------------------------------------------------------------------- /Templates/Internal_Node/internal_template.hpp: -------------------------------------------------------------------------------- 1 | // 2 | // Plugin Template 3 | // 4 | 5 | #ifndef FLOWCV_PLUGIN_TEMPLATE_HPP_ 6 | #define FLOWCV_PLUGIN_TEMPLATE_HPP_ 7 | #include 8 | #include "FlowCV_Types.hpp" 9 | #include "FlowCV_Properties.hpp" 10 | #include "imgui_wrapper.hpp" 11 | #include "imgui_opencv.hpp" 12 | #include "json.hpp" 13 | 14 | namespace DSPatch::DSPatchables 15 | { 16 | 17 | class PluginName final : public Component 18 | { 19 | public: 20 | PluginName(); 21 | void UpdateGui(void *context, int interface) override; 22 | bool HasGui(int interface) override; 23 | std::string GetState() override; 24 | void SetState(std::string &&json_serialized) override; 25 | 26 | protected: 27 | void Process_(SignalBus const &inputs, SignalBus &outputs) override; 28 | 29 | private: 30 | FlowCV::FlowCV_Properties props_; 31 | }; 32 | 33 | } // namespace DSPatch::DSPatchables 34 | 35 | #endif // FLOWCV_PLUGIN_TEMPLATE_HPP_ 36 | -------------------------------------------------------------------------------- /Templates/Plugin/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | project(Plugin_Name) 2 | 3 | add_library( 4 | ${PROJECT_NAME} SHARED 5 | source_file.cpp 6 | ${IMGUI_SRC} 7 | ${DSPatch_SRC} 8 | ${IMGUI_WRAPPER_SRC} 9 | ${IMGUI_OPENCV_SRC} 10 | ${FlowCV_SRC} 11 | ) 12 | 13 | target_link_libraries( 14 | ${PROJECT_NAME} 15 | ${IMGUI_LIBS} 16 | ${OpenCV_LIBS} 17 | ) 18 | 19 | set_target_properties(${PROJECT_NAME} 20 | PROPERTIES 21 | RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/Plugins" 22 | SUFFIX ".fp" 23 | ) 24 | -------------------------------------------------------------------------------- /Templates/Plugin/plugin_template.hpp: -------------------------------------------------------------------------------- 1 | // 2 | // Plugin Template 3 | // 4 | 5 | #ifndef FLOWCV_PLUGIN_TEMPLATE_HPP_ 6 | #define FLOWCV_PLUGIN_TEMPLATE_HPP_ 7 | #include 8 | #include "FlowCV_Types.hpp" 9 | #include "FlowCV_Properties.hpp" 10 | #include "imgui_wrapper.hpp" 11 | #include "imgui_opencv.hpp" 12 | #include "json.hpp" 13 | 14 | namespace DSPatch::DSPatchables 15 | { 16 | namespace internal 17 | { 18 | class PluginName; 19 | } 20 | 21 | class DLLEXPORT PluginName final : public Component 22 | { 23 | public: 24 | PluginName(); 25 | void UpdateGui(void *context, int interface) override; 26 | bool HasGui(int interface) override; 27 | std::string GetState() override; 28 | void SetState(std::string &&json_serialized) override; 29 | 30 | protected: 31 | void Process_(SignalBus const &inputs, SignalBus &outputs) override; 32 | 33 | private: 34 | std::unique_ptr p; 35 | FlowCV::FlowCV_Properties props_; 36 | }; 37 | 38 | EXPORT_PLUGIN(PluginName) 39 | 40 | } // namespace DSPatch::DSPatchables 41 | 42 | #endif // FLOWCV_PLUGIN_TEMPLATE_HPP_ 43 | -------------------------------------------------------------------------------- /third-party/.clang-format: -------------------------------------------------------------------------------- 1 | DisableFormat: true 2 | SortIncludes: false --------------------------------------------------------------------------------