Apply clang-format
authorKwanghoon Son <k.son@samsung.com>
Thu, 17 Nov 2022 07:34:00 +0000 (02:34 -0500)
committerKwanghoon Son <k.son@samsung.com>
Thu, 17 Nov 2022 07:34:00 +0000 (02:34 -0500)
[Issue type] refactoring
[Version] 0.25.2

Change-Id: Ib9ef6823873bc452ac48257615fc6e61977f4247
Signed-off-by: Kwanghoon Son <k.son@samsung.com>
112 files changed:
doc/mediavision_doc.h
include/mv_3d.h
include/mv_3d_internal.h
include/mv_3d_type.h
include/mv_barcode_detect.h
include/mv_barcode_generate.h
include/mv_barcode_type.h
include/mv_common.h
include/mv_face_type.h
include/mv_inference_private.h
include/mv_inference_type.h
include/mv_roi_tracker_type.h
include/mv_surveillance_private.h
mv_3d/3d/include/Mv3d.h
mv_3d/3d/include/mv_3d_open.h
mv_3d/3d/src/Mv3d.cpp
mv_3d/3d/src/mv_3d.c
mv_3d/3d/src/mv_3d_internal.cpp
mv_3d/3d/src/mv_3d_open.cpp
mv_barcode/barcode_generator/include/BarcodeOptions.h
mv_common/src/mv_private.c
mv_face/face/include/FaceExpressionRecognizer.h
mv_face/face/include/FaceRecognitionModel.h
mv_face/face/include/FaceTracker.h
mv_face/face/include/FaceTrackingModel.h
mv_face/face/include/FaceUtil.h
mv_image/image/include/Features/FeatureMatcher.h
mv_image/image/include/ImageConfig.h
mv_image/image/include/Tracking/CascadeTracker.h
mv_image/image/include/Tracking/ImageContourStabilizator.h
mv_image/image/include/Tracking/MFTracker.h
mv_machine_learning/common/include/itask.h
mv_machine_learning/face_recognition/include/backbone_model_info.h
mv_machine_learning/face_recognition/include/face_recognition.h
mv_machine_learning/face_recognition/include/face_recognition_adapter.h
mv_machine_learning/face_recognition/src/face_recognition.cpp
mv_machine_learning/face_recognition/src/face_recognition_adapter.cpp
mv_machine_learning/inference/include/BoxInfo.h
mv_machine_learning/inference/include/BvhUtils.h
mv_machine_learning/inference/include/DecodeInfo.h
mv_machine_learning/inference/include/DimInfo.h
mv_machine_learning/inference/include/Inference.h
mv_machine_learning/inference/include/InputMetadata.h
mv_machine_learning/inference/include/Joint.h
mv_machine_learning/inference/include/LabelInfo.h
mv_machine_learning/inference/include/Landmark.h
mv_machine_learning/inference/include/MetadataType.h
mv_machine_learning/inference/include/NumberInfo.h
mv_machine_learning/inference/include/OutputMetadata.h
mv_machine_learning/inference/include/PostProcess.h
mv_machine_learning/inference/include/ScoreInfo.h
mv_machine_learning/inference/src/Inference.cpp
mv_machine_learning/inference/src/ObjectDecoder.cpp
mv_machine_learning/inference/src/PoseDecoder.cpp
mv_machine_learning/inference/src/mv_inference_open.cpp
mv_machine_learning/meta/include/MetaParser.h
mv_machine_learning/meta/include/Postprocess.h
mv_machine_learning/meta/include/PostprocessParser.h
mv_machine_learning/meta/include/Preprocess.h
mv_machine_learning/meta/include/common.h
mv_machine_learning/meta/include/types.h
mv_machine_learning/meta/src/MetaParser.cpp
mv_machine_learning/meta/src/Postprocess.cpp
mv_machine_learning/meta/src/PostprocessParser.cpp
mv_machine_learning/meta/src/Preprocess.cpp
mv_machine_learning/object_detection/include/ObjectDetectionParser.h
mv_machine_learning/object_detection/include/mv_object_detection_3d_open.h
mv_machine_learning/object_detection/include/object_detection.h
mv_machine_learning/object_detection/include/object_detection_adapter.h
mv_machine_learning/object_detection/include/object_detection_type.h
mv_machine_learning/object_detection/include/objectron.h
mv_machine_learning/object_detection/src/ObjectDetectionParser.cpp
mv_machine_learning/object_detection/src/mv_object_detection_3d.c
mv_machine_learning/object_detection/src/mv_object_detection_3d_open.cpp
mv_machine_learning/object_detection/src/object_detection.cpp
mv_machine_learning/object_detection/src/object_detection_adapter.cpp
mv_machine_learning/object_detection/src/objectron.cpp
mv_machine_learning/training/include/feature_vector_manager.h
mv_machine_learning/training/include/training_model.h
mv_roi_tracker/roi_tracker/src/mv_roi_tracker.c
mv_roi_tracker/roi_tracker/src/mv_roi_tracker_open.cpp
mv_surveillance/surveillance/include/EventTrigger.h
mv_surveillance/surveillance/include/MFTracker.h
packaging/capi-media-vision.spec
test/assessment/barcode/assessment_barcode.cpp
test/assessment/face/assessment_face.cpp
test/assessment/surveillance/assessment_surveillance.cpp
test/testsuites/barcode/barcode_test_suite.c
test/testsuites/common/image_helper/include/ImageHelper.h
test/testsuites/common/image_helper/include/image_helper.h
test/testsuites/common/testsuite_common/mv_testsuite_common.h
test/testsuites/common/video_helper/mv_video_helper.c
test/testsuites/common/visualizer/include/mv_util_matrix.h
test/testsuites/common/visualizer/include/mv_util_render_2d.h
test/testsuites/common/visualizer/include/mv_util_shader.h
test/testsuites/common/visualizer/include/mv_util_visualizer_3d.h
test/testsuites/common/visualizer/include/mv_util_winsys.h
test/testsuites/common/visualizer/src/mv_util_matrix.cpp
test/testsuites/common/visualizer/src/mv_util_render_2d.cpp
test/testsuites/common/visualizer/src/mv_util_render_3d.cpp
test/testsuites/common/visualizer/src/mv_util_shader.cpp
test/testsuites/common/visualizer/src/mv_util_visualizer_2d.cpp
test/testsuites/common/visualizer/src/mv_util_visualizer_3d.cpp
test/testsuites/common/visualizer/src/mv_util_winsys.cpp
test/testsuites/face/face_test_suite.c
test/testsuites/image/image_test_suite.c
test/testsuites/mv3d/depth_test_suite.cpp
test/testsuites/mv3d/depthstream_test_suite.cpp
test/testsuites/mv3d/test_3d.cpp
test/testsuites/visualizer/bunny.h
test/testsuites/visualizer/remote_display_server/server.cpp
test/testsuites/visualizer/visualizer_test_suite.cpp [changed mode: 0755->0644]

index 3ce5c4b..c79eb86 100644 (file)
  * and callback functions will be invoked with processed depth or pointcloud.
  * Module also contains mv_3d_run_async() functions to process depth or pointcloud asynchronously.
  */
-#endif  /* __TIZEN_MEDIAVISION_DOC_H__ */
+#endif /* __TIZEN_MEDIAVISION_DOC_H__ */
index 583307f..e912ae6 100644 (file)
@@ -163,8 +163,7 @@ int mv_3d_destroy(mv_3d_h mv3d);
  * @see mv_3d_create()
  * @see mv_create_engine_config()
  */
-int mv_3d_configure(mv_3d_h mv3d,
-                       mv_engine_config_h engine_config);
+int mv_3d_configure(mv_3d_h mv3d, mv_engine_config_h engine_config);
 
 /**
  * @brief Prepares handle.
@@ -209,12 +208,8 @@ int mv_3d_prepare(mv_3d_h mv3d);
  * @see mv_3d_run()
  * @see mv_3d_run_async()
  */
-typedef void (*mv_3d_depth_cb)(
-       mv_source_h source,
-       unsigned short *depth,
-       unsigned int width,
-       unsigned int height,
-       void *user_data);
+typedef void (*mv_3d_depth_cb)(mv_source_h source, unsigned short *depth, unsigned int width, unsigned int height,
+                                                          void *user_data);
 
 /**
  * @brief Sets mv_3d_depth_cb() callback.
@@ -241,9 +236,7 @@ typedef void (*mv_3d_depth_cb)(
  * @see mv_create_engine_config()
  * @see mv_3d_configure()
  */
-int mv_3d_set_depth_cb(mv_3d_h mv3d,
-                       mv_3d_depth_cb depth_cb,
-                       void *user_data);
+int mv_3d_set_depth_cb(mv_3d_h mv3d, mv_3d_depth_cb depth_cb, void *user_data);
 
 /**
  * @brief Invoked when @a pointcloud is ready.
@@ -267,10 +260,7 @@ int mv_3d_set_depth_cb(mv_3d_h mv3d,
  * @see mv_3d_run()
  * @see mv_3d_run_async()
  */
-typedef void (*mv_3d_pointcloud_cb)(
-       mv_source_h source,
-       mv_3d_pointcloud_h pointcloud,
-       void *user_data);
+typedef void (*mv_3d_pointcloud_cb)(mv_source_h source, mv_3d_pointcloud_h pointcloud, void *user_data);
 
 /**
  * @brief Sets mv_3d_pointcloud_cb() callback.
@@ -297,9 +287,7 @@ typedef void (*mv_3d_pointcloud_cb)(
  * @see mv_create_engine_config()
  * @see mv_3d_configure()
  */
-int mv_3d_set_pointcloud_cb(mv_3d_h mv3d,
-                       mv_3d_pointcloud_cb pointcloud_cb,
-                       void *user_data);
+int mv_3d_set_pointcloud_cb(mv_3d_h mv3d, mv_3d_pointcloud_cb pointcloud_cb, void *user_data);
 
 /**
  * @brief Gets depth or pointcloud synchronously from given @a source
@@ -339,10 +327,7 @@ int mv_3d_set_pointcloud_cb(mv_3d_h mv3d,
  * @see mv_3d_set_depth_cb()
  * @see mv_3d_depth_cb()
  */
-int mv_3d_run(mv_3d_h mv3d,
-                       mv_source_h source,
-                       mv_source_h source_extra,
-                       mv_source_h color);
+int mv_3d_run(mv_3d_h mv3d, mv_source_h source, mv_source_h source_extra, mv_source_h color);
 
 /**
  * @brief Gets depth or pointcloud asynchronously from given @a source
@@ -382,10 +367,7 @@ int mv_3d_run(mv_3d_h mv3d,
  * @see mv_3d_set_depth_cb()
  * @see mv_3d_depth_cb()
  */
-int mv_3d_run_async(mv_3d_h mv3d,
-                       mv_source_h source,
-                       mv_source_h source_extra,
-                       mv_source_h color);
+int mv_3d_run_async(mv_3d_h mv3d, mv_source_h source, mv_source_h source_extra, mv_source_h color);
 
 /**
  * @brief Writes pointcloud data to a file.
@@ -415,10 +397,8 @@ int mv_3d_run_async(mv_3d_h mv3d,
  * @see mv_create_engine_config()
  * @see mv_3d_configure()
  */
-int mv_3d_pointcloud_write_file(mv_3d_h mv3d,
-                       mv_3d_pointcloud_h pointcloud,
-                       mv_3d_pointcloud_type_e type,
-                       char *filename);
+int mv_3d_pointcloud_write_file(mv_3d_h mv3d, mv_3d_pointcloud_h pointcloud, mv_3d_pointcloud_type_e type,
+                                                               char *filename);
 
 /**
  * @}
@@ -428,5 +408,3 @@ int mv_3d_pointcloud_write_file(mv_3d_h mv3d,
 #endif /* __cplusplus */
 
 #endif /* __TIZEN_MEDIAVISION_3D_H__ */
-
-
index 97fbc76..a8a5b2a 100644 (file)
@@ -84,10 +84,9 @@ int mv_3d_pointcloud_plane_inlier_destroy(mv_3d_pointcloud_plane_inlier_h handle
  *
  * @since_tizen 7.0
  */
-int mv_3d_pointcloud_segment_plane(mv_3d_h mv3d,
-                       mv_3d_pointcloud_h pointcloud,
-                       mv_3d_pointcloud_plane_model_h *plane_model,
-                       mv_3d_pointcloud_plane_inlier_h *plane_inlier);
+int mv_3d_pointcloud_segment_plane(mv_3d_h mv3d, mv_3d_pointcloud_h pointcloud,
+                                                                  mv_3d_pointcloud_plane_model_h *plane_model,
+                                                                  mv_3d_pointcloud_plane_inlier_h *plane_inlier);
 
 /**
  * @internal
@@ -97,12 +96,9 @@ int mv_3d_pointcloud_segment_plane(mv_3d_h mv3d,
  * @since_tizen 7.0
  */
 
-int mv_3d_pointcloud_plane_write_file(mv_3d_h mv3d,
-                       mv_3d_pointcloud_plane_model_h model,
-                       mv_3d_pointcloud_plane_inlier_h inlier,
-                       mv_3d_pointcloud_h pointcloud,
-                       mv_3d_pointcloud_type_e type,
-                       char *filename);
+int mv_3d_pointcloud_plane_write_file(mv_3d_h mv3d, mv_3d_pointcloud_plane_model_h model,
+                                                                         mv_3d_pointcloud_plane_inlier_h inlier, mv_3d_pointcloud_h pointcloud,
+                                                                         mv_3d_pointcloud_type_e type, char *filename);
 
 #ifdef __cplusplus
 }
index 3bee94f..0074050 100644 (file)
@@ -37,8 +37,8 @@ extern "C" {
  * @since_tizen 7.0
  */
 typedef enum {
-       MV_3D_DEPTH_MODE_NONE,      /**< NONE */
-       MV_3D_DEPTH_MODE_STEREO    /**< Stereo images are used */
+       MV_3D_DEPTH_MODE_NONE, /**< NONE */
+       MV_3D_DEPTH_MODE_STEREO /**< Stereo images are used */
 } mv_3d_depth_mode_e;
 
 /**
@@ -46,10 +46,10 @@ typedef enum {
  * @since_tizen 7.0
  */
 typedef enum {
-       MV_3D_POINTCLOUD_TYPE_PCD_TXT,  /**< PointCloudData format as text */
-       MV_3D_POINTCLOUD_TYPE_PCD_BIN,  /**< PointCloudData format as binary */
-       MV_3D_POINTCLOUD_TYPE_PLY_TXT,  /**< Polygon format as text */
-       MV_3D_POINTCLOUD_TYPE_PLY_BIN  /**< Polygon format as binary */
+       MV_3D_POINTCLOUD_TYPE_PCD_TXT, /**< PointCloudData format as text */
+       MV_3D_POINTCLOUD_TYPE_PCD_BIN, /**< PointCloudData format as binary */
+       MV_3D_POINTCLOUD_TYPE_PLY_TXT, /**< Polygon format as text */
+       MV_3D_POINTCLOUD_TYPE_PLY_BIN /**< Polygon format as binary */
 } mv_3d_pointcloud_type_e;
 
 /**
@@ -64,7 +64,6 @@ typedef void *mv_3d_h;
  */
 typedef void *mv_3d_pointcloud_h;
 
-
 /**
  * @}
  */
index caed05d..b304555 100644 (file)
@@ -94,8 +94,7 @@ extern "C" {
  *
  * @since_tizen @if MOBILE 2.4 @else 3.0 @endif
  */
-typedef enum
-{
+typedef enum {
        MV_BARCODE_DETECT_ATTR_TARGET_ALL, /**< 1D and 2D */
        MV_BARCODE_DETECT_ATTR_TARGET_1D_BARCODE, /**< 1D barcode only */
        MV_BARCODE_DETECT_ATTR_TARGET_2D_BARCODE, /**< 2D barcode only */
@@ -112,8 +111,7 @@ typedef enum
  * @see #MV_BARCODE_DETECT_ATTR_ROTATION_DIRECTION
  * @see #MV_BARCODE_DETECT_ATTR_ROTATION_COUNT
  */
-typedef enum
-{
+typedef enum {
        MV_BARCODE_DETECT_ATTR_ROTATION_CLOCKWISE, /**< Clockwise */
        MV_BARCODE_DETECT_ATTR_ROTATION_COUNTER_CLOCKWISE, /**< Counter clockwise */
        MV_BARCODE_DETECT_ATTR_ROTATION_ALL, /**< Clockwise and counter clockwise */
index 0654fdc..8778de9 100644 (file)
@@ -71,8 +71,7 @@ extern "C" {
  *
  * @since_tizen @if MOBILE 2.4 @else 3.0 @endif
  */
-typedef enum
-{
+typedef enum {
        MV_BARCODE_GENERATE_ATTR_TEXT_INVISIBLE, /**< Invisible */
        MV_BARCODE_GENERATE_ATTR_TEXT_VISIBLE, /**< Visible */
 } mv_barcode_generate_attr_text_e;
index 1f033a2..4c503e6 100644 (file)
@@ -38,8 +38,7 @@ extern "C" {
  * @since_tizen @if MOBILE 2.4 @else 3.0 @endif
  * @remarks #MV_BARCODE_UNDEFINED is deprecated. Use #MV_BARCODE_UNKNOWN instead
  */
-typedef enum
-{
+typedef enum {
        MV_BARCODE_QR, /**< 2D barcode - Quick Response code */
        MV_BARCODE_UPC_A, /**< 1D barcode - Universal Product Code with 12-digit */
        MV_BARCODE_UPC_E, /**< 1D barcode - Universal Product Code with 6-digit */
@@ -64,8 +63,7 @@ typedef enum
  * @since_tizen @if MOBILE 2.4 @else 3.0 @endif
  * @remarks This is unavailable for 1D barcodes
  */
-typedef enum
-{
+typedef enum {
        MV_BARCODE_QR_ECC_LOW, /**< Recovery up to  7% losses */
        MV_BARCODE_QR_ECC_MEDIUM, /**< Recovery up to 15% losses */
        MV_BARCODE_QR_ECC_QUARTILE, /**< Recovery up to 25% losses */
@@ -79,8 +77,7 @@ typedef enum
  * @since_tizen @if MOBILE 2.4 @else 3.0 @endif
  * @remarks This is unavailable for 1D barcodes
  */
-typedef enum
-{
+typedef enum {
        MV_BARCODE_QR_MODE_NUMERIC, /**< Numeric digits */
        MV_BARCODE_QR_MODE_ALPHANUMERIC, /**< Alphanumeric characters */
        MV_BARCODE_QR_MODE_BYTE, /**< Raw 8-bit bytes */
@@ -93,8 +90,7 @@ typedef enum
  *
  * @since_tizen @if MOBILE 2.4 @else 3.0 @endif
  */
-typedef enum
-{
+typedef enum {
        MV_BARCODE_IMAGE_FORMAT_UNAVAILABLE = -1, /**< Unavailable image format */
        MV_BARCODE_IMAGE_FORMAT_BMP, /**< BMP image format */
        MV_BARCODE_IMAGE_FORMAT_JPG, /**< JPEG image format */
index fe06802..cff9a43 100644 (file)
@@ -38,8 +38,7 @@ extern "C" {
  *
  * @since_tizen @if MOBILE 2.4 @else 3.0 @endif
  */
-typedef struct
-{
+typedef struct {
        int x; /**< X-axis coordinate of the point in 2D space */
        int y; /**< Y-axis coordinate of the point in 2D space */
 } mv_point_s;
@@ -49,8 +48,7 @@ typedef struct
  *
  * @since_tizen @if MOBILE 2.4 @else 3.0 @endif
  */
-typedef struct
-{
+typedef struct {
        mv_point_s points[4]; /**< Four points that define object bounding
                                                                quadrangle */
 } mv_quadrangle_s;
@@ -61,8 +59,7 @@ typedef struct
  *
  * @since_tizen @if MOBILE 2.4 @else 3.0 @endif
  */
-typedef struct
-{
+typedef struct {
        mv_point_s point; /**< Top left corner of rectangle coordinates */
        int width; /**< Width of the bounding rectangle */
        int height; /**< Height of the bounding rectangle */
@@ -73,8 +70,7 @@ typedef struct
  *
  * @since_tizen @if MOBILE 2.4 @else 3.0 @endif
  */
-typedef enum
-{
+typedef enum {
        MEDIA_VISION_ERROR_NONE = TIZEN_ERROR_NONE, /**< Successful */
        MEDIA_VISION_ERROR_NOT_SUPPORTED = TIZEN_ERROR_NOT_SUPPORTED, /**< Not supported */
        MEDIA_VISION_ERROR_MSG_TOO_LONG = TIZEN_ERROR_MSG_TOO_LONG, /**< Message too long */
@@ -97,8 +93,7 @@ typedef enum
  *
  * @since_tizen @if MOBILE 2.4 @else 3.0 @endif
  */
-typedef enum
-{
+typedef enum {
        MV_ENGINE_CONFIG_ATTR_TYPE_DOUBLE, /**< Double attribute type */
        MV_ENGINE_CONFIG_ATTR_TYPE_INTEGER, /**< Integer attribute type */
        MV_ENGINE_CONFIG_ATTR_TYPE_BOOLEAN, /**< Boolean attribute type */
@@ -111,8 +106,7 @@ typedef enum
  *
  * @since_tizen @if MOBILE 2.4 @else 3.0 @endif
  */
-typedef enum
-{
+typedef enum {
        MEDIA_VISION_COLORSPACE_INVALID, /**< The colorspace type is invalid */
        MEDIA_VISION_COLORSPACE_Y800, /**< The colorspace type is Y800 */
        MEDIA_VISION_COLORSPACE_I420, /**< The colorspace type is I420 */
index 170bd4d..23c5dba 100644 (file)
@@ -39,8 +39,7 @@ extern "C" {
  *
  * @see mv_face_eye_condition_recognize()
  */
-typedef enum
-{
+typedef enum {
        MV_FACE_EYES_OPEN, /**< Eyes are open */
        MV_FACE_EYES_CLOSED, /**< Eyes are closed */
        MV_FACE_EYES_NOT_FOUND /**< The eyes condition wasn't determined */
@@ -53,8 +52,7 @@ typedef enum
  *
  * @see mv_face_facial_expression_recognize()
  */
-typedef enum
-{
+typedef enum {
        MV_FACE_UNKNOWN, /**< Unknown face expression */
        MV_FACE_NEUTRAL, /**< Face expression is neutral */
        MV_FACE_SMILE, /**< Face expression is smiling */
index 604810d..f17fa42 100644 (file)
@@ -37,8 +37,7 @@ extern "C" {
   * @since_tizen 6.0
   *
   */
-typedef struct mv_inference_landmark_s
-{
+typedef struct mv_inference_landmark_s {
        bool isAvailable; /**< Availability of landmark */
        mv_point_s point; /**< 2D position of landmark */
        int label; /**< Label of landmark */
@@ -60,8 +59,7 @@ typedef struct mv_inference_landmark_s
   * @since_tizen 6.0
   *
   */
-typedef struct
-{
+typedef struct {
        int number_of_poses;
        int number_of_landmarks_per_pose; /**< The number of landmarks*/
        mv_inference_landmark_s landmarks[MAX_NUMBER_OF_POSE]
index 1aaff69..f7312ed 100644 (file)
@@ -58,8 +58,7 @@ extern "C" {
  *
  * @see mv_inference_prepare()
  */
-typedef enum
-{
+typedef enum {
        MV_INFERENCE_BACKEND_NONE = -1, /**< None */
        MV_INFERENCE_BACKEND_OPENCV, /**< OpenCV */
        MV_INFERENCE_BACKEND_TFLITE, /**< TensorFlow-Lite */
@@ -78,8 +77,7 @@ typedef enum
  * @since_tizen 5.5
  *
  */
-typedef enum
-{
+typedef enum {
        MV_INFERENCE_TARGET_NONE = -1, /**< None */
        MV_INFERENCE_TARGET_CPU, /**< CPU */
        MV_INFERENCE_TARGET_GPU, /**< GPU*/
@@ -93,8 +91,7 @@ typedef enum
  * @since_tizen 6.0
  *
  */
-typedef enum
-{
+typedef enum {
        MV_INFERENCE_TARGET_DEVICE_NONE = 0, /**< None */
        MV_INFERENCE_TARGET_DEVICE_CPU = 1 << 0, /**< CPU */
        MV_INFERENCE_TARGET_DEVICE_GPU = 1 << 1, /**< GPU*/
@@ -108,8 +105,7 @@ typedef enum
  * @since_tizen 6.0
  *
  */
-typedef enum
-{
+typedef enum {
        MV_INFERENCE_DATA_FLOAT32 = 0, /**< Data type of a given pre-trained model is float. */
        MV_INFERENCE_DATA_UINT8 /**< Data type of a given pre-trained model is unsigned char. */
 } mv_inference_data_type_e;
@@ -120,8 +116,7 @@ typedef enum
   * @since_tizen 6.0
   *
   */
-typedef enum
-{
+typedef enum {
        MV_INFERENCE_HUMAN_POSE_HEAD = 1, /**< Head of human pose */
        MV_INFERENCE_HUMAN_POSE_NECK, /**< Neck of human pose */
        MV_INFERENCE_HUMAN_POSE_THORAX, /**< Thorax of human pose */
@@ -146,8 +141,7 @@ typedef enum
   * @since_tizen 6.0
   *
   */
-typedef enum
-{
+typedef enum {
        MV_INFERENCE_HUMAN_BODY_PART_HEAD = 1 << 0, /**< HEAD, NECK, and THORAX */
        MV_INFERENCE_HUMAN_BODY_PART_ARM_RIGHT = 1 << 1, /**< RIGHT SHOULDER, ELBOW, and WRIST */
        MV_INFERENCE_HUMAN_BODY_PART_ARM_LEFT = 1 << 2, /**< LEFT SHOULDER, ELBOW, and WRIST */
index 11c09e2..a813861 100644 (file)
@@ -43,8 +43,7 @@ extern "C" {
  * @details Contains roi tracker result such as coordinates.
  * @since_tizen 7.0
  */
-typedef struct
-{
+typedef struct {
        int x; /**< Left-top x coordinate of tracked region */
        int y; /**< Left-top y coordinate of tracked region */
        int width; /**< Width of tracked region */
@@ -62,8 +61,7 @@ typedef void *mv_roi_tracker_h;
  * @brief Enumeration for ROI tracker type.
  * @since_tizen 7.0
  */
-typedef enum
-{
+typedef enum {
        MV_ROI_TRACKER_TYPE_NONE = 0, /**< None */
        MV_ROI_TRACKER_TYPE_ACCURACY, /**< Tracker type focused on accuracy */
        MV_ROI_TRACKER_TYPE_BALANCE, /**< Tracker type focused on balance */
index d65b529..258c435 100644 (file)
@@ -33,8 +33,7 @@ extern "C" {
  *
  * @since_tizen 3.0
  */
-typedef struct
-{
+typedef struct {
        unsigned long trigger_id; /**< Unique event trigger identifier */
        char *event_type; /**< Type of the event */
        int number_of_roi_points; /**< Number of ROI (Region of interest) points */
index eea895b..d47438e 100644 (file)
@@ -17,7 +17,6 @@
 #ifndef __MEDIA_VISION_3D_H__
 #define __MEDIA_VISION_3D_H__
 
-
 #include <cstddef>
 #include <glib.h>
 #include "dfs_parameter.h"
  */
 using namespace DfsAdaptation;
 using DepthType = uint16_t;
-using DepthTypePtr = DepthType*;
+using DepthTypePtr = DepthType *;
 namespace mediavision
 {
 namespace mv3d
 {
-       class Mv3d
-       {
-       private:
-               DfsParameter mDfsParameter;
-               DfsAdaptor *mDfsAdaptor;
-               int mMode;
-
-               size_t mWidth;
-               size_t mHeight;
-               int mMinDisp;
-               int mMaxDisp;
-               double mSamplingRatio;
-               int mOutlierRemovalPoints;
-               double mOutlierRemovalRadius;
-               std::string mStereoConfigPath;
-               std::string mIntrinsicPath;
-               std::string mPointcloudOutputPath;
-
-               GThread *mDfsThread;
-               void *mDepthUserData;
-               void *mPointcloudUserData;
-               mv_3d_depth_cb mDepthCallback;
-               mv_3d_pointcloud_cb mPointcloudCallback;
-               bool mDfsIsLive;
-
-               GAsyncQueue *mDfsAsyncQueue;
-
-               mv_source_h mInternalSource;
-
-               void GetBufferFromSource(mv_source_h source,
-                                                               unsigned char*& buffer,
-                                                               unsigned int& width,
-                                                               unsigned int& height,
-                                                               int& type,
-                                                               size_t& stride);
-
-               void GetDfsDataFromSources(mv_source_h baseSource,
-                                                               mv_source_h extraSource,
-                                                               DfsInputData& input);
-
-               static gpointer DfsThreadLoop(gpointer data);
+class Mv3d
+{
+private:
+       DfsParameter mDfsParameter;
+       DfsAdaptor *mDfsAdaptor;
+       int mMode;
+
+       size_t mWidth;
+       size_t mHeight;
+       int mMinDisp;
+       int mMaxDisp;
+       double mSamplingRatio;
+       int mOutlierRemovalPoints;
+       double mOutlierRemovalRadius;
+       std::string mStereoConfigPath;
+       std::string mIntrinsicPath;
+       std::string mPointcloudOutputPath;
+
+       GThread *mDfsThread;
+       void *mDepthUserData;
+       void *mPointcloudUserData;
+       mv_3d_depth_cb mDepthCallback;
+       mv_3d_pointcloud_cb mPointcloudCallback;
+       bool mDfsIsLive;
+
+       GAsyncQueue *mDfsAsyncQueue;
+
+       mv_source_h mInternalSource;
+
+       void GetBufferFromSource(mv_source_h source, unsigned char *&buffer, unsigned int &width, unsigned int &height,
+                                                        int &type, size_t &stride);
+
+       void GetDfsDataFromSources(mv_source_h baseSource, mv_source_h extraSource, DfsInputData &input);
+
+       static gpointer DfsThreadLoop(gpointer data);
 
 #ifdef MV_3D_POINTCLOUD_IS_AVAILABLE
-               void GetPointcloudFromSource(DfsInputData &intput,
-                                                                       DfsOutputData &depthData,
-                                                                       mv_3d_pointcloud_s &pointcloud);
+       void GetPointcloudFromSource(DfsInputData &intput, DfsOutputData &depthData, mv_3d_pointcloud_s &pointcloud);
 #endif
-       public:
-               Mv3d();
-               ~Mv3d();
-               void SetParameters(double threshold,
-                                               size_t windowWidth,
-                                               size_t windowHeight,
-                                               size_t speckleSize);
+public:
+       Mv3d();
+       ~Mv3d();
+       void SetParameters(double threshold, size_t windowWidth, size_t windowHeight, size_t speckleSize);
 
-               int Configure(int mode, unsigned int width, unsigned int height, int minDisp, int maxDisp,
-                                       double samplingRatio, int outlierRemovalPoints, double outlierRemovalRadius,
-                                       std::string stereoConfigPath, std::string pointcloudOutputPath);
+       int Configure(int mode, unsigned int width, unsigned int height, int minDisp, int maxDisp, double samplingRatio,
+                                 int outlierRemovalPoints, double outlierRemovalRadius, std::string stereoConfigPath,
+                                 std::string pointcloudOutputPath);
 
-               void SetDepthCallback(mv_3d_depth_cb depthCallback, void *depthUserData);
+       void SetDepthCallback(mv_3d_depth_cb depthCallback, void *depthUserData);
 
-               int SetPointcloudCallback(mv_3d_pointcloud_cb pointcloudCallback, void *pointcloudUserData);
+       int SetPointcloudCallback(mv_3d_pointcloud_cb pointcloudCallback, void *pointcloudUserData);
 
-               int WritePointcloudFile(mv_3d_pointcloud_h pointcloud, mv_3d_pointcloud_type_e type, char *fileName);
+       int WritePointcloudFile(mv_3d_pointcloud_h pointcloud, mv_3d_pointcloud_type_e type, char *fileName);
 
-               int Prepare();
+       int Prepare();
 
-               int Run(mv_source_h baseSource, mv_source_h extraSource);
+       int Run(mv_source_h baseSource, mv_source_h extraSource);
 
-               int RunAsync(mv_source_h baseSource, mv_source_h extraSource);
-       };
+       int RunAsync(mv_source_h baseSource, mv_source_h extraSource);
+};
 }
 }
 #endif /* __MEDIA_VISION_3D_H__ */
index 00e8dd5..c3adb0e 100644 (file)
@@ -65,31 +65,22 @@ int mv3dPrepare(mv_3d_h mv3d);
  * @brief Gets depth data from source(s).
  * @since_tizen 7.0
  */
-int mv3dRun(mv_3d_h mv3d,
-                       mv_source_h source,
-                       mv_source_h source_extra);
+int mv3dRun(mv_3d_h mv3d, mv_source_h source, mv_source_h source_extra);
 
 /**
  * @brief Run depth estimation asynchronousely with source(s).
  * @since_tizen 7.0
  */
-int mv3dRunAsync(mv_3d_h mv3d,
-                       mv_source_h source,
-                       mv_source_h source_extra);
+int mv3dRunAsync(mv_3d_h mv3d, mv_source_h source, mv_source_h source_extra);
 
 /**
  * @brief Write Pointcloud file.
  * @since_tizen 7.0
  */
-int mv3dWritePointcloudFile(mv_3d_h mv3d,
-                       mv_3d_pointcloud_h pointcloud,
-                       mv_3d_pointcloud_type_e type,
-                       char *fileName);
+int mv3dWritePointcloudFile(mv_3d_h mv3d, mv_3d_pointcloud_h pointcloud, mv_3d_pointcloud_type_e type, char *fileName);
 
 #ifdef __cplusplus
 }
 #endif /* __cplusplus */
 
 #endif /* __MEDIA_VISION_3D_OPEN_H__ */
-
-
index 4bbee8c..9bfc05a 100644 (file)
@@ -33,471 +33,437 @@ namespace mediavision
 {
 namespace mv3d
 {
-       Mv3d::Mv3d() :
-               mDfsParameter(),
-               mDfsAdaptor(nullptr),
-               mMode(MV_3D_DEPTH_MODE_NONE),
-               mWidth(0),
-               mHeight(0),
-               mMinDisp(0),
-               mMaxDisp(0),
-               mSamplingRatio(1.0),
-               mOutlierRemovalPoints(0),
-               mOutlierRemovalRadius(0.0),
-               mDfsThread(nullptr),
-               mDepthUserData(nullptr),
-               mPointcloudUserData(nullptr),
-               mDepthCallback(nullptr),
-               mPointcloudCallback(nullptr),
-               mDfsIsLive(false),
-               mDfsAsyncQueue(nullptr),
-               mInternalSource(nullptr)
-       {
-               LOGI("ENTER");
+Mv3d::Mv3d()
+               : mDfsParameter()
+               , mDfsAdaptor(nullptr)
+               , mMode(MV_3D_DEPTH_MODE_NONE)
+               , mWidth(0)
+               , mHeight(0)
+               , mMinDisp(0)
+               , mMaxDisp(0)
+               , mSamplingRatio(1.0)
+               , mOutlierRemovalPoints(0)
+               , mOutlierRemovalRadius(0.0)
+               , mDfsThread(nullptr)
+               , mDepthUserData(nullptr)
+               , mPointcloudUserData(nullptr)
+               , mDepthCallback(nullptr)
+               , mPointcloudCallback(nullptr)
+               , mDfsIsLive(false)
+               , mDfsAsyncQueue(nullptr)
+               mInternalSource(nullptr)
+{
+       LOGI("ENTER");
 #ifdef MV_3D_POINTCLOUD_IS_AVAILABLE
-               utility::SetVerbosityLevel(utility::VerbosityLevel::Debug);
+       utility::SetVerbosityLevel(utility::VerbosityLevel::Debug);
 #endif
-               LOGI("LEAVE");
-       }
-
-       Mv3d::~Mv3d()
-       {
-               LOGI("ENTER");
-
-               if (mDfsThread) {
-                       mDfsIsLive = false;
-                       g_thread_join(mDfsThread);
-               }
+       LOGI("LEAVE");
+}
 
-               if (mDfsAsyncQueue) {
-                       g_async_queue_unref(mDfsAsyncQueue);
-               }
+Mv3d::~Mv3d()
+{
+       LOGI("ENTER");
 
-               if (mDfsAdaptor) {
-                       mDfsAdaptor->unBind();
-                       delete mDfsAdaptor;
-               }
+       if (mDfsThread) {
+               mDfsIsLive = false;
+               g_thread_join(mDfsThread);
+       }
 
-               if (mInternalSource) {
-                       mv_destroy_source(mInternalSource);
-                       mInternalSource = nullptr;
-               }
+       if (mDfsAsyncQueue) {
+               g_async_queue_unref(mDfsAsyncQueue);
+       }
 
-               LOGI("LEAVE");
+       if (mDfsAdaptor) {
+               mDfsAdaptor->unBind();
+               delete mDfsAdaptor;
        }
 
-       void Mv3d::SetParameters(double threshold,
-                                               size_t windowWidth,
-                                               size_t windowHeight,
-                                               size_t speckleSize)
-       {
-               mDfsParameter.textureThreshold = threshold;
-               mDfsParameter.aggregationWindowWidth = windowWidth;
-               mDfsParameter.aggregationWindowHeight = windowHeight;
-               mDfsParameter.maxSpeckleSize = speckleSize;
+       if (mInternalSource) {
+               mv_destroy_source(mInternalSource);
+               mInternalSource = nullptr;
        }
 
-       int Mv3d::Configure(int mode, unsigned int width, unsigned int height,
-                                               int minDisp, int maxDisp, double samplingRatio,
-                                               int outlierRemovalPoints, double outlierRemovalRadius,
-                                               std::string stereoConfigPath,
-                                               std::string pointcloudOutputPath)
-       {
-               mMode = mode;
-               mWidth = static_cast<size_t>(width);
-               mHeight = static_cast<size_t>(height);
-               mMinDisp = minDisp;
-               mMaxDisp = maxDisp;
-               mSamplingRatio = samplingRatio;
-               mOutlierRemovalPoints = outlierRemovalPoints;
-               mOutlierRemovalRadius = outlierRemovalRadius;
-               mStereoConfigPath = stereoConfigPath;
-               size_t found = stereoConfigPath.rfind(".");
-               mIntrinsicPath = stereoConfigPath.substr(0, found) + std::string(".json");
-               mPointcloudOutputPath = pointcloudOutputPath;
-
-               try {
-                       mDfsAdaptor = new DfsAdaptor();
-                       mDfsAdaptor->bind();
-               } catch (const std::bad_alloc &e) {
-                       LOGE("Failed to create dfs adaptation : %s", e.what());
-                       return MEDIA_VISION_ERROR_OUT_OF_MEMORY;
-               } catch (const std::runtime_error &e) {
-                       LOGE("Failed to bind %s adpator", e.what());
-                       return MEDIA_VISION_ERROR_INVALID_OPERATION;
-               }
+       LOGI("LEAVE");
+}
 
-               return MEDIA_VISION_ERROR_NONE;
-       }
+void Mv3d::SetParameters(double threshold, size_t windowWidth, size_t windowHeight, size_t speckleSize)
+{
+       mDfsParameter.textureThreshold = threshold;
+       mDfsParameter.aggregationWindowWidth = windowWidth;
+       mDfsParameter.aggregationWindowHeight = windowHeight;
+       mDfsParameter.maxSpeckleSize = speckleSize;
+}
 
-       void Mv3d::SetDepthCallback(mv_3d_depth_cb depthCallback, void *depthUserData)
-       {
-               mDepthCallback = depthCallback;
-               mDepthUserData = depthUserData;
+int Mv3d::Configure(int mode, unsigned int width, unsigned int height, int minDisp, int maxDisp, double samplingRatio,
+                                       int outlierRemovalPoints, double outlierRemovalRadius, std::string stereoConfigPath,
+                                       std::string pointcloudOutputPath)
+{
+       mMode = mode;
+       mWidth = static_cast<size_t>(width);
+       mHeight = static_cast<size_t>(height);
+       mMinDisp = minDisp;
+       mMaxDisp = maxDisp;
+       mSamplingRatio = samplingRatio;
+       mOutlierRemovalPoints = outlierRemovalPoints;
+       mOutlierRemovalRadius = outlierRemovalRadius;
+       mStereoConfigPath = stereoConfigPath;
+       size_t found = stereoConfigPath.rfind(".");
+       mIntrinsicPath = stereoConfigPath.substr(0, found) + std::string(".json");
+       mPointcloudOutputPath = pointcloudOutputPath;
+
+       try {
+               mDfsAdaptor = new DfsAdaptor();
+               mDfsAdaptor->bind();
+       } catch (const std::bad_alloc &e) {
+               LOGE("Failed to create dfs adaptation : %s", e.what());
+               return MEDIA_VISION_ERROR_OUT_OF_MEMORY;
+       } catch (const std::runtime_error &e) {
+               LOGE("Failed to bind %s adpator", e.what());
+               return MEDIA_VISION_ERROR_INVALID_OPERATION;
        }
 
+       return MEDIA_VISION_ERROR_NONE;
+}
+
+void Mv3d::SetDepthCallback(mv_3d_depth_cb depthCallback, void *depthUserData)
+{
+       mDepthCallback = depthCallback;
+       mDepthUserData = depthUserData;
+}
+
 #ifdef MV_3D_POINTCLOUD_IS_AVAILABLE
-       int Mv3d::SetPointcloudCallback(mv_3d_pointcloud_cb pointcloudCallback, void *pointcloudUserData)
-       {
-               if (pointcloudCallback == NULL || pointcloudUserData == NULL)
-                       return MEDIA_VISION_ERROR_INVALID_PARAMETER;
+int Mv3d::SetPointcloudCallback(mv_3d_pointcloud_cb pointcloudCallback, void *pointcloudUserData)
+{
+       if (pointcloudCallback == NULL || pointcloudUserData == NULL)
+               return MEDIA_VISION_ERROR_INVALID_PARAMETER;
 
-               mPointcloudCallback = pointcloudCallback;
-               mPointcloudUserData = pointcloudUserData;
+       mPointcloudCallback = pointcloudCallback;
+       mPointcloudUserData = pointcloudUserData;
 
-               return MEDIA_VISION_ERROR_NONE;
-       }
+       return MEDIA_VISION_ERROR_NONE;
+}
 #else
-       int Mv3d::SetPointcloudCallback(mv_3d_pointcloud_cb pointcloudCallback, void *pointcloudUserData)
-       {
-               return MEDIA_VISION_ERROR_NOT_SUPPORTED;
-       }
+int Mv3d::SetPointcloudCallback(mv_3d_pointcloud_cb pointcloudCallback, void *pointcloudUserData)
+{
+       return MEDIA_VISION_ERROR_NOT_SUPPORTED;
+}
 #endif
 
-       int Mv3d::Prepare()
-       {
-               if (mMode == MV_3D_DEPTH_MODE_NONE) {
-                       LOGE("Invalid Operation. Set proper MV_3D_DEPTH_MODE");
-                       return  MEDIA_VISION_ERROR_INVALID_OPERATION;
-               }
-
-               if (!mDfsAdaptor) {
-                       LOGE("Invalid Opertation. Do Configure first.");
-                       return MEDIA_VISION_ERROR_INVALID_OPERATION;
-               }
-
-               try {
-                       mDfsAdaptor->initialize(mDfsParameter, mWidth, mHeight,
-                                                                       mMinDisp, mMaxDisp, mStereoConfigPath);
-               } catch (const std::exception& e) {
-                       LOGE("Failed to initialize");
-                       return MEDIA_VISION_ERROR_INVALID_OPERATION;
-               }
-
-               return MEDIA_VISION_ERROR_NONE;
+int Mv3d::Prepare()
+{
+       if (mMode == MV_3D_DEPTH_MODE_NONE) {
+               LOGE("Invalid Operation. Set proper MV_3D_DEPTH_MODE");
+               return MEDIA_VISION_ERROR_INVALID_OPERATION;
        }
 
+       if (!mDfsAdaptor) {
+               LOGE("Invalid Opertation. Do Configure first.");
+               return MEDIA_VISION_ERROR_INVALID_OPERATION;
+       }
 
-       void Mv3d::GetBufferFromSource(mv_source_h source,
-                                                               unsigned char*& buffer,
-                                                               unsigned int& width,
-                                                               unsigned int& height,
-                                                               int& type,
-                                                               size_t& stride)
-       {
-               unsigned char* _buffer = nullptr;
-               unsigned int _bufferSize = 0;
-               unsigned int _width = 0;
-               unsigned int _height = 0;
-               mv_colorspace_e _colorSpace = MEDIA_VISION_COLORSPACE_INVALID;
-
-               int ret = mv_source_get_buffer(source, &_buffer, &_bufferSize);
-               if (ret != MEDIA_VISION_ERROR_NONE)
-                       throw std::runtime_error("invalid buffer pointer");
-
-               ret = mv_source_get_width(source, &_width);
-               if (ret != MEDIA_VISION_ERROR_NONE)
-                       throw std::runtime_error("invalid width");
-
-               ret = mv_source_get_height(source, &_height);
-               if (ret != MEDIA_VISION_ERROR_NONE)
-                       throw std::runtime_error("invalid height");
-
-               ret = mv_source_get_colorspace(source, &_colorSpace);
-               if (ret != MEDIA_VISION_ERROR_NONE)
-                       throw std::runtime_error("invalid color space");
-
-               buffer = new unsigned char [_bufferSize];
-               memcpy(buffer, _buffer, _bufferSize);
-               width = _width;
-               height = _height;
-               type = _colorSpace == MEDIA_VISION_COLORSPACE_RGB888 ?
-                                                                        DFS_DATA_TYPE_UINT8C3 :
-                                                                        DFS_DATA_TYPE_UINT8C1;
-               stride = _bufferSize / _height;
+       try {
+               mDfsAdaptor->initialize(mDfsParameter, mWidth, mHeight, mMinDisp, mMaxDisp, mStereoConfigPath);
+       } catch (const std::exception &e) {
+               LOGE("Failed to initialize");
+               return MEDIA_VISION_ERROR_INVALID_OPERATION;
        }
 
-       void Mv3d::GetDfsDataFromSources(mv_source_h baseSource,
-                                                               mv_source_h extraSource,
-                                                               DfsInputData& input)
-       {
-               unsigned char* baseBuffer = nullptr;
-               unsigned char* extraBuffer = nullptr;
-               unsigned int width = 0;
-               unsigned int height = 0;
-               int type = 0;
-               size_t stride = 0;
-
-               GetBufferFromSource(baseSource, baseBuffer, width, height, type, stride);
-               input.data = static_cast<void *>(baseBuffer);
-               input.type = type;
-               input.width = width;
-               input.height = height;
-               input.stride = stride;
-               input.format = DFS_DATA_INPUT_FORMAT_COUPLED_SBS;
-
-               if (extraSource)
-               {
-                       extraBuffer = nullptr;
-                       GetBufferFromSource(extraSource, extraBuffer, width, height, type, stride);
-
-                       if (input.type != type || input.width != width ||
-                               input.height != height || input.stride != stride) {
-                               throw std::runtime_error("left and right image's properties are different");
-                       }
+       return MEDIA_VISION_ERROR_NONE;
+}
 
-                       input.extraData = static_cast<void *>(extraBuffer);
-                       input.format = DFS_DATA_INPUT_FORMAT_DECOUPLED_SBS;
+void Mv3d::GetBufferFromSource(mv_source_h source, unsigned char *&buffer, unsigned int &width, unsigned int &height,
+                                                          int &type, size_t &stride)
+{
+       unsigned char *_buffer = nullptr;
+       unsigned int _bufferSize = 0;
+       unsigned int _width = 0;
+       unsigned int _height = 0;
+       mv_colorspace_e _colorSpace = MEDIA_VISION_COLORSPACE_INVALID;
+
+       int ret = mv_source_get_buffer(source, &_buffer, &_bufferSize);
+       if (ret != MEDIA_VISION_ERROR_NONE)
+               throw std::runtime_error("invalid buffer pointer");
+
+       ret = mv_source_get_width(source, &_width);
+       if (ret != MEDIA_VISION_ERROR_NONE)
+               throw std::runtime_error("invalid width");
+
+       ret = mv_source_get_height(source, &_height);
+       if (ret != MEDIA_VISION_ERROR_NONE)
+               throw std::runtime_error("invalid height");
+
+       ret = mv_source_get_colorspace(source, &_colorSpace);
+       if (ret != MEDIA_VISION_ERROR_NONE)
+               throw std::runtime_error("invalid color space");
+
+       buffer = new unsigned char[_bufferSize];
+       memcpy(buffer, _buffer, _bufferSize);
+       width = _width;
+       height = _height;
+       type = _colorSpace == MEDIA_VISION_COLORSPACE_RGB888 ? DFS_DATA_TYPE_UINT8C3 : DFS_DATA_TYPE_UINT8C1;
+       stride = _bufferSize / _height;
+}
+
+void Mv3d::GetDfsDataFromSources(mv_source_h baseSource, mv_source_h extraSource, DfsInputData &input)
+{
+       unsigned char *baseBuffer = nullptr;
+       unsigned char *extraBuffer = nullptr;
+       unsigned int width = 0;
+       unsigned int height = 0;
+       int type = 0;
+       size_t stride = 0;
+
+       GetBufferFromSource(baseSource, baseBuffer, width, height, type, stride);
+       input.data = static_cast<void *>(baseBuffer);
+       input.type = type;
+       input.width = width;
+       input.height = height;
+       input.stride = stride;
+       input.format = DFS_DATA_INPUT_FORMAT_COUPLED_SBS;
+
+       if (extraSource) {
+               extraBuffer = nullptr;
+               GetBufferFromSource(extraSource, extraBuffer, width, height, type, stride);
+
+               if (input.type != type || input.width != width || input.height != height || input.stride != stride) {
+                       throw std::runtime_error("left and right image's properties are different");
                }
+
+               input.extraData = static_cast<void *>(extraBuffer);
+               input.format = DFS_DATA_INPUT_FORMAT_DECOUPLED_SBS;
        }
+}
 
 #ifdef MV_3D_POINTCLOUD_IS_AVAILABLE
-       void Mv3d::GetPointcloudFromSource(DfsInputData &input,
-                                                                               DfsOutputData &depthData,
-                                                                               mv_3d_pointcloud_s &pointcloud)
-       {
-               camera::PinholeCameraIntrinsic intrinsic;
-               io::ReadIJsonConvertible(mIntrinsicPath, intrinsic);
-               cv::Mat img;
-               double depth_scale = 1000.0, depth_trunc = 200.0;
-               if (input.type == DFS_DATA_TYPE_UINT8C1) {
-                       img = cv::Mat(cv::Size(input.width, input.height), CV_8UC1, input.data);
-                       cv::cvtColor(img, img, cv::COLOR_GRAY2RGB);
-               } else if (input.type == DFS_DATA_TYPE_UINT8C3) {
-                       img = cv::Mat(cv::Size(input.width, input.height), CV_8UC3, input.data);
-                       cv::cvtColor(img, img, cv::COLOR_BGR2RGB);
-               }
-
-               geometry::Image img_color, img_depth;
-               img_color.Prepare(input.width, input.height, 3, 1);
-               uint8_t *pImg_color_data = img_color.data_.data();
-               memcpy(pImg_color_data, img.data, input.width * input.height * 3 * sizeof(unsigned char));
+void Mv3d::GetPointcloudFromSource(DfsInputData &input, DfsOutputData &depthData, mv_3d_pointcloud_s &pointcloud)
+{
+       camera::PinholeCameraIntrinsic intrinsic;
+       io::ReadIJsonConvertible(mIntrinsicPath, intrinsic);
+       cv::Mat img;
+       double depth_scale = 1000.0, depth_trunc = 200.0;
+       if (input.type == DFS_DATA_TYPE_UINT8C1) {
+               img = cv::Mat(cv::Size(input.width, input.height), CV_8UC1, input.data);
+               cv::cvtColor(img, img, cv::COLOR_GRAY2RGB);
+       } else if (input.type == DFS_DATA_TYPE_UINT8C3) {
+               img = cv::Mat(cv::Size(input.width, input.height), CV_8UC3, input.data);
+               cv::cvtColor(img, img, cv::COLOR_BGR2RGB);
+       }
 
-               img_depth.Prepare(input.width, input.height, 1, 2);
-               uint16_t *pImg_depth_data = (unsigned short*)img_depth.data_.data();
-               memcpy(pImg_depth_data, static_cast<DepthTypePtr>(depthData.data), depthData.width * depthData.height * 2);
+       geometry::Image img_color, img_depth;
+       img_color.Prepare(input.width, input.height, 3, 1);
+       uint8_t *pImg_color_data = img_color.data_.data();
+       memcpy(pImg_color_data, img.data, input.width * input.height * 3 * sizeof(unsigned char));
 
-               std::shared_ptr<geometry::RGBDImage> rgbd_image =
-                       geometry::RGBDImage::CreateFromColorAndDepth(
-                                       img_color, img_depth, depth_scale, depth_trunc, false);
+       img_depth.Prepare(input.width, input.height, 1, 2);
+       uint16_t *pImg_depth_data = (unsigned short *) img_depth.data_.data();
+       memcpy(pImg_depth_data, static_cast<DepthTypePtr>(depthData.data), depthData.width * depthData.height * 2);
 
-               auto pcd = geometry::PointCloud::CreateFromRGBDImage(*rgbd_image, intrinsic);
-               if (mSamplingRatio < 1.0) {
-                       utility::LogInfo("Downsampling... {}", mSamplingRatio);
-                       pcd = pcd->RandomDownSample(mSamplingRatio);
-               }
+       std::shared_ptr<geometry::RGBDImage> rgbd_image =
+                       geometry::RGBDImage::CreateFromColorAndDepth(img_color, img_depth, depth_scale, depth_trunc, false);
 
-               if (mOutlierRemovalPoints > 0 && mOutlierRemovalRadius > 0.0) {
-                       utility::LogInfo("RemoveRadiusOutliers... {} {}", mOutlierRemovalPoints, mOutlierRemovalRadius);
-                       std::vector<size_t> pt_map;
-                       std::tie(pcd, pt_map) = pcd->RemoveRadiusOutliers(mOutlierRemovalPoints, mOutlierRemovalRadius, true);
-               }
+       auto pcd = geometry::PointCloud::CreateFromRGBDImage(*rgbd_image, intrinsic);
+       if (mSamplingRatio < 1.0) {
+               utility::LogInfo("Downsampling... {}", mSamplingRatio);
+               pcd = pcd->RandomDownSample(mSamplingRatio);
+       }
 
-               pointcloud.pointcloud = static_cast<void*>(
-                                       new std::shared_ptr<open3d::geometry::PointCloud>(
-                                               std::move(pcd)));
+       if (mOutlierRemovalPoints > 0 && mOutlierRemovalRadius > 0.0) {
+               utility::LogInfo("RemoveRadiusOutliers... {} {}", mOutlierRemovalPoints, mOutlierRemovalRadius);
+               std::vector<size_t> pt_map;
+               std::tie(pcd, pt_map) = pcd->RemoveRadiusOutliers(mOutlierRemovalPoints, mOutlierRemovalRadius, true);
        }
+
+       pointcloud.pointcloud = static_cast<void *>(new std::shared_ptr<open3d::geometry::PointCloud>(std::move(pcd)));
+}
 #endif
 
-       int Mv3d::Run(mv_source_h baseSource, mv_source_h extraSource)
-       {
-               DfsInputData input;
-               try {
-                       if (mDfsThread) {
-                               mDfsIsLive = false;
-                               g_thread_join(mDfsThread);
-                               mDfsThread = nullptr;
-                       }
+int Mv3d::Run(mv_source_h baseSource, mv_source_h extraSource)
+{
+       DfsInputData input;
+       try {
+               if (mDfsThread) {
+                       mDfsIsLive = false;
+                       g_thread_join(mDfsThread);
+                       mDfsThread = nullptr;
+               }
 
-                       if (mDfsAsyncQueue) {
-                               g_async_queue_unref(mDfsAsyncQueue);
-                               mDfsAsyncQueue = nullptr;
-                       }
+               if (mDfsAsyncQueue) {
+                       g_async_queue_unref(mDfsAsyncQueue);
+                       mDfsAsyncQueue = nullptr;
+               }
 
-                       if (mInternalSource) {
-                               int ret = mv_destroy_source(mInternalSource);
-                               if (ret != MEDIA_VISION_ERROR_NONE) {
-                                       LOGE("Fail to destroy intern source. But keep going..");
-                               }
-                               mInternalSource = nullptr;
+               if (mInternalSource) {
+                       int ret = mv_destroy_source(mInternalSource);
+                       if (ret != MEDIA_VISION_ERROR_NONE) {
+                               LOGE("Fail to destroy intern source. But keep going..");
                        }
+                       mInternalSource = nullptr;
+               }
 
-                       GetDfsDataFromSources(baseSource, extraSource, input);
+               GetDfsDataFromSources(baseSource, extraSource, input);
 
-                       mDfsAdaptor->run(input);
-                       auto depthData = mDfsAdaptor->getOutputData();
+               mDfsAdaptor->run(input);
+               auto depthData = mDfsAdaptor->getOutputData();
 
-                       mDepthCallback(
-                                       baseSource,
-                                       static_cast<DepthTypePtr>(depthData.data),
-                                       depthData.width, depthData.height,
-                                       mDepthUserData);
+               mDepthCallback(baseSource, static_cast<DepthTypePtr>(depthData.data), depthData.width, depthData.height,
+                                          mDepthUserData);
 #ifdef MV_3D_POINTCLOUD_IS_AVAILABLE
-                       if (mPointcloudCallback) {
-                               mv_3d_pointcloud_s p = {.type = MV_3D_POINTCLOUD_TYPE_PCD_BIN, .pointcloud = NULL};
-                               GetPointcloudFromSource(input, depthData, p);
-
-                               mv_3d_pointcloud_h pcd = &p;
-                               mPointcloudCallback(baseSource,
-                                               pcd,
-                                               mPointcloudUserData);
-                               auto pPcd = static_cast<std::shared_ptr<open3d::geometry::PointCloud>*>(p.pointcloud);
-                               auto _pcd = std::move(pPcd);
-                               delete _pcd;
-                       }
-#endif
-                       delete [] static_cast<unsigned char*>(input.data);
-                       delete [] static_cast<unsigned char*>(input.extraData);
-               } catch (const std::exception &e) {
-                       LOGE("Failed to Run with %s", e.what());
-                       return MEDIA_VISION_ERROR_INVALID_OPERATION;
+               if (mPointcloudCallback) {
+                       mv_3d_pointcloud_s p = { .type = MV_3D_POINTCLOUD_TYPE_PCD_BIN, .pointcloud = NULL };
+                       GetPointcloudFromSource(input, depthData, p);
+
+                       mv_3d_pointcloud_h pcd = &p;
+                       mPointcloudCallback(baseSource, pcd, mPointcloudUserData);
+                       auto pPcd = static_cast<std::shared_ptr<open3d::geometry::PointCloud> *>(p.pointcloud);
+                       auto _pcd = std::move(pPcd);
+                       delete _pcd;
                }
-
-               return MEDIA_VISION_ERROR_NONE;
+#endif
+               delete[] static_cast<unsigned char *>(input.data);
+               delete[] static_cast<unsigned char *>(input.extraData);
+       } catch (const std::exception &e) {
+               LOGE("Failed to Run with %s", e.what());
+               return MEDIA_VISION_ERROR_INVALID_OPERATION;
        }
 
-       int Mv3d::RunAsync(mv_source_h baseSource, mv_source_h extraSource)
-       {
-               try {
+       return MEDIA_VISION_ERROR_NONE;
+}
+
+int Mv3d::RunAsync(mv_source_h baseSource, mv_source_h extraSource)
+{
+       try {
+               if (!mDfsAsyncQueue) {
+                       mDfsAsyncQueue = g_async_queue_new();
                        if (!mDfsAsyncQueue) {
-                               mDfsAsyncQueue = g_async_queue_new();
-                               if (!mDfsAsyncQueue) {
-                                       LOGE("Fail to g_async_queue_new()");
-                                       return MEDIA_VISION_ERROR_INTERNAL;
-                               }
+                               LOGE("Fail to g_async_queue_new()");
+                               return MEDIA_VISION_ERROR_INTERNAL;
                        }
+               }
+
+               if (!mDfsThread) {
+                       mDfsThread = g_thread_new("depth_thread", &Mv3d::DfsThreadLoop, static_cast<gpointer>(this));
 
                        if (!mDfsThread) {
-                               mDfsThread = g_thread_new("depth_thread", &Mv3d::DfsThreadLoop, static_cast<gpointer>(this));
-
-                               if (!mDfsThread) {
-                                       g_async_queue_unref(mDfsAsyncQueue);
-                                       mDfsAsyncQueue = nullptr;
-                                       LOGE("Fail to g_thread_new()");
-                                       return MEDIA_VISION_ERROR_INTERNAL;
-                               }
-                               mDfsIsLive = true;
+                               g_async_queue_unref(mDfsAsyncQueue);
+                               mDfsAsyncQueue = nullptr;
+                               LOGE("Fail to g_thread_new()");
+                               return MEDIA_VISION_ERROR_INTERNAL;
                        }
+                       mDfsIsLive = true;
+               }
 
-                       std::shared_ptr<DfsInputData> input(new DfsInputData);
-                       GetDfsDataFromSources(baseSource, extraSource, *input);
-                       if (!mInternalSource) {
-                               int ret = mv_create_source(&mInternalSource);
-                               if (ret != MEDIA_VISION_ERROR_NONE) {
-                                       LOGE("Fail to create internal source");
-                                       return MEDIA_VISION_ERROR_INTERNAL;
-                               }
+               std::shared_ptr<DfsInputData> input(new DfsInputData);
+               GetDfsDataFromSources(baseSource, extraSource, *input);
+               if (!mInternalSource) {
+                       int ret = mv_create_source(&mInternalSource);
+                       if (ret != MEDIA_VISION_ERROR_NONE) {
+                               LOGE("Fail to create internal source");
+                               return MEDIA_VISION_ERROR_INTERNAL;
                        }
-                       g_async_queue_push(mDfsAsyncQueue, static_cast<void*>(
-                                                                                       new std::shared_ptr<DfsInputData>(
-                                                                                               std::move(input))));
-               } catch (const std::exception &e) {
-                       LOGE("Failed to Run with %s", e.what());
-                       return MEDIA_VISION_ERROR_INVALID_OPERATION;
                }
-
-               return MEDIA_VISION_ERROR_NONE;
+               g_async_queue_push(mDfsAsyncQueue, static_cast<void *>(new std::shared_ptr<DfsInputData>(std::move(input))));
+       } catch (const std::exception &e) {
+               LOGE("Failed to Run with %s", e.what());
+               return MEDIA_VISION_ERROR_INVALID_OPERATION;
        }
 
-       gpointer Mv3d::DfsThreadLoop(gpointer data)
-       {
-               Mv3d *handle = static_cast<Mv3d*>(data);
-               while(handle->mDfsIsLive) {
-                       gpointer base = g_async_queue_try_pop(handle->mDfsAsyncQueue);
-                       if (!base) {
-                               continue;
-                       }
+       return MEDIA_VISION_ERROR_NONE;
+}
 
-                       auto pInput = static_cast<std::shared_ptr<DfsInputData>*>(base);
-                       auto input = std::move(*pInput);
-                       delete pInput;
-                       handle->mDfsAdaptor->run(*input);
-
-                       auto depthData = handle->mDfsAdaptor->getOutputData();
-                       auto leftData = handle->mDfsAdaptor->getLeftData();
-                       int ret = mv_source_fill_by_buffer(handle->mInternalSource,
-                                                               static_cast<unsigned char*>(leftData.data),
-                                                               leftData.stride * leftData.height,
-                                                               leftData.width,
-                                                               leftData.height,
-                                                               leftData.type == DFS_DATA_TYPE_UINT8C3 ? MEDIA_VISION_COLORSPACE_RGB888 :
-                                                                                               MEDIA_VISION_COLORSPACE_Y800);
-                       if (MEDIA_VISION_ERROR_NONE != ret) {
-                               LOGW("Errors were occurred during source filling %i", ret);
-                               continue;
-                       }
-                       handle->mDepthCallback(
-                                       static_cast<mv_source_h>(handle->mInternalSource),
-                                       static_cast<DepthTypePtr>(depthData.data),
-                                       depthData.width, depthData.height,
-                                       handle->mDepthUserData);
-#ifdef MV_3D_POINTCLOUD_IS_AVAILABLE
-                       if (handle->mPointcloudCallback) {
-                               mv_3d_pointcloud_s p = {.type = MV_3D_POINTCLOUD_TYPE_PCD_BIN, .pointcloud = NULL};
-                               //mPointcloudThread = g_thread_new("pointcloud_thread",
-                               //              &Mv3d::PointcloudThreadLoop,
-                               //              static_cast<gpointer>(this));
-                               handle->GetPointcloudFromSource(*input, depthData, p);
-
-                               mv_3d_pointcloud_h pcd = &p;
-                               handle->mPointcloudCallback(static_cast<mv_source_h>(handle->mInternalSource),
-                                               pcd,
-                                               handle->mPointcloudUserData);
-                               auto pPcd = static_cast<std::shared_ptr<open3d::geometry::PointCloud>*>(p.pointcloud);
-                               auto _pcd = std::move(pPcd);
-                               delete _pcd;
-                       }
-#endif
-                       delete [] static_cast<unsigned char*>(input->data);
-                       delete [] static_cast<unsigned char*>(input->extraData);
-                       mv_source_clear(handle->mInternalSource);
-                       input.reset();
+gpointer Mv3d::DfsThreadLoop(gpointer data)
+{
+       Mv3d *handle = static_cast<Mv3d *>(data);
+       while (handle->mDfsIsLive) {
+               gpointer base = g_async_queue_try_pop(handle->mDfsAsyncQueue);
+               if (!base) {
+                       continue;
                }
 
-               return nullptr;
+               auto pInput = static_cast<std::shared_ptr<DfsInputData> *>(base);
+               auto input = std::move(*pInput);
+               delete pInput;
+               handle->mDfsAdaptor->run(*input);
+
+               auto depthData = handle->mDfsAdaptor->getOutputData();
+               auto leftData = handle->mDfsAdaptor->getLeftData();
+               int ret = mv_source_fill_by_buffer(handle->mInternalSource, static_cast<unsigned char *>(leftData.data),
+                                                                                  leftData.stride * leftData.height, leftData.width, leftData.height,
+                                                                                  leftData.type == DFS_DATA_TYPE_UINT8C3 ? MEDIA_VISION_COLORSPACE_RGB888 :
+                                                                                                                                                                       MEDIA_VISION_COLORSPACE_Y800);
+               if (MEDIA_VISION_ERROR_NONE != ret) {
+                       LOGW("Errors were occurred during source filling %i", ret);
+                       continue;
+               }
+               handle->mDepthCallback(static_cast<mv_source_h>(handle->mInternalSource),
+                                                          static_cast<DepthTypePtr>(depthData.data), depthData.width, depthData.height,
+                                                          handle->mDepthUserData);
+#ifdef MV_3D_POINTCLOUD_IS_AVAILABLE
+               if (handle->mPointcloudCallback) {
+                       mv_3d_pointcloud_s p = { .type = MV_3D_POINTCLOUD_TYPE_PCD_BIN, .pointcloud = NULL };
+                       //mPointcloudThread = g_thread_new("pointcloud_thread",
+                       //              &Mv3d::PointcloudThreadLoop,
+                       //              static_cast<gpointer>(this));
+                       handle->GetPointcloudFromSource(*input, depthData, p);
+
+                       mv_3d_pointcloud_h pcd = &p;
+                       handle->mPointcloudCallback(static_cast<mv_source_h>(handle->mInternalSource), pcd,
+                                                                               handle->mPointcloudUserData);
+                       auto pPcd = static_cast<std::shared_ptr<open3d::geometry::PointCloud> *>(p.pointcloud);
+                       auto _pcd = std::move(pPcd);
+                       delete _pcd;
+               }
+#endif
+               delete[] static_cast<unsigned char *>(input->data);
+               delete[] static_cast<unsigned char *>(input->extraData);
+               mv_source_clear(handle->mInternalSource);
+               input.reset();
        }
 
-       int Mv3d::WritePointcloudFile(mv_3d_pointcloud_h pointcloud, mv_3d_pointcloud_type_e type, char *fileName)
-       {
+       return nullptr;
+}
+
+int Mv3d::WritePointcloudFile(mv_3d_pointcloud_h pointcloud, mv_3d_pointcloud_type_e type, char *fileName)
+{
 #ifdef MV_3D_POINTCLOUD_IS_AVAILABLE
-               mv_3d_pointcloud_s *s = (mv_3d_pointcloud_s*) pointcloud;
-               if (s == NULL) {
-                       LOGE("Pointcloud data is NULL");
-                       return MEDIA_VISION_ERROR_INVALID_PARAMETER;
-               }
+       mv_3d_pointcloud_s *s = (mv_3d_pointcloud_s *) pointcloud;
+       if (s == NULL) {
+               LOGE("Pointcloud data is NULL");
+               return MEDIA_VISION_ERROR_INVALID_PARAMETER;
+       }
 
-               if (access(mPointcloudOutputPath.c_str(), W_OK) != 0) {
-                       if (errno == EACCES || errno == EPERM) {
-                               utility::LogInfo("Fail to access path[%s]: Permission Denied", mPointcloudOutputPath.c_str());
-                               return MEDIA_VISION_ERROR_PERMISSION_DENIED;;
-                       } else {
-                               utility::LogInfo("Fail to access path[%s]: Invalid Path", mPointcloudOutputPath.c_str());
-                               return MEDIA_VISION_ERROR_INVALID_PARAMETER;
-                       }
+       if (access(mPointcloudOutputPath.c_str(), W_OK) != 0) {
+               if (errno == EACCES || errno == EPERM) {
+                       utility::LogInfo("Fail to access path[%s]: Permission Denied", mPointcloudOutputPath.c_str());
+                       return MEDIA_VISION_ERROR_PERMISSION_DENIED;
+                       ;
+               } else {
+                       utility::LogInfo("Fail to access path[%s]: Invalid Path", mPointcloudOutputPath.c_str());
+                       return MEDIA_VISION_ERROR_INVALID_PARAMETER;
                }
+       }
 
-               bool bText = false;
-               if (type == MV_3D_POINTCLOUD_TYPE_PCD_TXT || type == MV_3D_POINTCLOUD_TYPE_PLY_TXT)
-                       bText = true;
-               else
-                       bText = false;
+       bool bText = false;
+       if (type == MV_3D_POINTCLOUD_TYPE_PCD_TXT || type == MV_3D_POINTCLOUD_TYPE_PLY_TXT)
+               bText = true;
+       else
+               bText = false;
 
-               auto pPcd = static_cast<std::shared_ptr<open3d::geometry::PointCloud>*>(s->pointcloud);
-               open3d::geometry::PointCloud p;
-               p += **pPcd;
+       auto pPcd = static_cast<std::shared_ptr<open3d::geometry::PointCloud> *>(s->pointcloud);
+       open3d::geometry::PointCloud p;
+       p += **pPcd;
 
-               std::string fullPath = mPointcloudOutputPath + std::string("/") + std::string(fileName);
+       std::string fullPath = mPointcloudOutputPath + std::string("/") + std::string(fileName);
 
-               if (io::WritePointCloud(fullPath.c_str(), p, {bText, false, false, {}})) {
-                       utility::LogInfo("Successfully wrote {}", fullPath.c_str());
-               } else {
-                       utility::LogError("Failed to write {}", fullPath.c_str());
-                       return MEDIA_VISION_ERROR_INTERNAL;
-               }
+       if (io::WritePointCloud(fullPath.c_str(), p, { bText, false, false, {} })) {
+               utility::LogInfo("Successfully wrote {}", fullPath.c_str());
+       } else {
+               utility::LogError("Failed to write {}", fullPath.c_str());
+               return MEDIA_VISION_ERROR_INTERNAL;
+       }
 #else
        return MEDIA_VISION_ERROR_NOT_SUPPORTED;
 #endif
-               return MEDIA_VISION_ERROR_NONE;
-       }
+       return MEDIA_VISION_ERROR_NONE;
+}
 }
 }
index 5f62b6d..ef7f939 100644 (file)
@@ -52,8 +52,7 @@ int mv_3d_destroy(mv_3d_h mv3d)
        return ret;
 }
 
-int mv_3d_configure(mv_3d_h mv3d,
-                       mv_engine_config_h engine_config)
+int mv_3d_configure(mv_3d_h mv3d, mv_engine_config_h engine_config)
 {
        MEDIA_VISION_SUPPORT_CHECK(_mv_3d_all_check_system_info_feature_supported());
        MEDIA_VISION_INSTANCE_CHECK(mv3d);
@@ -68,9 +67,7 @@ int mv_3d_configure(mv_3d_h mv3d,
        return ret;
 }
 
-int mv_3d_set_depth_cb(mv_3d_h mv3d,
-                       mv_3d_depth_cb depth_cb,
-                       void *user_data)
+int mv_3d_set_depth_cb(mv_3d_h mv3d, mv_3d_depth_cb depth_cb, void *user_data)
 {
        MEDIA_VISION_SUPPORT_CHECK(_mv_3d_depth_check_system_info_feature_supported() ||
                                                           _mv_3d_check_system_info_feature_supported());
@@ -87,9 +84,7 @@ int mv_3d_set_depth_cb(mv_3d_h mv3d,
        return ret;
 }
 
-int mv_3d_set_pointcloud_cb(mv_3d_h mv3d,
-                       mv_3d_pointcloud_cb pointcloud_cb,
-                       void *user_data)
+int mv_3d_set_pointcloud_cb(mv_3d_h mv3d, mv_3d_pointcloud_cb pointcloud_cb, void *user_data)
 {
        MEDIA_VISION_SUPPORT_CHECK(_mv_3d_pointcloud_check_system_info_feature_supported() ||
                                                           _mv_3d_check_system_info_feature_supported());
@@ -120,10 +115,7 @@ int mv_3d_prepare(mv_3d_h mv3d)
        return ret;
 }
 
-int mv_3d_run(mv_3d_h mv3d,
-                       mv_source_h source,
-                       mv_source_h source_extra,
-                       mv_source_h color)
+int mv_3d_run(mv_3d_h mv3d, mv_source_h source, mv_source_h source_extra, mv_source_h color)
 {
        MEDIA_VISION_SUPPORT_CHECK(_mv_3d_all_check_system_info_feature_supported());
        MEDIA_VISION_INSTANCE_CHECK(mv3d);
@@ -131,19 +123,14 @@ int mv_3d_run(mv_3d_h mv3d,
 
        MEDIA_VISION_FUNCTION_ENTER();
 
-       int ret = mv3dRun(mv3d,
-                                       source,
-                                       source_extra);
+       int ret = mv3dRun(mv3d, source, source_extra);
 
        MEDIA_VISION_FUNCTION_LEAVE();
 
        return ret;
 }
 
-int mv_3d_run_async(mv_3d_h mv3d,
-                       mv_source_h source,
-                       mv_source_h source_extra,
-                       mv_source_h color)
+int mv_3d_run_async(mv_3d_h mv3d, mv_source_h source, mv_source_h source_extra, mv_source_h color)
 {
        MEDIA_VISION_SUPPORT_CHECK(_mv_3d_all_check_system_info_feature_supported());
        MEDIA_VISION_INSTANCE_CHECK(mv3d);
@@ -151,19 +138,15 @@ int mv_3d_run_async(mv_3d_h mv3d,
 
        MEDIA_VISION_FUNCTION_ENTER();
 
-       int ret = mv3dRunAsync(mv3d,
-                                                       source,
-                                                       source_extra);
+       int ret = mv3dRunAsync(mv3d, source, source_extra);
 
        MEDIA_VISION_FUNCTION_LEAVE();
 
        return ret;
 }
 
-int mv_3d_pointcloud_write_file(mv_3d_h mv3d,
-                       mv_3d_pointcloud_h pointcloud,
-                       mv_3d_pointcloud_type_e type,
-                       char *filename)
+int mv_3d_pointcloud_write_file(mv_3d_h mv3d, mv_3d_pointcloud_h pointcloud, mv_3d_pointcloud_type_e type,
+                                                               char *filename)
 {
        MEDIA_VISION_SUPPORT_CHECK(_mv_3d_pointcloud_check_system_info_feature_supported() ||
                                                           _mv_3d_check_system_info_feature_supported());
@@ -178,4 +161,3 @@ int mv_3d_pointcloud_write_file(mv_3d_h mv3d,
 
        return ret;
 }
-
index 95870f8..50f8a72 100644 (file)
@@ -116,22 +116,19 @@ int mv_3d_pointcloud_plane_inlier_destroy(mv_3d_pointcloud_plane_inlier_h handle
 #endif
 
 #ifdef MV_3D_POINTCLOUD_IS_AVAILABLE
-int mv_3d_pointcloud_segment_plane(mv_3d_h mv3d,
-                       mv_3d_pointcloud_h pointcloud,
-                       mv_3d_pointcloud_plane_model_h *model,
-                       mv_3d_pointcloud_plane_inlier_h *inlier)
+int mv_3d_pointcloud_segment_plane(mv_3d_h mv3d, mv_3d_pointcloud_h pointcloud, mv_3d_pointcloud_plane_model_h *model,
+                                                                  mv_3d_pointcloud_plane_inlier_h *inlier)
 {
-
        MEDIA_VISION_NULL_ARG_CHECK(mv3d);
        MEDIA_VISION_NULL_ARG_CHECK(pointcloud);
        MEDIA_VISION_NULL_ARG_CHECK(model);
        MEDIA_VISION_NULL_ARG_CHECK(inlier);
        MEDIA_VISION_FUNCTION_ENTER();
 
-       mv_3d_pointcloud_s *s = (mv_3d_pointcloud_s*) pointcloud;
+       mv_3d_pointcloud_s *s = (mv_3d_pointcloud_s *) pointcloud;
        Eigen::Vector4d *best_plane_model = new Eigen::Vector4d;
        std::vector<size_t> *plane_inlier = new std::vector<size_t>;
-       auto pPcd = static_cast<std::shared_ptr<open3d::geometry::PointCloud>*>(s->pointcloud);
+       auto pPcd = static_cast<std::shared_ptr<open3d::geometry::PointCloud> *>(s->pointcloud);
        open3d::geometry::PointCloud p;
        p += **pPcd;
 
@@ -144,39 +141,32 @@ int mv_3d_pointcloud_segment_plane(mv_3d_h mv3d,
        return MEDIA_VISION_ERROR_NONE;
 }
 #else
-int mv_3d_pointcloud_segment_plane(mv_3d_h mv3d,
-                       mv_3d_pointcloud_h pointcloud,
-                       mv_3d_pointcloud_plane_model_h *model,
-                       mv_3d_pointcloud_plane_inlier_h *inlier)
+int mv_3d_pointcloud_segment_plane(mv_3d_h mv3d, mv_3d_pointcloud_h pointcloud, mv_3d_pointcloud_plane_model_h *model,
+                                                                  mv_3d_pointcloud_plane_inlier_h *inlier)
 {
        return MEDIA_VISION_ERROR_NOT_SUPPORTED;
 }
 #endif
 
 #ifdef MV_3D_POINTCLOUD_IS_AVAILABLE
-int mv_3d_pointcloud_plane_write_file(mv_3d_h mv3d,
-                       mv_3d_pointcloud_plane_model_h model,
-                       mv_3d_pointcloud_plane_inlier_h inlier,
-                       mv_3d_pointcloud_h pointcloud,
-                       mv_3d_pointcloud_type_e type,
-                       char *filename)
+int mv_3d_pointcloud_plane_write_file(mv_3d_h mv3d, mv_3d_pointcloud_plane_model_h model,
+                                                                         mv_3d_pointcloud_plane_inlier_h inlier, mv_3d_pointcloud_h pointcloud,
+                                                                         mv_3d_pointcloud_type_e type, char *filename)
 {
        MEDIA_VISION_NULL_ARG_CHECK(mv3d);
        MEDIA_VISION_NULL_ARG_CHECK(model);
        MEDIA_VISION_NULL_ARG_CHECK(inlier);
        MEDIA_VISION_FUNCTION_ENTER();
 
-       mv_3d_pointcloud_s *s = (mv_3d_pointcloud_s*) pointcloud;
-       std::vector<size_t> *plane_inlier = (std::vector<size_t>*) inlier;
-       auto pPcd = static_cast<std::shared_ptr<open3d::geometry::PointCloud>*>(s->pointcloud);
+       mv_3d_pointcloud_s *s = (mv_3d_pointcloud_s *) pointcloud;
+       std::vector<size_t> *plane_inlier = (std::vector<size_t> *) inlier;
+       auto pPcd = static_cast<std::shared_ptr<open3d::geometry::PointCloud> *>(s->pointcloud);
        open3d::geometry::PointCloud p;
        p += **pPcd;
 
        std::shared_ptr<geometry::PointCloud> plane = p.SelectByIndex(*plane_inlier);
-       mv_3d_pointcloud_s _pcd = {.type = MV_3D_POINTCLOUD_TYPE_PCD_BIN, .pointcloud = NULL};
-       _pcd.pointcloud = static_cast<void*>(
-                       new std::shared_ptr<open3d::geometry::PointCloud>(
-                                       std::move(plane)));
+       mv_3d_pointcloud_s _pcd = { .type = MV_3D_POINTCLOUD_TYPE_PCD_BIN, .pointcloud = NULL };
+       _pcd.pointcloud = static_cast<void *>(new std::shared_ptr<open3d::geometry::PointCloud>(std::move(plane)));
        mv_3d_pointcloud_h pcd = &_pcd;
 
        auto pMv3d = static_cast<Mv3d *>(mv3d);
@@ -191,12 +181,9 @@ int mv_3d_pointcloud_plane_write_file(mv_3d_h mv3d,
        return ret;
 }
 #else
-int mv_3d_pointcloud_plane_write_file(mv_3d_h mv3d,
-                       mv_3d_pointcloud_plane_model_h model,
-                       mv_3d_pointcloud_plane_inlier_h inlier,
-                       mv_3d_pointcloud_h pointcloud,
-                       mv_3d_pointcloud_type_e type,
-                       char *filename)
+int mv_3d_pointcloud_plane_write_file(mv_3d_h mv3d, mv_3d_pointcloud_plane_model_h model,
+                                                                         mv_3d_pointcloud_plane_inlier_h inlier, mv_3d_pointcloud_h pointcloud,
+                                                                         mv_3d_pointcloud_type_e type, char *filename)
 {
        return MEDIA_VISION_ERROR_NOT_SUPPORTED;
 }
index 4c09f60..fded6aa 100644 (file)
@@ -67,10 +67,10 @@ int mv3dSetDepthParameters(mv_3d_h mv3d, mv_engine_config_h engine_config)
        auto pMv3d = static_cast<Mv3d *>(mv3d);
 
        pMv3d->SetParameters(127.5, // threshold
-                                               3, // aggregation window width
-                                           3, // aggregation window height
-                                               0 // speckleSize
-                                               );
+                                                3, // aggregation window width
+                                                3, // aggregation window height
+                                                0 // speckleSize
+       );
        LOGI("LEAVE");
 
        return MEDIA_VISION_ERROR_NONE;
@@ -88,8 +88,7 @@ int mv3dConfigure(mv_3d_h mv3d, mv_engine_config_h engine_config)
 
        int mode = MV_3D_DEPTH_MODE_NONE;
 
-       int ret = mv_engine_config_get_int_attribute(
-                       engine_config, MV_3D_DEPTH_MODE, &mode);
+       int ret = mv_engine_config_get_int_attribute(engine_config, MV_3D_DEPTH_MODE, &mode);
        if (ret != MEDIA_VISION_ERROR_NONE) {
                LOGE("Failed to get depth mode");
                return ret;
@@ -102,15 +101,13 @@ int mv3dConfigure(mv_3d_h mv3d, mv_engine_config_h engine_config)
        }
 
        int depthWidth, depthHeight, minDisp, maxDisp;
-       ret = mv_engine_config_get_int_attribute(
-                       engine_config, MV_3D_DEPTH_WIDTH, &depthWidth);
+       ret = mv_engine_config_get_int_attribute(engine_config, MV_3D_DEPTH_WIDTH, &depthWidth);
        if (ret != MEDIA_VISION_ERROR_NONE) {
                LOGE("Failed to get depth width");
                return ret;
        }
 
-       ret = mv_engine_config_get_int_attribute(
-                       engine_config, MV_3D_DEPTH_HEIGHT, &depthHeight);
+       ret = mv_engine_config_get_int_attribute(engine_config, MV_3D_DEPTH_HEIGHT, &depthHeight);
        if (ret != MEDIA_VISION_ERROR_NONE) {
                LOGE("Failed to get depth height");
                return ret;
@@ -121,70 +118,61 @@ int mv3dConfigure(mv_3d_h mv3d, mv_engine_config_h engine_config)
                return MEDIA_VISION_ERROR_INVALID_PARAMETER;
        }
 
-       ret = mv_engine_config_get_int_attribute(
-                       engine_config, MV_3D_DEPTH_MIN_DISPARITY, &minDisp);
+       ret = mv_engine_config_get_int_attribute(engine_config, MV_3D_DEPTH_MIN_DISPARITY, &minDisp);
        if (ret != MEDIA_VISION_ERROR_NONE) {
                LOGE("Failed to get min disparity");
                return ret;
        }
 
-       ret = mv_engine_config_get_int_attribute(
-                       engine_config, MV_3D_DEPTH_MAX_DISPARITY, &maxDisp);
+       ret = mv_engine_config_get_int_attribute(engine_config, MV_3D_DEPTH_MAX_DISPARITY, &maxDisp);
        if (ret != MEDIA_VISION_ERROR_NONE) {
                LOGE("Failed to get max disparity");
                return ret;
        }
 
        double samplingRatio;
-       ret = mv_engine_config_get_double_attribute(
-                       engine_config, MV_3D_POINTCLOUD_SAMPLING_RATIO,&samplingRatio);
+       ret = mv_engine_config_get_double_attribute(engine_config, MV_3D_POINTCLOUD_SAMPLING_RATIO, &samplingRatio);
        if (ret != MEDIA_VISION_ERROR_NONE) {
                LOGE("Failed to get stereo configuration file path");
                return ret;
        }
 
        int outlierRemovalPoints;
-       ret = mv_engine_config_get_int_attribute(
-                       engine_config, MV_3D_POINTCLOUD_OUTLIER_REMOVAL_POINTS, &outlierRemovalPoints);
+       ret = mv_engine_config_get_int_attribute(engine_config, MV_3D_POINTCLOUD_OUTLIER_REMOVAL_POINTS,
+                                                                                        &outlierRemovalPoints);
        if (ret != MEDIA_VISION_ERROR_NONE) {
                LOGE("Failed to get stereo configuration file path");
                return ret;
        }
 
        double outlierRemovalRadius;
-       ret = mv_engine_config_get_double_attribute(
-                       engine_config, MV_3D_POINTCLOUD_OUTLIER_REMOVAL_RADIUS, &outlierRemovalRadius);
+       ret = mv_engine_config_get_double_attribute(engine_config, MV_3D_POINTCLOUD_OUTLIER_REMOVAL_RADIUS,
+                                                                                               &outlierRemovalRadius);
        if (ret != MEDIA_VISION_ERROR_NONE) {
                LOGE("Failed to get stereo configuration file path");
                return ret;
        }
 
        char *stereoConfigFilePath = NULL;
-       ret = mv_engine_config_get_string_attribute(
-                       engine_config, MV_3D_DEPTH_STEREO_CONFIG_FILE_PATH, &stereoConfigFilePath);
+       ret = mv_engine_config_get_string_attribute(engine_config, MV_3D_DEPTH_STEREO_CONFIG_FILE_PATH,
+                                                                                               &stereoConfigFilePath);
        if (ret != MEDIA_VISION_ERROR_NONE) {
                LOGE("Failed to get stereo configuration file path");
                return ret;
        }
 
        char *pointcloudOutputFilePath = NULL;
-       ret = mv_engine_config_get_string_attribute(
-                       engine_config, MV_3D_POINTCLOUD_OUTPUT_FILE_PATH, &pointcloudOutputFilePath);
+       ret = mv_engine_config_get_string_attribute(engine_config, MV_3D_POINTCLOUD_OUTPUT_FILE_PATH,
+                                                                                               &pointcloudOutputFilePath);
        if (ret != MEDIA_VISION_ERROR_NONE) {
                LOGE("Failed to get stereo configuration file path");
                goto out;
        }
 
        pMv3d = static_cast<Mv3d *>(mv3d);
-       ret = pMv3d->Configure(mode,
-                                                       static_cast<unsigned int>(depthWidth),
-                                                       static_cast<unsigned int>(depthHeight),
-                                                       minDisp, maxDisp,
-                                                       samplingRatio,
-                                                       outlierRemovalPoints,
-                                                       outlierRemovalRadius,
-                                                       stereoConfigFilePath,
-                                                       pointcloudOutputFilePath);
+       ret = pMv3d->Configure(mode, static_cast<unsigned int>(depthWidth), static_cast<unsigned int>(depthHeight), minDisp,
+                                                  maxDisp, samplingRatio, outlierRemovalPoints, outlierRemovalRadius, stereoConfigFilePath,
+                                                  pointcloudOutputFilePath);
 
        if (ret != MEDIA_VISION_ERROR_NONE) {
                LOGE("Failed to configure Depth");
@@ -229,7 +217,6 @@ int mv3dSetDepthCallback(mv_3d_h mv3d, mv_3d_depth_cb depth_cb, void *user_data)
        return MEDIA_VISION_ERROR_NONE;
 }
 
-
 int mv3dSetPointcloudCallback(mv_3d_h mv3d, mv_3d_pointcloud_cb pointcloud_cb, void *user_data)
 {
        LOGI("ENTER");
@@ -276,15 +263,12 @@ int mv3dPrepare(mv_3d_h mv3d)
        return ret;
 }
 
-int mv3dRun(mv_3d_h mv3d,
-                       mv_source_h source,
-                       mv_source_h source_extra)
+int mv3dRun(mv_3d_h mv3d, mv_source_h source, mv_source_h source_extra)
 {
        LOGI("ENTER");
 
        if (!source || !mv3d) {
-               LOGE("source[%p], mv3d[%p]",
-                       source, mv3d);
+               LOGE("source[%p], mv3d[%p]", source, mv3d);
                return MEDIA_VISION_ERROR_INVALID_PARAMETER;
        }
 
@@ -301,15 +285,12 @@ int mv3dRun(mv_3d_h mv3d,
        return ret;
 }
 
-int mv3dRunAsync(mv_3d_h mv3d,
-                       mv_source_h source,
-                       mv_source_h source_extra)
+int mv3dRunAsync(mv_3d_h mv3d, mv_source_h source, mv_source_h source_extra)
 {
        LOGI("ENTER");
 
        if (!source || !mv3d) {
-               LOGE("source[%p], mv3d[%p]",
-                       source, mv3d);
+               LOGE("source[%p], mv3d[%p]", source, mv3d);
                return MEDIA_VISION_ERROR_INVALID_PARAMETER;
        }
 
index 1a2cbfd..bd8e2ba 100644 (file)
@@ -31,8 +31,7 @@ namespace Barcode
  *
  * @since_tizen @if MOBILE 2.4 @else 3.0 @endif
  */
-enum BarcodeType
-{
+enum BarcodeType {
        BARCODE_QR = 58,
        BARCODE_UPCA = 34,
        BARCODE_UPCE = 37,
@@ -55,8 +54,7 @@ enum BarcodeType
  * @since_tizen @if MOBILE 2.4 @else 3.0 @endif
  * @remarks This is unavailable for 1D barcodes.
  */
-enum BarcodeQRErrorCorrectionLevel
-{
+enum BarcodeQRErrorCorrectionLevel {
        BARCODE_QR_ECC_UNAVAILABLE = 0,
        BARCODE_QR_ECC_LOW = 1,
        BARCODE_QR_ECC_MEDIUM = 2,
@@ -70,8 +68,7 @@ enum BarcodeQRErrorCorrectionLevel
  * @since_tizen @if MOBILE 2.4 @else 3.0 @endif
  * @remarks This is unavailable for 1D barcodes.
  */
-enum BarcodeQREncodingMode
-{
+enum BarcodeQREncodingMode {
        BARCODE_QR_MODE_NUMERIC = 1,
        BARCODE_QR_MODE_ALPHANUMERIC = 1,
        BARCODE_QR_MODE_BYTE = 0,
@@ -85,31 +82,21 @@ enum BarcodeQREncodingMode
  *
  * @since_tizen @if MOBILE 2.4 @else 3.0 @endif
  */
-enum BarcodeImageFormat
-{
-       BARCODE_IMAGE_JPG,
-       BARCODE_IMAGE_PNG,
-       BARCODE_IMAGE_BMP
-};
+enum BarcodeImageFormat { BARCODE_IMAGE_JPG, BARCODE_IMAGE_PNG, BARCODE_IMAGE_BMP };
 
 /**
  * @brief The Barcode generation text option enumeration.
  *
  * @since_tizen @if MOBILE 2.4 @else 3.0 @endif
  */
-enum BarcodeGenTextOpt
-{
-       BARCODE_GEN_TEXT_INVISIBLE,
-       BARCODE_GEN_TEXT_VISIBLE
-};
+enum BarcodeGenTextOpt { BARCODE_GEN_TEXT_INVISIBLE, BARCODE_GEN_TEXT_VISIBLE };
 
 /**
  * @brief The Barcode error enumeration.
  *
  * @since_tizen @if MOBILE 2.4 @else 3.0 @endif
  */
-enum BarcodeError
-{
+enum BarcodeError {
        BARCODE_ERROR_NONE = 0,
        BARCODE_WARNING_INVALID_OPTION = 2,
        BARCODE_ERROR_TOO_LONG = 5,
index f6dc75a..1a50c81 100644 (file)
@@ -262,8 +262,7 @@ bool _mv_roi_tracking_check_system_info_feature_supported(void)
 
 bool _mv_3d_all_check_system_info_feature_supported(void)
 {
-       return _mv_3d_check_system_info_feature_supported() ||
-                  _mv_3d_depth_check_system_info_feature_supported() ||
+       return _mv_3d_check_system_info_feature_supported() || _mv_3d_depth_check_system_info_feature_supported() ||
                   _mv_3d_pointcloud_check_system_info_feature_supported();
 }
 
@@ -271,8 +270,7 @@ bool _mv_3d_check_system_info_feature_supported(void)
 {
        bool is3dSupported = false;
 
-       const int nRetVal1 = system_info_get_platform_bool("http://tizen.org/feature/vision.3d",
-                                                                                                          &is3dSupported);
+       const int nRetVal1 = system_info_get_platform_bool("http://tizen.org/feature/vision.3d", &is3dSupported);
 
        if (nRetVal1 != SYSTEM_INFO_ERROR_NONE) {
                LOGE("SYSTEM_INFO_ERROR: vision.3d");
@@ -280,9 +278,9 @@ bool _mv_3d_check_system_info_feature_supported(void)
        }
 
        is3dSupported ? LOGI("system_info_get_platform_bool returned "
-                                                 "Supported 3d feature capability\n") :
+                                                "Supported 3d feature capability\n") :
                                        LOGE("system_info_get_platform_bool returned "
-                                            "Unsupported 3d feature capability\n");
+                                                "Unsupported 3d feature capability\n");
 
        return is3dSupported;
 }
@@ -291,8 +289,7 @@ bool _mv_3d_depth_check_system_info_feature_supported(void)
 {
        bool is3dDepthSupported = false;
 
-       const int nRetVal1 = system_info_get_platform_bool("http://tizen.org/feature/vision.3d.depth",
-                                                                                                          &is3dDepthSupported);
+       const int nRetVal1 = system_info_get_platform_bool("http://tizen.org/feature/vision.3d.depth", &is3dDepthSupported);
 
        if (nRetVal1 != SYSTEM_INFO_ERROR_NONE) {
                LOGE("SYSTEM_INFO_ERROR: vision.3d.depth");
@@ -311,8 +308,8 @@ bool _mv_3d_pointcloud_check_system_info_feature_supported(void)
 {
        bool is3dPointCloudSupported = false;
 
-       const int nRetVal1 = system_info_get_platform_bool("http://tizen.org/feature/vision.3d.pointcloud",
-                                                                                                          &is3dPointCloudSupported);
+       const int nRetVal1 =
+                       system_info_get_platform_bool("http://tizen.org/feature/vision.3d.pointcloud", &is3dPointCloudSupported);
 
        if (nRetVal1 != SYSTEM_INFO_ERROR_NONE) {
                LOGE("SYSTEM_INFO_ERROR: vision.3d.pointcloud");
index 8efbf7c..740ac9b 100644 (file)
@@ -38,8 +38,7 @@ namespace Face
  *
  * @since_tizen 3.0
  */
-struct FaceRecognizerConfig
-{
+struct FaceRecognizerConfig {
        FaceRecognizerConfig();
        std::string mHaarcascadeFilepath;
 };
index 8a7118c..6ae4008 100644 (file)
@@ -42,8 +42,7 @@ namespace Face
  *
  * @since_tizen 3.0
  */
-struct FaceRecognitionModelConfig
-{
+struct FaceRecognitionModelConfig {
        /**
         * @brief Default constructor for the @ref FaceRecognitionModelConfig
         *
@@ -88,8 +87,7 @@ struct FaceRecognitionModelConfig
  *
  * @since_tizen 3.0
  */
-struct FaceRecognitionResults
-{
+struct FaceRecognitionResults {
        /**
         * @brief Default constructor for the @ref FaceRecognitionResults
         *
index fe21752..045f8e4 100644 (file)
@@ -63,8 +63,7 @@ reference purpose.
 class FaceTracker : public legacy::TrackerMedianFlow
 {
 public:
-       struct Params
-       {
+       struct Params {
                /**
                 * @brief TrackerMedianFlow algorithm parameters constructor
                 */
index 3361133..ce9a5f8 100644 (file)
@@ -36,8 +36,7 @@ namespace Face
  *
  * @since_tizen 3.0
  */
-struct FaceTrackingResults
-{
+struct FaceTrackingResults {
        /**
         * @brief Default constructor for the @ref FaceTrackingResults
         *
index 85734b3..bdc121e 100644 (file)
@@ -34,8 +34,7 @@ namespace Face
  *
  * @since_tizen 3.0
  */
-enum FaceRecognitionModelType
-{
+enum FaceRecognitionModelType {
        MEDIA_VISION_FACE_MODEL_TYPE_UNKNOWN = 0, /**< Unknown algorithm type */
        MEDIA_VISION_FACE_MODEL_TYPE_EIGENFACES = 1, /**< Eigenfaces algorithm */
        MEDIA_VISION_FACE_MODEL_TYPE_FISHERFACES = 2, /**< Fisherfaces algorithm */
@@ -48,8 +47,7 @@ enum FaceRecognitionModelType
  *
  * @since_tizen 3.0
  */
-struct RecognitionParams
-{
+struct RecognitionParams {
        RecognitionParams(FaceRecognitionModelType algType);
 
        RecognitionParams();
index 831938a..b3ed562 100644 (file)
@@ -26,14 +26,7 @@ namespace Image
 class FeatureMatcher
 {
 public:
-       enum MatchError
-       {
-               InvalidFeaturePackFrom,
-               InvalidFeaturePackTo,
-               DisparateTypes,
-               MatchesNotFound,
-               Success
-       };
+       enum MatchError { InvalidFeaturePackFrom, InvalidFeaturePackTo, DisparateTypes, MatchesNotFound, Success };
 
 public:
        FeatureMatcher(float affectingPart = 1.f, float tolerantError = 0.f, size_t minimumMatchesNumber = 0u);
index 0581a49..c4d7d58 100644 (file)
@@ -33,8 +33,7 @@ namespace Image
  *
  * @since_tizen 3.0
  */
-enum KeypointType
-{
+enum KeypointType {
        KT_INVALID = -1, /**< Undefined keypoint's type */
        KT_ORB, /**< Oriented FAST keypoint's type */
        KT_GFTT, /**< Keypoint's type of good features to track */
@@ -48,8 +47,7 @@ const std::string KeypointNames[KT_SIZE] = { [KT_ORB] = "ORB", [KT_GFTT] = "GFTT
  *
  * @since_tizen 3.0
  */
-enum DescriptorType
-{
+enum DescriptorType {
        DT_INVALID = -1, /**< Undefined descriptor's type */
        DT_ORB, /**< Rotated BRIEF descriptor's type */
        DT_BRIEF, /**< Descriptor's type of binary robust independent
@@ -65,18 +63,15 @@ const std::string DescriptorNames[DT_SIZE] = { [DT_ORB] = "ORB", [DT_BRIEF] = "B
  *
  * @since_tizen 3.0
  */
-struct FeaturesExtractingParams
-{
+struct FeaturesExtractingParams {
        FeaturesExtractingParams();
 
        KeypointType mKeypointType; /**< Keypoint's type. */
 
        DescriptorType mDescriptorType; /**< Descriptor's type. */
 
-       union
-       { /**< Extracting parameters for concretes algorithms. */
-               struct
-               { /**< Extracting parameters for ORB algorithm. */
+       union { /**< Extracting parameters for concretes algorithms. */
+               struct { /**< Extracting parameters for ORB algorithm. */
                        double mScaleFactor; /**< Recognition scale factor for the ORB detector. */
                        int mMaximumFeaturesNumber; /**< Maximum number of features,
                                                                        which will be extracted from object image.*/
@@ -90,8 +85,7 @@ struct FeaturesExtractingParams
  *
  * @since_tizen 3.0
  */
-struct RecognitionParams
-{
+struct RecognitionParams {
        RecognitionParams(int minMatchesNumber, double requiredMatchesPart, double tolerantMatchesPartError);
 
        RecognitionParams();
@@ -114,8 +108,7 @@ struct RecognitionParams
  *
  * @since_tizen 3.0
  */
-struct StabilizationParams
-{
+struct StabilizationParams {
        StabilizationParams(bool isEnabled, size_t historyAmount, double tolerantShift, double tolerantShiftExtra,
                                                double stabilizationSpeed, double stabilizationAcceleration);
 
@@ -151,8 +144,7 @@ struct StabilizationParams
  *
  * @since_tizen 3.0
  */
-struct TrackingParams
-{
+struct TrackingParams {
        TrackingParams(FeaturesExtractingParams framesFeaturesExtractingParams, RecognitionParams recognitionParams,
                                   StabilizationParams stabilizationParams, double expectedOffset);
 
index d83dc6d..f0fe7fb 100644 (file)
@@ -105,8 +105,7 @@ private:
        bool mergeResults(std::vector<cv::Point> &result) const;
 
 private:
-       struct TrackerInfo
-       {
+       struct TrackerInfo {
                TrackerInfo(cv::Ptr<ObjectTracker>, float);
 
                bool operator<(const TrackerInfo &) const;
index 88306db..3e42d08 100644 (file)
@@ -45,8 +45,7 @@ public:
         *
         * @since_tizen 3.0
         */
-       enum StabilizationError
-       {
+       enum StabilizationError {
                Successfully, /**< Contour is stabilized. */
                TooShortMovingHistory, /**< Too short moving history, it's normal
                                                                        behavior, you can continue to call
index e051c17..4962bd4 100644 (file)
@@ -32,8 +32,7 @@ namespace Image
 class MFTracker : public ObjectTracker
 {
 public:
-       struct Params
-       {
+       struct Params {
                /**
                 * @brief TrackerMedianFlow algorithm parameters constructor
                 */
index ef5f9b2..940668e 100644 (file)
@@ -31,7 +31,7 @@ public:
        virtual void prepare() = 0;
        virtual void setInput(T &t) = 0;
        virtual void perform() = 0;
-       virtual VgetOutput() = 0;
+       virtual V &getOutput() = 0;
 };
 } // namespace
 } // namespace
index 8862d3a..0e08274 100644 (file)
@@ -19,8 +19,7 @@
 
 #include "inference_engine_common_impl.h"
 
-typedef struct
-{
+typedef struct {
        std::string layer_name;
        inference_engine_tensor_info tensor_info;
 } model_layer_info;
index 19da884..377e359 100644 (file)
@@ -40,30 +40,17 @@ namespace face_recognition
 {
 namespace status
 {
-enum
-{
-       NONE = 0,
-       INITIALIZED,
-       REGISTERED,
-       INFERENCED,
-       DELETED
-};
+enum { NONE = 0, INITIALIZED, REGISTERED, INFERENCED, DELETED };
 } // status
 
 namespace mode
 {
-enum
-{
-       REGISTER = 0,
-       INFERENCE,
-       DELETE
-};
+enum { REGISTER = 0, INFERENCE, DELETE };
 } // mode
 
 } // face_recognition
 
-typedef struct
-{
+typedef struct {
        unsigned int mode;
        std::unordered_map<mv_source_h, std::string> register_src;
        mv_source_h inference_src;
@@ -75,15 +62,13 @@ typedef struct
  * @details Contains face recognition result such as label, label index, raw data,
  *          and raw data count.
  */
-typedef struct
-{
+typedef struct {
        unsigned int label_idx; /**< label index of label file. */
        std::vector<float> raw_data; /**< raw data to each label. */
        std::string label; /**< label string. */
 } mv_face_recognition_result_s;
 
-typedef struct
-{
+typedef struct {
        mv_inference_target_device_e training_target_device_type;
        mv_inference_backend_type_e training_engine_backend_type;
        mv_inference_target_device_e inference_target_device_type;
@@ -134,7 +119,7 @@ public:
        int RecognizeFace(mv_source_h img_src);
        int DeleteLabel(std::string label_name);
        int GetLabel(const char **out_label);
-       mv_face_recognition_result_sGetResult();
+       mv_face_recognition_result_s &GetResult();
 };
 
 } // machine_learning
index ffc3a03..d77d938 100644 (file)
@@ -81,7 +81,7 @@ public:
        void prepare() override;
        void setInput(T &t) override;
        void perform() override;
-       VgetOutput() override;
+       V &getOutput() override;
 };
 
 } // machine_learning
index 7ef00e7..440408e 100644 (file)
@@ -663,7 +663,7 @@ int FaceRecognition::GetLabel(const char **out_label)
        return MEDIA_VISION_ERROR_NONE;
 }
 
-mv_face_recognition_result_sFaceRecognition::GetResult()
+mv_face_recognition_result_s &FaceRecognition::GetResult()
 {
        if (_status != INFERENCED)
                throw InvalidOperation("Inference not completed yet.");
index 1a1f9d9..7961901 100644 (file)
@@ -127,7 +127,7 @@ template<typename T, typename V> void FaceRecognitionAdapter<T, V>::perform()
        }
 }
 
-template<typename T, typename V> VFaceRecognitionAdapter<T, V>::getOutput()
+template<typename T, typename V> V &FaceRecognitionAdapter<T, V>::getOutput()
 {
        return _face_recognition->GetResult();
 }
index fb12a92..1414bfb 100644 (file)
@@ -36,8 +36,7 @@ namespace inference
 {
 namespace box
 {
-struct BoxInfo
-{
+struct BoxInfo {
        DimInfo dimInfo;
        inference_box_type_e type = INFERENCE_BOX_TYPE_ORIGIN_LEFTTOP; // 0:L-T-R-B, 1: Cx-Cy-W-H
        std::vector<int> order; // Order based on box type
@@ -57,7 +56,7 @@ struct BoxInfo
                { "BYPASS", INFERENCE_BOX_DECODING_TYPE_BYPASS },
                { "SSD_ANCHOR", INFERENCE_BOX_DECODING_TYPE_SSD_ANCHOR },
                { "YOLO_ANCHOR", INFERENCE_BOX_DECODING_TYPE_YOLO_ANCHOR },
-               { "SINGLE_3D", INFERENCE_BOX_DECODING_TYPE_SINGLE_3D}
+               { "SINGLE_3D", INFERENCE_BOX_DECODING_TYPE_SINGLE_3D }
        };
 
        ~BoxInfo() = default;
index ce07273..9fbc51f 100644 (file)
@@ -13,12 +13,7 @@ namespace mediavision
 namespace inference
 {
 /** Enumeration class for axis */
-enum class Axis
-{
-       X,
-       Y,
-       Z
-};
+enum class Axis { X, Y, Z };
 
 /** Creates rotation matrix
  *  @param  angle  The rotation angle
index 024ef69..2f66423 100644 (file)
@@ -33,8 +33,7 @@ namespace inference
 {
 namespace box
 {
-struct AnchorParam
-{
+struct AnchorParam {
        int mode;
        int numLayers;
        float minScale;
@@ -62,15 +61,13 @@ struct AnchorParam
        std::vector<std::vector<double> > vyScales;
 };
 
-struct NMSParam
-{
+struct NMSParam {
        inference_box_nms_type_e mode; /**< 0: standard */
        float iouThreshold;
        std::map<std::string, inference_box_nms_type_e> supportedBoxNmsTypes;
 };
 
-struct RotateParam
-{
+struct RotateParam {
        int startPointIndex;
        int endPointIndex;
        cv::Point2f startPoint;
@@ -78,8 +75,7 @@ struct RotateParam
        float baseAngle;
 };
 
-struct RoiOptionParam
-{
+struct RoiOptionParam {
        int startPointIndex;
        int endPointIndex;
        int centerPointIndex;
@@ -91,8 +87,7 @@ struct RoiOptionParam
        int mode;
 };
 
-struct DecodeInfo
-{
+struct DecodeInfo {
        AnchorParam anchorParam;
        std::vector<cv::Rect2f> anchorBoxes;
        NMSParam nmsParam;
index e32c43f..ee77bf6 100644 (file)
@@ -24,8 +24,7 @@ namespace mediavision
 {
 namespace inference
 {
-struct DimInfo
-{
+struct DimInfo {
        std::vector<int> dims;
 
        std::vector<int> GetValidIndexAll() const
index 9495021..4cfc73e 100644 (file)
  */
 using namespace InferenceEngineInterface::Common;
 
-struct ImageClassificationResults
-{
+struct ImageClassificationResults {
        int number_of_classes = 0;
        std::vector<int> indices;
        std::vector<std::string> names;
        std::vector<float> confidences;
 };
 
-struct ObjectDetectionResults
-{
+struct ObjectDetectionResults {
        int number_of_objects = 0;
        std::vector<int> indices;
        std::vector<std::string> names;
@@ -64,21 +62,18 @@ struct ObjectDetectionResults
        std::vector<cv::Rect> locations;
 };
 
-struct FaceDetectionResults
-{
+struct FaceDetectionResults {
        int number_of_faces = 0;
        std::vector<float> confidences;
        std::vector<cv::Rect> locations;
 };
 
-struct FacialLandMarkDetectionResults
-{
+struct FacialLandMarkDetectionResults {
        int number_of_landmarks;
        std::vector<cv::Point> locations;
 };
 
-struct PoseLandmarkDetectionResults
-{
+struct PoseLandmarkDetectionResults {
        int number_of_landmarks = 0;
        std::vector<cv::Point2f> locations;
        std::vector<float> score;
@@ -88,16 +83,14 @@ namespace mediavision
 {
 namespace inference
 {
-struct TensorInfo
-{
+struct TensorInfo {
        int width;
        int height;
        int dim;
        int ch;
 };
 
-struct InferenceConfig
-{
+struct InferenceConfig {
        /**
                 * @brief Default constructor for the @ref InferenceConfig
                 *
@@ -161,7 +154,7 @@ public:
                 * @since_tizen 6.0
                 */
        int ConfigureInputInfo(int width, int height, int dim, int ch, double stdValue, double meanValue, int dataType,
-                                                       const std::vector<std::string> names);
+                                                  const std::vector<std::string> names);
 
        int ConfigureOutputInfo(std::vector<std::string> names, std::vector<inference_engine_tensor_info> &tensors_info);
 
@@ -172,7 +165,7 @@ public:
         */
        int configureInputMetaInfo();
 
-       int configureInputMetaInfo(mediavision::machine_learning::MetaMapinputMetaInfo);
+       int configureInputMetaInfo(mediavision::machine_learning::MetaMap &inputMetaInfo);
 
        /**
         * @brief Configure output information from model meta file.
@@ -181,7 +174,7 @@ public:
         */
        int configureOutputMetaInfo();
 
-       int configureOutputMetaInfo(mediavision::machine_learning::MetaMapoutputMetaInfo);
+       int configureOutputMetaInfo(mediavision::machine_learning::MetaMap &outputMetaInfo);
 
        /**
                 * @brief   Configure a inference target device type such as CPU, GPU or NPU. (only one type can be set)
@@ -408,7 +401,7 @@ private:
 
 private:
        int setInputInfo();
-       int setOutputInfo(inference_engine_layer_propertyproperty);
+       int setOutputInfo(inference_engine_layer_property &property);
        void CheckSupportedInferenceBackend();
        int CheckBackendType(const mv_inference_backend_type_e backendType);
        bool IsTargetDeviceSupported(const int targetDevices);
index 7b7b13f..b7f45b5 100644 (file)
@@ -35,35 +35,30 @@ namespace mediavision
 {
 namespace inference
 {
-struct Normalization
-{
+struct Normalization {
        bool use { false };
        std::vector<double> mean;
        std::vector<double> std;
 };
 
-struct Quantization
-{
+struct Quantization {
        bool use { false };
        std::vector<double> scale;
        std::vector<double> zeropoint;
 };
 
-enum class Resizer
-{
+enum class Resizer {
        SQUARE,
        LETTERBOX,
 };
 
-struct Options
-{
+struct Options {
        Normalization normalization;
        Quantization quantization;
        Resizer resizer = Resizer::SQUARE;
 };
 
-struct InputMetadata
-{
+struct InputMetadata {
        /**
         * @brief   Creates an InputMetadata class instance.
         *
index 7d052c8..6632f97 100644 (file)
@@ -15,23 +15,14 @@ class Joint
 {
 public:
        /** A struct that keep offset of joint in relation to parent */
-       struct Offset
-       {
+       struct Offset {
                float x;
                float y;
                float z;
        };
 
        /** A enumeration type useful for set order of channels for every joint */
-       enum class Channel
-       {
-               XPOSITION,
-               YPOSITION,
-               ZPOSITION,
-               ZROTATION,
-               XROTATION,
-               YROTATION
-       };
+       enum class Channel { XPOSITION, YPOSITION, ZPOSITION, ZROTATION, XROTATION, YROTATION };
 
        /** A string names for each channel */
        const std::vector<std::string> channel_name_str = { "XPOSITION", "YPOSITION", "ZPOSITION",
index 53232fd..81cd66f 100644 (file)
@@ -36,8 +36,7 @@ namespace inference
 {
 namespace label
 {
-struct LabelInfo
-{
+struct LabelInfo {
        DimInfo dimInfo;
 
        int Parse(JsonObject *root);
index 44c38b9..a691ef0 100644 (file)
@@ -37,8 +37,7 @@ namespace mediavision
 {
 namespace inference
 {
-typedef struct _LandmarkPoint
-{
+typedef struct _LandmarkPoint {
        float score;
        cv::Point heatMapLoc;
        cv::Point2f decodedLoc;
@@ -46,14 +45,12 @@ typedef struct _LandmarkPoint
        bool valid;
 } LandmarkPoint;
 
-typedef struct _LandmarkResults
-{
+typedef struct _LandmarkResults {
        std::vector<LandmarkPoint> landmarks;
        float score;
 } LandmarkResults;
 
-typedef struct _HeatMapInfo
-{
+typedef struct _HeatMapInfo {
        int wIdx;
        int hIdx;
        int cIdx;
index a9c3c7f..6b76140 100644 (file)
@@ -43,69 +43,50 @@ typedef enum {
 } postprocess_decoding_type_e;
 
 // score
-typedef enum
-{
-       INFERENCE_SCORE_TYPE_NORMAL,
-       INFERENCE_SCORE_TYPE_SIGMOID
-} inference_score_type_e;
+typedef enum { INFERENCE_SCORE_TYPE_NORMAL, INFERENCE_SCORE_TYPE_SIGMOID } inference_score_type_e;
 
 // box
-typedef enum
-{
-       INFERENCE_BOX_TYPE_ORIGIN_LEFTTOP,
-       INFERENCE_BOX_TYPE_ORIGIN_CENTER
-} inference_box_type_e;
+typedef enum { INFERENCE_BOX_TYPE_ORIGIN_LEFTTOP, INFERENCE_BOX_TYPE_ORIGIN_CENTER } inference_box_type_e;
 
-typedef enum
-{
+typedef enum {
        INFERENCE_BOX_COORDINATE_TYPE_RATIO,
        INFERENCE_BOX_COORDINATE_TYPE_PIXEL
 } inference_box_coordinate_type_e;
 
-typedef enum
-{
+typedef enum {
        INFERENCE_BOX_DECODING_TYPE_BYPASS,
        INFERENCE_BOX_DECODING_TYPE_SSD_ANCHOR,
        INFERENCE_BOX_DECODING_TYPE_YOLO_ANCHOR,
        INFERENCE_BOX_DECODING_TYPE_SINGLE_3D
 } inference_box_decoding_type_e;
 
-typedef enum
-{
-       INFERENCE_BOX_NMS_TYPE_NONE = -1,
-       INFERENCE_BOX_NMS_TYPE_STANDARD
-} inference_box_nms_type_e;
+typedef enum { INFERENCE_BOX_NMS_TYPE_NONE = -1, INFERENCE_BOX_NMS_TYPE_STANDARD } inference_box_nms_type_e;
 
 // landmark
-typedef enum
-{
+typedef enum {
        INFERENCE_LANDMARK_TYPE_2D_SINGLE,
        INFERENCE_LANDMARK_TYPE_2D_MULTI,
        INFERENCE_LANDMARK_TYPE_3D_SINGLE
 } inference_landmark_type_e;
 
-typedef enum
-{
+typedef enum {
        INFERENCE_LANDMARK_COORDINATE_TYPE_RATIO,
        INFERENCE_LANDMARK_COORDINATE_TYPE_PIXEL
 } inference_landmark_coorindate_type_e;
 
-typedef enum
-{
+typedef enum {
        INFERENCE_LANDMARK_DECODING_TYPE_BYPASS,
        INFERENCE_LANDMARK_DECODING_TYPE_BYPASS_MULTICHANNEL,
        INFERENCE_LANDMARK_DECODING_TYPE_HEATMAP,
        INFERENCE_LANDMARK_DECODING_TYPE_HEATMAP_REFINE
 } inference_landmark_decoding_type_e;
 
-typedef enum
-{
+typedef enum {
        INFERENCE_DISPLACEMENT_TYPE_FORWARD,
        INFERENCE_DISPLACEMENT_TYPE_BACKWARD
 } inference_displacement_type_e;
 
-struct LayerInfo
-{
+struct LayerInfo {
        std::string name;
        std::vector<int> dims;
        mv_colorspace_e colorSpace {};
index ed8703c..7c51799 100644 (file)
@@ -36,8 +36,7 @@ namespace inference
 {
 namespace number
 {
-struct NumberInfo
-{
+struct NumberInfo {
        DimInfo dimInfo;
 
        int Parse(JsonObject *root);
index 7aabf4f..f04bc23 100644 (file)
@@ -48,8 +48,7 @@ namespace mediavision
 {
 namespace inference
 {
-struct OutputMetadata
-{
+struct OutputMetadata {
        bool parsed = false;
        ScoreInfo score;
        box::BoxInfo box;
@@ -63,10 +62,10 @@ struct OutputMetadata
        };
        std::map<std::string, LayerInfo> _tensor_info;
 
-       int ParseScore(JsonObject *root, LayerInfolayer);
-       int ParseBox(JsonObject *root, LayerInfolayer);
-       int ParseLandmark(JsonObject *root, LayerInfolayer);
-       int ParseOffset(JsonObject *root, LayerInfolayer);
+       int ParseScore(JsonObject *root, LayerInfo &layer);
+       int ParseBox(JsonObject *root, LayerInfo &layer);
+       int ParseLandmark(JsonObject *root, LayerInfo &layer);
+       int ParseOffset(JsonObject *root, LayerInfo &layer);
 
        /**
                 * @brief   Destroys an OutputMetadata class instance including
@@ -82,7 +81,7 @@ struct OutputMetadata
                 */
        int Parse(JsonObject *root, std::string key_name);
 
-       int GetPostProcess(JsonObject *root, LayerInfolayer);
+       int GetPostProcess(JsonObject *root, LayerInfo &layer);
 
        bool IsParsed()
        {
@@ -91,7 +90,7 @@ struct OutputMetadata
 
        std::string GetScoreName()
        {
-               for (autoinfo : _tensor_info) {
+               for (auto &info : _tensor_info) {
                        if (info.second.decodingType & POSTPROCESS_DECODING_TYPE_SCORE)
                                return info.first;
                }
@@ -129,7 +128,7 @@ struct OutputMetadata
        }
        std::string GetBoxName()
        {
-               for (autoinfo : _tensor_info) {
+               for (auto &info : _tensor_info) {
                        if (info.second.decodingType & POSTPROCESS_DECODING_TYPE_BOX)
                                return info.first;
                }
@@ -154,7 +153,7 @@ struct OutputMetadata
        }
        std::string GetLabelName()
        {
-               for (autoinfo : _tensor_info) {
+               for (auto &info : _tensor_info) {
                        if (info.second.decodingType & POSTPROCESS_DECODING_TYPE_LABEL)
                                return info.first;
                }
@@ -167,7 +166,7 @@ struct OutputMetadata
        }
        std::string GetNumberName()
        {
-               for (autoinfo : _tensor_info) {
+               for (auto &info : _tensor_info) {
                        if (info.second.decodingType & POSTPROCESS_DECODING_TYPE_NUMBER)
                                return info.first;
                }
@@ -185,7 +184,7 @@ struct OutputMetadata
        }
        std::string GetLandmarkName()
        {
-               for (autoinfo : _tensor_info) {
+               for (auto &info : _tensor_info) {
                        if (info.second.decodingType & POSTPROCESS_DECODING_TYPE_LANDMARK)
                                return info.first;
                }
@@ -226,7 +225,7 @@ struct OutputMetadata
        }
        std::string GetOffsetVecName()
        {
-               for (autoinfo : _tensor_info) {
+               for (auto &info : _tensor_info) {
                        if (info.second.decodingType & POSTPROCESS_DECODING_TYPE_OFFSETVEC)
                                return info.first;
                }
index 33fa95d..8a097d7 100644 (file)
@@ -38,8 +38,7 @@
  * @details Box structure includes index, score, location.
  *
  */
-typedef struct _Box
-{
+typedef struct _Box {
        int index; /**< index of box belonging to a category */
        float score; /**< score of box belonging to the index */
        cv::Rect2f location; /**< location of a box */
index b003706..2ebeddc 100644 (file)
@@ -32,8 +32,7 @@ namespace mediavision
 {
 namespace inference
 {
-struct DeQuantization
-{
+struct DeQuantization {
        double scale;
        double zeropoint;
 
@@ -41,8 +40,7 @@ struct DeQuantization
        {}
 };
 
-struct ScoreInfo
-{
+struct ScoreInfo {
        DimInfo dimInfo;
        double threshold = 0.0;
        int topNumber = 1;
index 4a03950..a3917d5 100644 (file)
@@ -34,8 +34,7 @@
 #define MV_INFERENCE_CONFIDENCE_THRESHOLD_MAX 1.0
 #define MV_INFERENCE_CONFIDENCE_THRESHOLD_MIN 0.0
 
-typedef enum
-{
+typedef enum {
        InputAttrNoType = 0,
        InputAttrFloat32 = 1,
        InputAttrInt32 = 2,
@@ -339,7 +338,8 @@ int Inference::configureInputMetaInfo(MetaMap &inputMetaInfo)
                        mConfig.mTensorInfo.width = metaInfo->getWidth();
                        mConfig.mTensorInfo.height = metaInfo->getHeight();
 
-                       auto normalization = std::static_pointer_cast<DecodingNormal>(metaInfo->decodingTypeMap[DecodingType::NORMAL]);
+                       auto normalization =
+                                       std::static_pointer_cast<DecodingNormal>(metaInfo->decodingTypeMap[DecodingType::NORMAL]);
                        if (normalization && normalization->use) {
                                mConfig.mMeanValue = normalization->mean[0];
                                mConfig.mStdValue = normalization->std[0];
index 15166d3..fc62be4 100644 (file)
@@ -99,8 +99,7 @@ Box ObjectDecoder::decodeBox(int idx, float score, int label, int offset)
                cHeight /= mScaleH;
        }
 
-       Box box = { .index = mMeta.GetLabelName().empty() ? label :
-                                                                                                                  mTensorBuffer.getValue<int>(mMeta.GetLabelName(), idx),
+       Box box = { .index = mMeta.GetLabelName().empty() ? label : mTensorBuffer.getValue<int>(mMeta.GetLabelName(), idx),
                                .score = score,
                                .location = cv::Rect2f(cx, cy, cWidth, cHeight) };
 
index 5a0a932..223d75b 100644 (file)
@@ -461,7 +461,7 @@ int PoseDecoder::getEdgeVector(cv::Point index, int edgeId, inference_displaceme
 
        int idxX = idxY + static_cast<int>(mMeta.GetLandmarkEdges().size());
 
-       DispVecdispVec = mMeta.GetLandmarkDispVec();
+       DispVec &dispVec = mMeta.GetLandmarkDispVec();
        if (dispVec.GetType() == type) { // 0: forward
                LOGI("%s", dispVec.GetName().c_str());
                vector.x = mTensorBuffer.getValue<float>(dispVec.GetName(), idxX);
index 8d35304..c7854b7 100644 (file)
@@ -129,7 +129,8 @@ static int configure_tensor_info_from_meta_file(Inference *pInfer, mv_engine_con
 {
        char *modelMetaFilePath = NULL;
 
-       int ret = mv_engine_config_get_string_attribute(engine_config, MV_INFERENCE_MODEL_META_FILE_PATH, &modelMetaFilePath);
+       int ret =
+                       mv_engine_config_get_string_attribute(engine_config, MV_INFERENCE_MODEL_META_FILE_PATH, &modelMetaFilePath);
        if (ret != MEDIA_VISION_ERROR_NONE) {
                LOGE("Fail to get model meta file path");
                goto out_of_function;
index 6c16328..079c0e5 100644 (file)
 #include <dlog.h>
 #include "types.h"
 
-namespace mediavision {
-namespace machine_learning {
-
-using MetaMap = std::map<std::string, std::shared_ptr<MetaInfo>>;
+namespace mediavision
+{
+namespace machine_learning
+{
+using MetaMap = std::map<std::string, std::shared_ptr<MetaInfo> >;
 
 /**
  * @brief A class for parsing a given meta file.
@@ -56,8 +57,7 @@ protected:
 
        void parse();
        void parseTensor(JsonObject *in_obj, const char *node_name);
-       void parseTensorInfo(MetaMap& metaMap,
-                                                JsonObject *in_obj, std::string key);
+       void parseTensorInfo(MetaMap &metaMap, JsonObject *in_obj, std::string key);
        void parsePreprocess(std::shared_ptr<MetaInfo> metaInfo, JsonObject *in_obj);
 
        /**
@@ -76,10 +76,15 @@ public:
        /**
         * @brief Invoke the parsing work to a given meta file.
         */
-       void load(std::string& meta_file_path);
-       MetaMap& getInputMetaMap() { return _inputMetaMap; }
-       MetaMap& getOutputMetaMap() { return _outputMetaMap; }
-
+       void load(std::string &meta_file_path);
+       MetaMap &getInputMetaMap()
+       {
+               return _inputMetaMap;
+       }
+       MetaMap &getOutputMetaMap()
+       {
+               return _outputMetaMap;
+       }
 };
 
 }
index fa5b545..28d821a 100644 (file)
@@ -23,7 +23,6 @@ namespace mediavision
 {
 namespace machine_learning
 {
-
 class Postprocess
 {
 private:
@@ -33,7 +32,8 @@ private:
        float getScaledHeight() const;
 
 public:
-       Postprocess(InputSizeInfo info) : _sizeInfo(info) { }
+       Postprocess(InputSizeInfo info) : _sizeInfo(info)
+       {}
        ~Postprocess() = default;
 
        size_t getScaledX(float input_x) const;
index e80c8c7..a0b1945 100644 (file)
@@ -33,7 +33,6 @@ namespace mediavision
 {
 namespace machine_learning
 {
-
 class PostprocessParser
 {
 public:
index d7ee330..584a243 100644 (file)
@@ -45,14 +45,20 @@ namespace machine_learning
 class Preprocess
 {
 public:
-       Preprocess() { }
+       Preprocess()
+       {}
        ~Preprocess() = default;
 
-       void run(std::vector<mv_source_h>& mv_srcs, MetaMap& tensorMetaInfo,
-                        IETensorBuffer& tensorBufferMap);
+       void run(std::vector<mv_source_h> &mv_srcs, MetaMap &tensorMetaInfo, IETensorBuffer &tensorBufferMap);
 
-       std::vector<unsigned int>& getImageWidth() { return _vImageWidth; }
-       std::vector<unsigned int>& getImageHeight() { return _vImageHeight; }
+       std::vector<unsigned int> &getImageWidth()
+       {
+               return _vImageWidth;
+       }
+       std::vector<unsigned int> &getImageHeight()
+       {
+               return _vImageHeight;
+       }
 
 private:
        std::vector<unsigned int> _vImageWidth;
@@ -63,7 +69,7 @@ private:
        void convertToCvSource(std::vector<mv_source_h> &mv_srcs, std::vector<cv::Mat> &cv_srcs);
        void normalize(cv::Mat &source, cv::Mat &dest, const std::vector<double> &mean, const std::vector<double> &std);
        void quantize(cv::Mat &source, cv::Mat &dest, const std::vector<double> &scale,
-                                const std::vector<double> &zeropoint);
+                                 const std::vector<double> &zeropoint);
 };
 
 } /* machine_learning */
index 518ecbf..cb7d34d 100644 (file)
 #include "mv_inference_type.h"
 #include "types.h"
 
-namespace mediavision {
-namespace machine_learning {
-
-template<typename T, typename U>
-T GetSupportedType(JsonObject *in_obj, std::string key, U& in_map)
+namespace mediavision
+{
+namespace machine_learning
+{
+template<typename T, typename U> T GetSupportedType(JsonObject *in_obj, std::string key, U &in_map)
 {
        auto supportedType = in_map.find(json_object_get_string_member(in_obj, key.c_str()));
        if (supportedType == in_map.end()) {
                throw mediavision::machine_learning::exception::InvalidParameter("invalid type.");
        }
 
-       LOGI("%s: %d:%s", key.c_str(), static_cast<int>(supportedType->second),
-                                         supportedType->first.c_str());
+       LOGI("%s: %d:%s", key.c_str(), static_cast<int>(supportedType->second), supportedType->first.c_str());
 
        return supportedType->second;
 }
index 3d1129b..3883233 100644 (file)
 #include <inference_engine_type.h>
 #include <mv_inference_type.h>
 
-namespace mediavision {
-namespace machine_learning {
-
-enum class DecodingType {
-       NORMAL,
-       QUANTIZATION,
-       BOX,
-       SCORE,
-       LABEL,
-       NUMBER
-};
+namespace mediavision
+{
+namespace machine_learning
+{
+enum class DecodingType { NORMAL, QUANTIZATION, BOX, SCORE, LABEL, NUMBER };
 
-enum class ScoreType {
-       NORMAL,
-       SIGMOID
-};
+enum class ScoreType { NORMAL, SIGMOID };
 
-enum class BoxDecodingType {
-       BYPASS,
-       ANCHOR,
-       NMS,
-       ROTATE,
-       ROI,
-       BBOX_3D
-};
+enum class BoxDecodingType { BYPASS, ANCHOR, NMS, ROTATE, ROI, BBOX_3D };
 
-enum class BoxCoordinateType {
-       RATIO,
-       PIXEL
-};
+enum class BoxCoordinateType { RATIO, PIXEL };
 
-enum class BoxType {
-       LEFTTOP,
-       CENTER
-};
+enum class BoxType { LEFTTOP, CENTER };
 
 struct InputSizeInfo {
        size_t imageWidth;
@@ -76,7 +54,7 @@ struct DecodingBox {
        std::vector<unsigned int> edges;
        BoxCoordinateType coordinateType { BoxCoordinateType::RATIO };
        BoxDecodingType decodingType { BoxDecodingType::BYPASS };
-       std::map<BoxDecodingType, std::shared_ptr<void>> decodingInfoMap;
+       std::map<BoxDecodingType, std::shared_ptr<void> > decodingInfoMap;
 };
 
 struct DecodingNormal {
@@ -91,31 +69,22 @@ struct DecodingQuantization {
        std::vector<double> zeropoint;
 };
 
-struct DecodingInfoAnchor {
-
-};
-
-struct DecodingInfoNms {
-
-};
-
-struct DecodingInfoRotate {
+struct DecodingInfoAnchor {};
 
-};
+struct DecodingInfoNms {};
 
-struct DecodingInfoRoi {
+struct DecodingInfoRotate {};
 
-};
+struct DecodingInfoRoi {};
 
-struct MetaInfo
-{
+struct MetaInfo {
        std::string name;
        std::string tensorName;
        std::vector<int> dims;
        mv_inference_data_type_e dataType {};
        mv_colorspace_e colorSpace {};
        inference_tensor_shape_type_e shapeType {};
-       std::map<DecodingType, std::shared_ptr<void>> decodingTypeMap;
+       std::map<DecodingType, std::shared_ptr<void> > decodingTypeMap;
 
        int getWidth() const
        {
index ab529e9..58aafbd 100644 (file)
 using namespace std;
 using namespace mediavision::machine_learning::exception;
 
-namespace mediavision {
-namespace machine_learning {
-
-std::map<std::string, inference_tensor_shape_type_e> gSupportedShapeType = {
-               { "NCHW", INFERENCE_TENSOR_SHAPE_NCHW },
-               { "NHWC", INFERENCE_TENSOR_SHAPE_NHWC }
-       };
+namespace mediavision
+{
+namespace machine_learning
+{
+std::map<std::string, inference_tensor_shape_type_e> gSupportedShapeType = { { "NCHW", INFERENCE_TENSOR_SHAPE_NCHW },
+                                                                                                                                                        { "NHWC", INFERENCE_TENSOR_SHAPE_NHWC } };
 
-std::map<std::string, mv_inference_data_type_e> gSupportedDataType = {
-       { "FLOAT32", MV_INFERENCE_DATA_FLOAT32 },
-       { "UINT8", MV_INFERENCE_DATA_UINT8 }
-};
+std::map<std::string, mv_inference_data_type_e> gSupportedDataType = { { "FLOAT32", MV_INFERENCE_DATA_FLOAT32 },
+                                                                                                                                          { "UINT8", MV_INFERENCE_DATA_UINT8 } };
 
-std::map<std::string, mv_colorspace_e> gSupportedColorType = {
-       { "RGB888", MEDIA_VISION_COLORSPACE_RGB888 },
-       { "GRAY8", MEDIA_VISION_COLORSPACE_Y800 }
-};
+std::map<std::string, mv_colorspace_e> gSupportedColorType = { { "RGB888", MEDIA_VISION_COLORSPACE_RGB888 },
+                                                                                                                          { "GRAY8", MEDIA_VISION_COLORSPACE_Y800 } };
 
 MetaParser::MetaParser() : _parser()
 {
@@ -55,7 +50,7 @@ MetaParser::~MetaParser()
                g_object_unref(_parser);
 }
 
-void MetaParser::load(stringmeta_file_path)
+void MetaParser::load(string &meta_file_path)
 {
        LOGI("ENTER");
 
@@ -102,8 +97,7 @@ void MetaParser::parse()
        LOGI("LEAVE");
 }
 
-void MetaParser::parseTensorInfo(MetaMap& metaMap,
-                                                                JsonObject *in_obj, string key)
+void MetaParser::parseTensorInfo(MetaMap &metaMap, JsonObject *in_obj, string key)
 {
        LOGI("ENTER");
        LOGI("Parse tensor name : %s", key.c_str());
@@ -120,14 +114,15 @@ void MetaParser::parseTensorInfo(MetaMap& metaMap,
 
        try {
                if (json_object_has_member(object, "shape_type"))
-                       metaInfo->shapeType = GetSupportedType<inference_tensor_shape_type_e,
-                                                                       map<string, inference_tensor_shape_type_e>>(object, "shape_type", gSupportedShapeType);
+                       metaInfo->shapeType =
+                                       GetSupportedType<inference_tensor_shape_type_e, map<string, inference_tensor_shape_type_e> >(
+                                                       object, "shape_type", gSupportedShapeType);
                if (json_object_has_member(object, "data_type"))
-                       metaInfo->dataType = GetSupportedType<mv_inference_data_type_e,
-                                                                  map<string, mv_inference_data_type_e>>(object, "data_type", gSupportedDataType);
+                       metaInfo->dataType = GetSupportedType<mv_inference_data_type_e, map<string, mv_inference_data_type_e> >(
+                                       object, "data_type", gSupportedDataType);
                if (json_object_has_member(object, "color_space"))
-                       metaInfo->colorSpace = GetSupportedType<mv_colorspace_e,
-                                                                        map<string, mv_colorspace_e>>(object, "color_space", gSupportedColorType);
+                       metaInfo->colorSpace = GetSupportedType<mv_colorspace_e, map<string, mv_colorspace_e> >(
+                                       object, "color_space", gSupportedColorType);
        } catch (const std::exception &e) {
                throw InvalidOperation("Invalid tensor info.");
        }
@@ -169,17 +164,16 @@ void MetaParser::parseTensor(JsonObject *in_obj, const char *node_name)
        JsonArray *inputList = json_object_get_array_member(in_obj, node_name);
        LOGI("tensor count : %d", json_array_get_length(inputList));
 
-       MetaMap& metaMap =
-               string("input").compare(node_name) == 0 ? _inputMetaMap : _outputMetaMap;
+       MetaMap &metaMap = string("input").compare(node_name) == 0 ? _inputMetaMap : _outputMetaMap;
 
        for (auto idx = 0; idx < json_array_get_length(inputList); ++idx) {
                JsonNode *node = json_array_get_element(inputList, idx);
-           string token(json_to_string(node, 1));
+               string token(json_to_string(node, 1));
                int pos = token.find(":");
                string tensor_name = token.substr(0, pos);
-               const vector<char> delimiters = {'{', ' ', ':', '\n', '\"'};
+               const vector<char> delimiters = { '{', ' ', ':', '\n', '\"' };
 
-               for (autodelimiter : delimiters)
+               for (auto &delimiter : delimiters)
                        tensor_name.erase(std::remove(tensor_name.begin(), tensor_name.end(), delimiter), tensor_name.end());
 
                if (tensor_name.compare((string("tensor") + to_string(idx + 1))) != 0)
index 1a67c3f..36cdff7 100644 (file)
@@ -23,7 +23,6 @@ namespace mediavision
 {
 namespace machine_learning
 {
-
 float Postprocess::getScaledWidth() const
 {
        return static_cast<float>(_sizeInfo.imageWidth) / static_cast<float>(_sizeInfo.tensorWidth);
index bbe07a5..84fcde4 100644 (file)
@@ -29,23 +29,16 @@ namespace mediavision
 {
 namespace machine_learning
 {
+std::map<std::string, BoxType> gSupportedBoxTypes = { { "ORIGIN_LEFTTOP", BoxType::LEFTTOP },
+                                                                                                         { "ORIGIN_CENTER", BoxType::CENTER } };
 
-std::map<std::string, BoxType> gSupportedBoxTypes = {
-       { "ORIGIN_LEFTTOP", BoxType::LEFTTOP },
-       { "ORIGIN_CENTER", BoxType::CENTER }
-};
+std::map<std::string, BoxCoordinateType> gSupportedBoxCoordinateTypes = { { "RATIO", BoxCoordinateType::RATIO },
+                                                                                                                                                 { "PIXEL", BoxCoordinateType::PIXEL } };
 
-std::map<std::string, BoxCoordinateType> gSupportedBoxCoordinateTypes = {
-       { "RATIO", BoxCoordinateType::RATIO },
-       { "PIXEL", BoxCoordinateType::PIXEL }
-};
-
-std::map<std::string, BoxDecodingType> gSupportedBoxDecodingTypes = {
-       { "BYPASS", BoxDecodingType::BYPASS },
-       { "SSD_ANCHOR", BoxDecodingType::ANCHOR },
-       { "YOLO_ANCHOR", BoxDecodingType::ANCHOR },
-       { "3D", BoxDecodingType::BBOX_3D }
-};
+std::map<std::string, BoxDecodingType> gSupportedBoxDecodingTypes = { { "BYPASS", BoxDecodingType::BYPASS },
+                                                                                                                                         { "SSD_ANCHOR", BoxDecodingType::ANCHOR },
+                                                                                                                                         { "YOLO_ANCHOR", BoxDecodingType::ANCHOR },
+                                                                                                                                         { "3D", BoxDecodingType::BBOX_3D } };
 
 /**
  * Function template.
@@ -76,16 +69,16 @@ void PostprocessParser::parseBox(shared_ptr<MetaInfo> metaInfo, JsonObject *root
 
        try {
                if (json_object_has_member(object, "box_type"))
-                       decodingBox->type = GetSupportedType<BoxType,
-                                               map<string, BoxType>>(object, "box_type", gSupportedBoxTypes);
+                       decodingBox->type =
+                                       GetSupportedType<BoxType, map<string, BoxType> >(object, "box_type", gSupportedBoxTypes);
 
                if (json_object_has_member(object, "box_coordinate"))
-                       decodingBox->coordinateType = GetSupportedType<BoxCoordinateType,
-                                               map<string, BoxCoordinateType>>(object, "box_coordinate", gSupportedBoxCoordinateTypes);
+                       decodingBox->coordinateType = GetSupportedType<BoxCoordinateType, map<string, BoxCoordinateType> >(
+                                       object, "box_coordinate", gSupportedBoxCoordinateTypes);
 
                if (json_object_has_member(object, "decoding_type"))
-                       decodingBox->decodingType = GetSupportedType<BoxDecodingType,
-                                               map<string, BoxDecodingType>>(object, "decoding_type", gSupportedBoxDecodingTypes);
+                       decodingBox->decodingType = GetSupportedType<BoxDecodingType, map<string, BoxDecodingType> >(
+                                       object, "decoding_type", gSupportedBoxDecodingTypes);
        } catch (const std::exception &e) {
                LOGE("%s", e.what());
                throw InvalidOperation("Invalid box meta information.");
index 7b54412..3a953a2 100644 (file)
@@ -45,7 +45,6 @@ namespace mediavision
 {
 namespace machine_learning
 {
-
 void Preprocess::colorConvert(cv::Mat &source, cv::Mat &dest, int sType, int dType)
 {
        LOGI("ENTER");
@@ -63,8 +62,7 @@ void Preprocess::colorConvert(cv::Mat &source, cv::Mat &dest, int sType, int dTy
        LOGI("LEAVE");
 }
 
-void Preprocess::normalize(cv::Mat &source, cv::Mat &dest, const vector<double> &mean,
-                                                 const vector<double> &std)
+void Preprocess::normalize(cv::Mat &source, cv::Mat &dest, const vector<double> &mean, const vector<double> &std)
 {
        LOGI("ENTER");
 
@@ -79,8 +77,7 @@ void Preprocess::normalize(cv::Mat &source, cv::Mat &dest, const vector<double>
        LOGI("LEAVE");
 }
 
-void Preprocess::quantize(cv::Mat &source, cv::Mat &dest, const vector<double> &scale,
-                                                const vector<double> &zeropoint)
+void Preprocess::quantize(cv::Mat &source, cv::Mat &dest, const vector<double> &scale, const vector<double> &zeropoint)
 {
        LOGI("ENTER");
 
@@ -147,8 +144,7 @@ void Preprocess::convertToCvSource(vector<mv_source_h> &mv_srcs, vector<cv::Mat>
        }
 }
 
-void Preprocess::run(vector<mv_source_h>& mv_srcs, MetaMap& tensorMetaInfo,
-                                        IETensorBuffer& tensorBufferMap)
+void Preprocess::run(vector<mv_source_h> &mv_srcs, MetaMap &tensorMetaInfo, IETensorBuffer &tensorBufferMap)
 {
        LOGI("ENTER");
 
@@ -159,20 +155,18 @@ void Preprocess::run(vector<mv_source_h>& mv_srcs, MetaMap& tensorMetaInfo,
        _vImageHeight.clear();
        convertToCvSource(mv_srcs, oriCvSources);
 
-       for (autoit : tensorBufferMap) {
+       for (auto &it : tensorBufferMap) {
                inference_engine_tensor_buffer &tensor_buffer = it.second;
                mv_colorspace_e colorspace = MEDIA_VISION_COLORSPACE_INVALID;
                int ret = mv_source_get_colorspace(mv_srcs[src_idx], &colorspace);
                if (ret != MEDIA_VISION_ERROR_NONE)
                        throw InvalidOperation("Fail to get color space.");
 
-
                shared_ptr<MetaInfo> metaInfo = tensorMetaInfo[it.first];
                int data_type = convertToCv(tensor_buffer.data_type, metaInfo->getChannel());
 
                // dest is a wrapper of the buffer
-               cv::Mat dest(cv::Size(metaInfo->getWidth(), metaInfo->getHeight()),
-                                        data_type, tensor_buffer.buffer);
+               cv::Mat dest(cv::Size(metaInfo->getWidth(), metaInfo->getHeight()), data_type, tensor_buffer.buffer);
 
                cv::Mat cvSource, cvDest;
 
@@ -186,7 +180,8 @@ void Preprocess::run(vector<mv_source_h>& mv_srcs, MetaMap& tensorMetaInfo,
                cvDest.convertTo(dest, dest.type());
 
                try {
-                       auto normalization = static_pointer_cast<DecodingNormal>(metaInfo->decodingTypeMap.at(DecodingType::NORMAL));
+                       auto normalization =
+                                       static_pointer_cast<DecodingNormal>(metaInfo->decodingTypeMap.at(DecodingType::NORMAL));
 
                        if (normalization && normalization->use)
                                normalize(dest, dest, normalization->mean, normalization->std);
@@ -195,7 +190,8 @@ void Preprocess::run(vector<mv_source_h>& mv_srcs, MetaMap& tensorMetaInfo,
                }
 
                try {
-                       auto quantization = static_pointer_cast<DecodingQuantization>(metaInfo->decodingTypeMap.at(DecodingType::QUANTIZATION));
+                       auto quantization =
+                                       static_pointer_cast<DecodingQuantization>(metaInfo->decodingTypeMap.at(DecodingType::QUANTIZATION));
 
                        if (quantization && quantization->use)
                                quantize(dest, dest, quantization->scale, quantization->zeropoint);
index 0baae5d..44358e0 100644 (file)
 #include "MetaParser.h"
 #include "PostprocessParser.h"
 
-namespace mediavision {
-namespace machine_learning {
-
+namespace mediavision
+{
+namespace machine_learning
+{
 class ObjectDetectionParser : public MetaParser
 {
 private:
index edec702..249fbd6 100644 (file)
 #include <mv_object_detection_3d_type.h>
 
 #ifdef __cplusplus
-extern "C"
-{
+extern "C" {
 #endif /* __cplusplus */
 
-       /**
+/**
         * @brief Create face recognition object handle.
         * @details Use this function to create an face recognition object handle.
         *          After creation the handle has to be prepared with
@@ -48,9 +47,9 @@ extern "C"
         *
         * @see mv_object_detection_3d_destroy_open()
         */
-       int mv_object_detection_3d_create_open(mv_object_detection_3d_h *out_handle);
+int mv_object_detection_3d_create_open(mv_object_detection_3d_h *out_handle);
 
-       /**
+/**
         * @brief Destroy face recognition handle and releases all its resources.
         *
         * @since_tizen 7.0
@@ -65,9 +64,9 @@ extern "C"
         *
         * @see mv_object_detection_3d_create_open()
         */
-       int mv_object_detection_3d_destroy_open(mv_object_detection_3d_h handle);
+int mv_object_detection_3d_destroy_open(mv_object_detection_3d_h handle);
 
-       /**
+/**
         * @brief Configure the backend to the inference handle
         *
         * @since_tizen 7.0
@@ -79,9 +78,9 @@ extern "C"
         * @retval #MEDIA_VISION_ERROR_OUT_OF_MEMORY Out of memory
         * @retval #MEDIA_VISION_ERROR_NOT_SUPPORTED Not supported
         */
-       int mv_object_detection_3d_configure_open(mv_object_detection_3d_h handle);
+int mv_object_detection_3d_configure_open(mv_object_detection_3d_h handle);
 
-       /**
+/**
         * @brief Prepare inference.
         * @details Use this function to prepare inference based on
         *          the configured network.
@@ -95,9 +94,9 @@ extern "C"
         * @retval #MEDIA_VISION_ERROR_INVALID_DATA Invalid model data
         * @retval #MEDIA_VISION_ERROR_OUT_OF_MEMORY Out of memory
         */
-       int mv_object_detection_3d_prepare_open(mv_object_detection_3d_h handle);
+int mv_object_detection_3d_prepare_open(mv_object_detection_3d_h handle);
 
-       /**
+/**
         *
         * @brief Inference with a given face on the @a source
         * @details Use this function to inference with a given source.
@@ -120,9 +119,9 @@ extern "C"
         * @pre Prepare an face recognition by calling @ref mv_object_detection_3d_prepare_open()
         * @pre Register a new face by calling @ref mv_object_detection_3d_register_open()
         */
-       int mv_object_detection_3d_inference_open(mv_object_detection_3d_h handle, mv_source_h source);
+int mv_object_detection_3d_inference_open(mv_object_detection_3d_h handle, mv_source_h source);
 
-       /**
+/**
         * @brief Gets the probability value to the detected object.
         * @details Use this function to get the probability value after calling @ref mv_object_detection_3d_inference().
         *
@@ -140,9 +139,9 @@ extern "C"
         *
         * @pre Request an inference by calling @ref mv_object_detection_3d_inference()
         */
-       int mv_object_detection_3d_get_probability_open(mv_object_detection_3d_h handle, unsigned int *out_probability);
+int mv_object_detection_3d_get_probability_open(mv_object_detection_3d_h handle, unsigned int *out_probability);
 
-       /**
+/**
         * @brief Gets the number of points to the 3D bounding box of the detected object.
         * @details Use this function to get the number of points after calling @ref mv_object_detection_3d_inference().
         *
@@ -160,9 +159,9 @@ extern "C"
         *
         * @pre Request an inference by calling @ref mv_object_detection_3d_inference()
         */
-       int mv_object_detection_3d_get_num_of_points_open(mv_object_detection_3d_h handle, unsigned int *out_num_of_points);
+int mv_object_detection_3d_get_num_of_points_open(mv_object_detection_3d_h handle, unsigned int *out_num_of_points);
 
-       /**
+/**
         * @brief Gets the x and y coordinates values to the 3D bounding box of the detected object.
         * @details Use this function to get the coordinates values after calling @ref mv_object_detection_3d_inference().
         *
@@ -181,7 +180,7 @@ extern "C"
         *
         * @pre Request an inference by calling @ref mv_object_detection_3d_inference()
         */
-       int mv_object_detection_3d_get_points_open(mv_object_detection_3d_h handle, unsigned int **out_x, unsigned int **out_y);
+int mv_object_detection_3d_get_points_open(mv_object_detection_3d_h handle, unsigned int **out_x, unsigned int **out_y);
 
 #ifdef __cplusplus
 }
index ad44026..02c3a50 100644 (file)
@@ -32,7 +32,6 @@ namespace mediavision
 {
 namespace machine_learning
 {
-
 class ObjectDetection
 {
 protected:
@@ -51,9 +50,9 @@ public:
        virtual void parseMetaFile() = 0;
        void configure();
        void prepare();
-       void preprocess(mv_source_hmv_src);
+       void preprocess(mv_source_h &mv_src);
        void inference(mv_source_h source);
-       virtual object_detection_3d_result_sgetResult() = 0;
+       virtual object_detection_3d_result_s &getResult() = 0;
 };
 
 } // machine_learning
index a84de91..63795df 100644 (file)
@@ -27,9 +27,7 @@ namespace mediavision
 {
 namespace machine_learning
 {
-
-template<typename T, typename V>
-class ObjectDetectionAdapter : public mediavision::common::ITask<T, V>
+template<typename T, typename V> class ObjectDetectionAdapter : public mediavision::common::ITask<T, V>
 {
 private:
        std::unique_ptr<ObjectDetection> _object_detection;
@@ -45,7 +43,7 @@ public:
        void prepare() override;
        void setInput(T &t) override;
        void perform() override;
-       VgetOutput() override;
+       V &getOutput() override;
 };
 
 } // machine_learning
index a91e442..bd2c36f 100644 (file)
@@ -24,7 +24,6 @@ namespace mediavision
 {
 namespace machine_learning
 {
-
 typedef struct {
        mv_source_h inference_src;
 } object_detection_input_s;
index 1f2ebb0..404786a 100644 (file)
@@ -29,7 +29,6 @@ namespace mediavision
 {
 namespace machine_learning
 {
-
 class Objectron : public ObjectDetection
 {
 private:
@@ -39,7 +38,7 @@ public:
        Objectron();
        ~Objectron();
        void parseMetaFile() override;
-       object_detection_3d_result_sgetResult() override;
+       object_detection_3d_result_s &getResult() override;
 };
 
 } // machine_learning
index 8ea451e..0290d2d 100644 (file)
 using namespace std;
 using namespace mediavision::machine_learning::exception;
 
-namespace mediavision {
-namespace machine_learning {
-
+namespace mediavision
+{
+namespace machine_learning
+{
 ObjectDetectionParser::ObjectDetectionParser()
 {
        LOGI("ENTER");
@@ -31,8 +32,7 @@ ObjectDetectionParser::ObjectDetectionParser()
 }
 
 ObjectDetectionParser::~ObjectDetectionParser()
-{
-}
+{}
 
 void ObjectDetectionParser::parsePostprocess(shared_ptr<MetaInfo> meta_info, JsonObject *in_obj)
 {
index 0d6bc6a..f5c4efd 100644 (file)
@@ -25,8 +25,7 @@
 
 int mv_object_detection_3d_create(mv_object_detection_3d_h *infer)
 {
-       MEDIA_VISION_SUPPORT_CHECK(
-                       _mv_inference_check_system_info_feature_supported());
+       MEDIA_VISION_SUPPORT_CHECK(_mv_inference_check_system_info_feature_supported());
        MEDIA_VISION_NULL_ARG_CHECK(infer);
 
        MEDIA_VISION_FUNCTION_ENTER();
@@ -41,8 +40,7 @@ int mv_object_detection_3d_create(mv_object_detection_3d_h *infer)
 
 int mv_object_detection_3d_destroy(mv_object_detection_3d_h infer)
 {
-       MEDIA_VISION_SUPPORT_CHECK(
-                       _mv_inference_check_system_info_feature_supported());
+       MEDIA_VISION_SUPPORT_CHECK(_mv_inference_check_system_info_feature_supported());
        MEDIA_VISION_INSTANCE_CHECK(infer);
 
        MEDIA_VISION_FUNCTION_ENTER();
@@ -57,8 +55,7 @@ int mv_object_detection_3d_destroy(mv_object_detection_3d_h infer)
 
 int mv_object_detection_3d_configure(mv_object_detection_3d_h infer)
 {
-       MEDIA_VISION_SUPPORT_CHECK(
-                       _mv_inference_check_system_info_feature_supported());
+       MEDIA_VISION_SUPPORT_CHECK(_mv_inference_check_system_info_feature_supported());
        MEDIA_VISION_INSTANCE_CHECK(infer);
 
        MEDIA_VISION_FUNCTION_ENTER();
@@ -73,8 +70,7 @@ int mv_object_detection_3d_configure(mv_object_detection_3d_h infer)
 
 int mv_object_detection_3d_prepare(mv_object_detection_3d_h infer)
 {
-       MEDIA_VISION_SUPPORT_CHECK(
-                       _mv_inference_check_system_info_feature_supported());
+       MEDIA_VISION_SUPPORT_CHECK(_mv_inference_check_system_info_feature_supported());
        MEDIA_VISION_INSTANCE_CHECK(infer);
 
        MEDIA_VISION_FUNCTION_ENTER();
@@ -89,8 +85,7 @@ int mv_object_detection_3d_prepare(mv_object_detection_3d_h infer)
 
 int mv_object_detection_3d_inference(mv_object_detection_3d_h infer, mv_source_h source)
 {
-       MEDIA_VISION_SUPPORT_CHECK(
-                       _mv_inference_image_check_system_info_feature_supported());
+       MEDIA_VISION_SUPPORT_CHECK(_mv_inference_image_check_system_info_feature_supported());
        MEDIA_VISION_INSTANCE_CHECK(source);
        MEDIA_VISION_INSTANCE_CHECK(infer);
 
@@ -107,8 +102,7 @@ int mv_object_detection_3d_inference(mv_object_detection_3d_h infer, mv_source_h
 
 int mv_object_detection_3d_get_probability(mv_object_detection_3d_h handle, unsigned int *out_probability)
 {
-       MEDIA_VISION_SUPPORT_CHECK(
-               _mv_inference_face_check_system_info_feature_supported());
+       MEDIA_VISION_SUPPORT_CHECK(_mv_inference_face_check_system_info_feature_supported());
 
        MEDIA_VISION_INSTANCE_CHECK(handle);
        MEDIA_VISION_NULL_ARG_CHECK(out_probability);
@@ -126,8 +120,7 @@ int mv_object_detection_3d_get_probability(mv_object_detection_3d_h handle, unsi
 
 int mv_object_detection_3d_get_num_of_points(mv_object_detection_3d_h handle, unsigned int *out_num_of_points)
 {
-       MEDIA_VISION_SUPPORT_CHECK(
-               _mv_inference_face_check_system_info_feature_supported());
+       MEDIA_VISION_SUPPORT_CHECK(_mv_inference_face_check_system_info_feature_supported());
 
        MEDIA_VISION_INSTANCE_CHECK(handle);
        MEDIA_VISION_NULL_ARG_CHECK(out_num_of_points);
@@ -145,8 +138,7 @@ int mv_object_detection_3d_get_num_of_points(mv_object_detection_3d_h handle, un
 
 int mv_object_detection_3d_get_points(mv_object_detection_3d_h handle, unsigned int **out_x, unsigned int **out_y)
 {
-       MEDIA_VISION_SUPPORT_CHECK(
-               _mv_inference_face_check_system_info_feature_supported());
+       MEDIA_VISION_SUPPORT_CHECK(_mv_inference_face_check_system_info_feature_supported());
 
        MEDIA_VISION_INSTANCE_CHECK(handle);
        MEDIA_VISION_NULL_ARG_CHECK(out_x);
index dcc55a9..0c0de65 100644 (file)
@@ -58,7 +58,7 @@ int mv_object_detection_3d_create_open(mv_object_detection_3d_h *out_handle)
 
        try {
                task->create(OBJECT_DETECTION_TASK_3D);
-       } catch (const BaseExceptione) {
+       } catch (const BaseException &e) {
                return e.getError();
        }
 
@@ -79,7 +79,7 @@ int mv_object_detection_3d_destroy_open(mv_object_detection_3d_h handle)
 
        auto context = static_cast<Context *>(handle);
 
-       for (autom : context->__tasks)
+       for (auto &m : context->__tasks)
                delete static_cast<ObjectDetectionTask *>(m.second);
 
        delete context;
@@ -177,7 +177,7 @@ int mv_object_detection_3d_get_probability_open(mv_object_detection_3d_h handle,
                auto context = static_cast<Context *>(handle);
                auto task = static_cast<ObjectDetectionTask *>(context->__tasks["objectron"]);
 
-               object_detection_3d_result_sresult = task->getOutput();
+               object_detection_3d_result_s &result = task->getOutput();
 
                *out_probability = result.probability;
        } catch (const BaseException &e) {
@@ -203,7 +203,7 @@ int mv_object_detection_3d_get_num_of_points_open(mv_object_detection_3d_h handl
                auto context = static_cast<Context *>(handle);
                auto task = static_cast<ObjectDetectionTask *>(context->__tasks["objectron"]);
 
-               object_detection_3d_result_sresult = task->getOutput();
+               object_detection_3d_result_s &result = task->getOutput();
 
                *out_num_of_points = result.number_of_points;
        } catch (const BaseException &e) {
@@ -229,12 +229,12 @@ int mv_object_detection_3d_get_points_open(mv_object_detection_3d_h handle, unsi
                Context *context = static_cast<Context *>(handle);
                auto task = static_cast<ObjectDetectionTask *>(context->__tasks["objectron"]);
 
-               object_detection_3d_result_sresult = task->getOutput();
+               object_detection_3d_result_s &result = task->getOutput();
 
                *out_x = result.x_vec.data();
                *out_y = result.y_vec.data();
 
-               for (autoedge : result.edge_index_vec)
+               for (auto &edge : result.edge_index_vec)
                        LOGI("%d,%d ", edge.start, edge.end);
        } catch (const BaseException &e) {
                LOGE("%s", e.what());
index 9fd706e..e50fb14 100644 (file)
@@ -30,7 +30,6 @@ namespace mediavision
 {
 namespace machine_learning
 {
-
 ObjectDetection::ObjectDetection() : _backendType(), _targetDeviceType()
 {
        _parser = make_unique<ObjectDetectionParser>();
@@ -60,11 +59,11 @@ void ObjectDetection::prepare()
        if (ret != MEDIA_VISION_ERROR_NONE)
                throw InvalidOperation("Fail to load model files.");
 }
-void ObjectDetection::preprocess(mv_source_hmv_src)
+void ObjectDetection::preprocess(mv_source_h &mv_src)
 {
        LOGI("ENTER");
 
-       TensorBuffertensor_buffer_obj = _inference->getInputTensorBuffer();
+       TensorBuffer &tensor_buffer_obj = _inference->getInputTensorBuffer();
        IETensorBuffer &ie_tensor_buffer = tensor_buffer_obj.getIETensorBuffer();
        vector<mv_source_h> mv_srcs = { mv_src };
 
index fc16729..edcefaf 100644 (file)
@@ -26,17 +26,13 @@ namespace mediavision
 {
 namespace machine_learning
 {
+template<typename T, typename V> ObjectDetectionAdapter<T, V>::ObjectDetectionAdapter() : _source()
+{}
 
-template<typename T, typename V>  ObjectDetectionAdapter<T, V>::ObjectDetectionAdapter() : _source()
-{
-
-}
-
-template<typename T, typename V>  ObjectDetectionAdapter<T, V>::~ObjectDetectionAdapter()
+template<typename T, typename V> ObjectDetectionAdapter<T, V>::~ObjectDetectionAdapter()
 {}
 
-template<typename T, typename V>
-void ObjectDetectionAdapter<T, V>::create(int type)
+template<typename T, typename V> void ObjectDetectionAdapter<T, V>::create(int type)
 {
        switch (type) {
        case OBJECT_DETECTION_TASK_3D:
@@ -47,7 +43,7 @@ void ObjectDetectionAdapter<T, V>::create(int type)
        }
 }
 
-template<typename T, typename V>  void ObjectDetectionAdapter<T, V>::configure()
+template<typename T, typename V> void ObjectDetectionAdapter<T, V>::configure()
 {
        try {
                _object_detection->parseMetaFile();
@@ -57,7 +53,7 @@ template<typename T, typename V>  void ObjectDetectionAdapter<T, V>::configure()
        }
 }
 
-template<typename T, typename V>  void ObjectDetectionAdapter<T, V>::prepare()
+template<typename T, typename V> void ObjectDetectionAdapter<T, V>::prepare()
 {
        try {
                _object_detection->prepare();
@@ -81,7 +77,7 @@ template<typename T, typename V> void ObjectDetectionAdapter<T, V>::perform()
        }
 }
 
-template<typename T, typename V> VObjectDetectionAdapter<T, V>::getOutput()
+template<typename T, typename V> V &ObjectDetectionAdapter<T, V>::getOutput()
 {
        return _object_detection->getResult();
 }
index ad61584..ce2d94e 100644 (file)
@@ -32,15 +32,13 @@ namespace mediavision
 {
 namespace machine_learning
 {
-
 Objectron::Objectron() : _result()
 {
        _inference = make_unique<Inference>();
 }
 
 Objectron::~Objectron()
-{
-}
+{}
 
 static bool IsJsonFile(const string &fileName)
 {
@@ -49,16 +47,13 @@ static bool IsJsonFile(const string &fileName)
 
 void Objectron::parseMetaFile()
 {
-       _config = make_unique<EngineConfig>(string(MV_CONFIG_PATH) +
-                                                                               string(MV_OBJECT_DETECTION_3D_META_FILE_NAME));
+       _config = make_unique<EngineConfig>(string(MV_CONFIG_PATH) + string(MV_OBJECT_DETECTION_3D_META_FILE_NAME));
 
-       int ret = _config->getIntegerAttribute(string(MV_OBJECT_DETECTION_3D_BACKEND_TYPE),
-                                                                                 &_backendType);
+       int ret = _config->getIntegerAttribute(string(MV_OBJECT_DETECTION_3D_BACKEND_TYPE), &_backendType);
        if (ret != MEDIA_VISION_ERROR_NONE)
                throw InvalidOperation("Fail to get backend engine type.");
 
-       ret = _config->getIntegerAttribute(string(MV_OBJECT_DETECTION_3D_TARGET_DEVICE_TYPE),
-                                                                         &_targetDeviceType);
+       ret = _config->getIntegerAttribute(string(MV_OBJECT_DETECTION_3D_TARGET_DEVICE_TYPE), &_targetDeviceType);
        if (ret != MEDIA_VISION_ERROR_NONE)
                throw InvalidOperation("Fail to get target device type.");
 
@@ -79,9 +74,9 @@ void Objectron::parseMetaFile()
        _parser->load(_modelMetaFilePath);
 }
 
-object_detection_3d_result_sObjectron::getResult()
+object_detection_3d_result_s &Objectron::getResult()
 {
-       TensorBuffertensor_buffer_obj = _inference->GetOutputTensorBuffer();
+       TensorBuffer &tensor_buffer_obj = _inference->GetOutputTensorBuffer();
        IETensorBuffer &ie_tensor_buffer = tensor_buffer_obj.getIETensorBuffer();
 
        vector<string> output_layer_names;
@@ -89,9 +84,9 @@ object_detection_3d_result_s& Objectron::getResult()
        for (IETensorBuffer::iterator it = ie_tensor_buffer.begin(); it != ie_tensor_buffer.end(); it++)
                output_layer_names.push_back(it->first);
 
-       stringidentity_1_layer = output_layer_names[1];
+       string &identity_1_layer = output_layer_names[1];
 
-       inference_engine_tensor_buffertensor_buffer = tensor_buffer_obj.getTensorBuffer(identity_1_layer);
+       inference_engine_tensor_buffer *tensor_buffer = tensor_buffer_obj.getTensorBuffer(identity_1_layer);
        if (!tensor_buffer)
                throw InvalidOperation("Fail to get tensor buffer.");
 
@@ -101,8 +96,8 @@ object_detection_3d_result_s& Objectron::getResult()
        if (output_size != 18)
                throw InvalidOperation("Invalid number of points. Number of points should be 18.");
 
-       Postprocess postprocess({_preprocess.getImageWidth()[0], _preprocess.getImageHeight()[0],
-                                                         _inference->getInputWidth(), _inference->getInputHeight()});
+       Postprocess postprocess({ _preprocess.getImageWidth()[0], _preprocess.getImageHeight()[0],
+                                                         _inference->getInputWidth(), _inference->getInputHeight() });
 
        _result.x_vec.clear();
        _result.y_vec.clear();
@@ -114,7 +109,7 @@ object_detection_3d_result_s& Objectron::getResult()
 
        _result.number_of_points = output_size / 2;
 
-       stringidentity_layer = output_layer_names[0];
+       string &identity_layer = output_layer_names[0];
 
        tensor_buffer = tensor_buffer_obj.getTensorBuffer(identity_layer);
        if (!tensor_buffer)
@@ -132,7 +127,7 @@ object_detection_3d_result_s& Objectron::getResult()
                        _result.edge_index_vec.push_back({ decodingBox->edges[idx], decodingBox->edges[idx + 1] });
 
                _result.number_of_edges = decodingBox->edges.size();
-       } catch (const std::exceptione) {
+       } catch (const std::exception &e) {
                throw InvalidOperation("Invalid meta info access.");
        }
 
index f1ffc22..ad28063 100644 (file)
@@ -25,8 +25,7 @@
 
 #include "file_util.h"
 
-typedef struct
-{
+typedef struct {
        unsigned int signature;
        size_t feature_size;
        size_t one_hot_table_size;
index 6bb0b20..7a0f11f 100644 (file)
@@ -28,8 +28,7 @@
 #include "data_set_manager.h"
 #include "feature_vector_manager.h"
 
-typedef struct
-{
+typedef struct {
        int backend_type;
        unsigned int target_device;
        std::vector<std::string> input_layer_names;
index 3977c04..5de7333 100644 (file)
@@ -73,7 +73,7 @@ int mv_roi_tracker_prepare(mv_roi_tracker_h handle, int x, int y, int width, int
        MEDIA_VISION_SUPPORT_CHECK(_mv_roi_tracking_check_system_info_feature_supported());
        MEDIA_VISION_INSTANCE_CHECK(handle);
 
-       if( x < 0 || y < 0 || width <= 0 || height <= 0 ) {
+       if (x < 0 || y < 0 || width <= 0 || height <= 0) {
                LOGE("Invalid ROI. Check if roi parameters are less than zero, specially if width and height are equal to zero.");
                return MEDIA_VISION_ERROR_INVALID_PARAMETER;
        }
index 4fd2601..0539f58 100644 (file)
@@ -118,7 +118,7 @@ int mv_roi_tracker_prepare_open(mv_roi_tracker_h handle, int x, int y, int width
                return MEDIA_VISION_ERROR_INVALID_PARAMETER;
        }
 
-       if( x < 0 || y < 0 || width <= 0 || height <= 0 ) {
+       if (x < 0 || y < 0 || width <= 0 || height <= 0) {
                LOGE("Invalid ROI. Check if roi parameters are less than zero, specially if width and height are equal to zero.");
                return MEDIA_VISION_ERROR_INVALID_PARAMETER;
        }
index 014a200..74829f0 100644 (file)
@@ -178,8 +178,7 @@ public:
        virtual bool operator!=(const EventTrigger &other) const;
 
 protected:
-       struct CallbackData
-       {
+       struct CallbackData {
                mv_surveillance_event_trigger_h eventTrigger;
 
                mv_surveillance_event_occurred_cb callback;
index 4ca2804..19dc9bc 100644 (file)
@@ -33,8 +33,7 @@ namespace surveillance
 class MFTracker
 {
 public:
-       struct Params
-       {
+       struct Params {
                /**
                 * @brief TrackerMedianFlow algorithm parameters constructor
                 */
index 7c257d6..32e90d9 100644 (file)
@@ -1,6 +1,6 @@
 Name:        capi-media-vision
 Summary:     Media Vision library for Tizen Native API
-Version:     0.25.1
+Version:     0.25.2
 Release:     0
 Group:       Multimedia/Framework
 License:     Apache-2.0 and BSD-3-Clause
index b023750..4548a21 100644 (file)
@@ -37,8 +37,7 @@ static const char doc[] = "[VQA-barcode]\vmediavision barcode assessment\n\
  987654321    # 2nd barcode";
 static const char args_doc[] = "SOURCE";
 
-struct arguments
-{
+struct arguments {
        char *source;
 };
 
index 8d4fb07..3d210dd 100644 (file)
@@ -39,8 +39,7 @@ ModelTypes are below:\n\
  2:haarcascade_frontalface_alt_tree.xml";
 static const char args_doc[] = "SOURCE MODEL-TYPE";
 
-struct arguments
-{
+struct arguments {
        char *source;
        int model_type;
 };
index 7bf5220..ca9c11d 100644 (file)
@@ -36,8 +36,7 @@ static const char doc[] = "[VQA-surveillance]\vmediavision surveillance assessme
  Threshold range is 0 to 10";
 static const char args_doc[] = "SOURCE THRESHOLD";
 
-struct arguments
-{
+struct arguments {
        char *source;
        int threshold;
 };
index 517c64c..173b629 100644 (file)
@@ -42,8 +42,7 @@
 
 #define ARRAY_SIZE(x) (sizeof((x)) / sizeof((x)[0]))
 
-typedef struct
-{
+typedef struct {
        mv_barcode_type_e type;
        mv_barcode_qr_ecc_e ecc;
        mv_barcode_qr_mode_e mode;
@@ -61,11 +60,7 @@ typedef struct
        char *back_color;
 } barcode_model_s;
 
-typedef enum
-{
-       MV_TS_GENERATE_TO_IMAGE_FCN,
-       MV_TS_GENERATE_TO_SOURCE_FCN
-} generation_fcn_e;
+typedef enum { MV_TS_GENERATE_TO_IMAGE_FCN, MV_TS_GENERATE_TO_SOURCE_FCN } generation_fcn_e;
 
 static int current_y = MINY;
 static int mode = MANUAL;
@@ -80,8 +75,7 @@ static struct argp_option arg_options[] = {
        { 0 }
 };
 
-struct arguments
-{
+struct arguments {
        int mode;
        int interval;
 };
index f5e562d..afd65b6 100644 (file)
@@ -51,8 +51,7 @@ public:
        /**
         * @brief Structure to keep information about width, height and colorspace of an image.
         */
-       struct ImageData
-       {
+       struct ImageData {
                unsigned int imageWidth; /**< Image width */
                unsigned int imageHeight; /**< Image height */
                mv_colorspace_e imageColorspace; /**< Image colorspace */
index 16869f2..9433e20 100644 (file)
@@ -42,8 +42,7 @@ extern "C" {
  *
  * @since_tizen 3.0
  */
-typedef struct
-{
+typedef struct {
        unsigned int image_width; /**< Image width */
        unsigned int image_height; /**< Image height */
        mv_colorspace_e image_colorspace; /**< Image colorspace */
index af0a3a3..c5593d4 100644 (file)
 #include <stddef.h>
 
 #ifdef __cplusplus
-extern "C"  {
+extern "C" {
 #endif /* __cplusplus */
 
-typedef enum {
-        FAIL_OR_SUCCESSS,
-        FAIL_OR_DONE
-} notification_type_e;
+typedef enum { FAIL_OR_SUCCESSS, FAIL_OR_DONE } notification_type_e;
 
 /**
  * @brief Prints success result of action.
index 47646b6..a3f92a2 100644 (file)
@@ -29,8 +29,7 @@
 
 #include <pthread.h>
 
-typedef struct _mv_video_reader_s
-{
+typedef struct _mv_video_reader_s {
        /* Main bin */
        GstElement *pl;
 
@@ -54,8 +53,7 @@ typedef struct _mv_video_reader_s
        mv_video_reader_eos_cb eos_cb;
 } mv_video_reader_s;
 
-typedef struct _mv_video_writer_s
-{
+typedef struct _mv_video_writer_s {
        /* Main bin */
        GstElement *pl;
 
index 62fa9d7..a681aae 100644 (file)
@@ -37,8 +37,8 @@ void quaternion_mult(float *lpR, float *lpP, float *lpQ);
 void quaternion_to_matrix(float *lpM, float *lpQ);
 void quaternion_rotate(float *lpQ, float rad, float ax, float ay, float az);
 void quaternion_identity(float *lpQ);
-void quaternion_copy (float *lpTo, float *lpFrom);
-float vec3_normalize (float *v);
+void quaternion_copy(float *lpTo, float *lpFrom);
+float vec3_normalize(float *v);
 
 #ifdef __cplusplus
 }
index 4918ba1..1ee555e 100644 (file)
@@ -37,8 +37,7 @@ extern "C" {
 #include <math.h>
 #endif
 
-#define pixfmt_fourcc(a, b, c, d)\
-       ((uint32_t)(a) | ((uint32_t)(b) << 8) | ((uint32_t)(c) << 16) | ((uint32_t)(d) << 24))
+#define pixfmt_fourcc(a, b, c, d) ((uint32_t)(a) | ((uint32_t)(b) << 8) | ((uint32_t)(c) << 16) | ((uint32_t)(d) << 24))
 
 typedef struct _texture_2d_t {
        uint32_t texid;
@@ -51,7 +50,8 @@ uint32_t create_2d_texture(void *imgbuf, int width, int height);
 int init_2d_renderer(int w, int h);
 int load_texture(mv_source_h source, int *lpTexID, int *lpWidth, int *lpHeight);
 int draw_2d_texture(texture_2d_t *tex, int x, int y, int w, int h, int upsidedown);
-int egl_init_with_platform_window_surface(int gles_version, int depth_size, int stencil_size, int sample_num, int win_w, int win_h);
+int egl_init_with_platform_window_surface(int gles_version, int depth_size, int stencil_size, int sample_num, int win_w,
+                                                                                 int win_h);
 int egl_swap();
 
 #ifdef __cplusplus
index bd482bb..ae7dae9 100644 (file)
@@ -40,8 +40,7 @@ typedef struct shader_obj_t {
        GLint loc_mtx_nrm;
 } shader_obj_t;
 
-typedef struct _mesh_obj_t
-{
+typedef struct _mesh_obj_t {
        float *vtx_array;
        float *uv_array;
        unsigned short *idx_array;
index 42e4415..7545a40 100644 (file)
@@ -44,7 +44,7 @@ struct Window {
        struct wl_surface *wlSurface;
        struct wl_shell_surface *wlShellSurface;
        struct wl_callback *callback;
-       struct Geometry geometry,window_size;
+       struct Geometry geometry, window_size;
 };
 
 void *winsys_init_native_display(void);
index d9fd913..d9098c9 100644 (file)
@@ -190,9 +190,9 @@ int matrix_rotate(float *m, float angle, float x, float y, float z)
                return MEDIA_VISION_ERROR_INTERNAL;
        }
 
-       angleRadian = angle * (M_PI/180.0f);
-       sinA = (float)sin(angleRadian);
-       cosA = (float)cos(angleRadian);
+       angleRadian = angle * (M_PI / 180.0f);
+       sinA = (float) sin(angleRadian);
+       cosA = (float) cos(angleRadian);
 
        if (x == 0.0f && y == 0.0f && z != 0.0f) {
                if (z < 0.0f) {
@@ -252,7 +252,9 @@ int matrix_rotate(float *m, float angle, float x, float y, float z)
                        float fm0, fm1, fm2;
                        float mx, my, mz;
 
-                       fm0 = m[0]; fm1 = m[4]; fm2 = m[8];
+                       fm0 = m[0];
+                       fm1 = m[4];
+                       fm2 = m[8];
 
                        mx = fm0 * r00;
                        my = fm0 * r01;
@@ -266,9 +268,13 @@ int matrix_rotate(float *m, float angle, float x, float y, float z)
                        my += fm2 * r21;
                        mz += fm2 * r22;
 
-                       fm0 = m[1]; fm1 = m[5]; fm2 = m[9];
+                       fm0 = m[1];
+                       fm1 = m[5];
+                       fm2 = m[9];
 
-                       m[0] = mx; m[4] = my; m[8] = mz;
+                       m[0] = mx;
+                       m[4] = my;
+                       m[8] = mz;
 
                        mx = fm0 * r00;
                        my = fm0 * r01;
@@ -282,9 +288,13 @@ int matrix_rotate(float *m, float angle, float x, float y, float z)
                        my += fm2 * r21;
                        mz += fm2 * r22;
 
-                       fm0 = m[2]; fm1 = m[6]; fm2 = m[10];
+                       fm0 = m[2];
+                       fm1 = m[6];
+                       fm2 = m[10];
 
-                       m[1] = mx; m[5] = my; m[9] = mz;
+                       m[1] = mx;
+                       m[5] = my;
+                       m[9] = mz;
 
                        mx = fm0 * r00;
                        my = fm0 * r01;
@@ -298,9 +308,13 @@ int matrix_rotate(float *m, float angle, float x, float y, float z)
                        my += fm2 * r21;
                        mz += fm2 * r22;
 
-                       fm0 = m[3]; fm1 = m[7]; fm2 = m[11];
+                       fm0 = m[3];
+                       fm1 = m[7];
+                       fm2 = m[11];
 
-                       m[2] = mx; m[6] = my; m[10] = mz;
+                       m[2] = mx;
+                       m[6] = my;
+                       m[10] = mz;
 
                        mx = fm0 * r00;
                        my = fm0 * r01;
@@ -314,7 +328,9 @@ int matrix_rotate(float *m, float angle, float x, float y, float z)
                        my += fm2 * r21;
                        mz += fm2 * r22;
 
-                       m[3] = mx; m[7] = my; m[11] = mz;
+                       m[3] = mx;
+                       m[7] = my;
+                       m[11] = mz;
                }
        }
 
@@ -332,10 +348,18 @@ int matrix_scale(float *m, float x, float y, float z)
                return MEDIA_VISION_ERROR_INTERNAL;
        }
 
-       m00 = m[0]; m04 = m[4]; m08 = m[8];
-       m01 = m[1]; m05 = m[5]; m09 = m[9];
-       m02 = m[2]; m06 = m[6]; m10 = m[10];
-       m03 = m[3]; m07 = m[7]; m11 = m[11];
+       m00 = m[0];
+       m04 = m[4];
+       m08 = m[8];
+       m01 = m[1];
+       m05 = m[5];
+       m09 = m[9];
+       m02 = m[2];
+       m06 = m[6];
+       m10 = m[10];
+       m03 = m[3];
+       m07 = m[7];
+       m11 = m[11];
 
        m00 = m00 * x;
        m04 = m04 * y;
@@ -537,10 +561,22 @@ int matrix_identity(float *m)
                return MEDIA_VISION_ERROR_INTERNAL;
        }
 
-       m[0] = 1.0f; m[4] = 0.0f; m[8] = 0.0f; m[12] = 0.0f;
-       m[1] = 0.0f; m[5] = 1.0f; m[9] = 0.0f; m[13] = 0.0f;
-       m[2] = 0.0f; m[6] = 0.0f; m[10] = 1.0f; m[14] = 0.0f;
-       m[3] = 0.0f; m[7] = 0.0f; m[11] = 0.0f; m[15] = 1.0f;
+       m[0] = 1.0f;
+       m[4] = 0.0f;
+       m[8] = 0.0f;
+       m[12] = 0.0f;
+       m[1] = 0.0f;
+       m[5] = 1.0f;
+       m[9] = 0.0f;
+       m[13] = 0.0f;
+       m[2] = 0.0f;
+       m[6] = 0.0f;
+       m[10] = 1.0f;
+       m[14] = 0.0f;
+       m[3] = 0.0f;
+       m[7] = 0.0f;
+       m[11] = 0.0f;
+       m[15] = 1.0f;
 
        return MEDIA_VISION_ERROR_NONE;
 }
@@ -552,274 +588,268 @@ void matrix_copy(float *d, float *s)
 
 void matrix_transpose(float *m)
 {
-    float      m01, m02, m03;
-    float m04,      m06, m07;
-    float m08, m09,      m11;
-    float m12, m13, m14;
-
-               ; m04 = m[ 4]; m08 = m[ 8]; m12 = m[12];
-    m01 = m[ 1];              m09 = m[ 9]; m13 = m[13];
-    m02 = m[ 2]; m06 = m[ 6];              m14 = m[14];
-    m03 = m[ 3]; m07 = m[ 7]; m11 = m[11];
-
-    /*m[ 0] = m00;*/
-    m[ 1] = m04;
-    m[ 2] = m08;
-    m[ 3] = m12;
-    m[ 4] = m01;
-    /*m[ 5] = m05;*/
-    m[ 6] = m09;
-    m[ 7] = m13;
-    m[ 8] = m02;
-    m[ 9] = m06;
-    /*m[10] = m10;*/
-    m[11] = m14;
-    m[12] = m03;
-    m[13] = m07;
-    m[14] = m11;
-    /*m[15] = m15;*/
+       float m01, m02, m03;
+       float m04, m06, m07;
+       float m08, m09, m11;
+       float m12, m13, m14;
+
+       ;
+       m04 = m[4];
+       m08 = m[8];
+       m12 = m[12];
+       m01 = m[1];
+       m09 = m[9];
+       m13 = m[13];
+       m02 = m[2];
+       m06 = m[6];
+       m14 = m[14];
+       m03 = m[3];
+       m07 = m[7];
+       m11 = m[11];
+
+       /*m[ 0] = m00;*/
+       m[1] = m04;
+       m[2] = m08;
+       m[3] = m12;
+       m[4] = m01;
+       /*m[ 5] = m05;*/
+       m[6] = m09;
+       m[7] = m13;
+       m[8] = m02;
+       m[9] = m06;
+       /*m[10] = m10;*/
+       m[11] = m14;
+       m[12] = m03;
+       m[13] = m07;
+       m[14] = m11;
+       /*m[15] = m15;*/
 }
 
 void matrix_invert(float *m)
 {
-    float m00, m01, m02, m03;
-    float m04, m05, m06, m07;
-    float m08, m09, m10, m11;
-    float m12, m13, m14, m15;
-    float W00, W04, W08, W12;
-    float W01, W05, W09, W13;
-    float W02, W06, W10, W14;
-    float W03, W07, W11, W15;
-    float det, invdet;
-
-    m00 = m[ 0]; m04 = m[ 4]; m08 = m[ 8]; m12 = m[12];
-    m01 = m[ 1]; m05 = m[ 5]; m09 = m[ 9]; m13 = m[13];
-    m02 = m[ 2]; m06 = m[ 6]; m10 = m[10]; m14 = m[14];
-    m03 = m[ 3]; m07 = m[ 7]; m11 = m[11]; m15 = m[15];
-
-    if (m03 == 0.0f && m07 == 0.0f && m11 == 0.0f && m15 == 1.0f) {
-        W00 =   m05 * m10 - m09 * m06;
-        W04 = -(m01 * m10 - m09 * m02);
-        W08 =   m01 * m06 - m05 * m02;
-
-        det = m00 * W00 + m04 * W04 + m08 * W08;
-
-        if ( det == 0.0f )
-        {
-            return;
-        }
-        invdet = 1.0f / det;
-
-        W01 = -(m04 * m10 - m08 * m06);
-        W05 =   m00 * m10 - m08 * m02;
-        W09 = -(m00 * m06 - m04 * m02);
-
-        W02 =   m04 * m09  - m08 * m05;
-        W06 = -(m00 * m09  - m08 * m01);
-        W10 =   m00 * m05  - m04 * m01;
-
-        W03 = -(W00 * m12 + W01 * m13 + W02 * m14);
-        W07 = -(W04 * m12 + W05 * m13 + W06 * m14);
-        W11 = -(W08 * m12 + W09 * m13 + W10 * m14);
-
-        /* M^-1[ij] = invdet * M[ji] */
-        m[ 0]  = W00 * invdet;
-        m[ 4]  = W01 * invdet;
-        m[ 8]  = W02 * invdet;
-        m[12]  = W03 * invdet;
-
-        m[ 1]  = W04 * invdet;
-        m[ 5]  = W05 * invdet;
-        m[ 9]  = W06 * invdet;
-        m[13]  = W07 * invdet;
-
-        m[ 2]  = W08 * invdet;
-        m[ 6]  = W09 * invdet;
-        m[10]  = W10 * invdet;
-        m[14]  = W11 * invdet;
-
-        m[ 3]  = 0.0f;
-        m[ 7]  = 0.0f;
-        m[11]  = 0.0f;
-        m[15]  = 1.0f;
-    } else {
-        W00 = (m05 * (m10 * m15 - m14 * m11))
-            + (m09 * (m14 * m07 - m06 * m15))
-            + (m13 * (m06 * m11 - m10 * m07));
-        W01 = (m09 * (m14 * m03 - m02 * m15))
-            + (m13 * (m02 * m11 - m10 * m03))
-            + (m01 * (m10 * m15 - m14 * m11));
-        W02 = (m13 * (m02 * m07 - m06 * m03))
-            + (m01 * (m06 * m15 - m14 * m07))
-            + (m05 * (m14 * m03 - m02 * m15));
-        W03 = (m01 * (m06 * m11 - m10 * m07))
-            + (m05 * (m10 * m03 - m02 * m11))
-            + (m09 * (m02 * m07 - m06 * m03));
-        W04 = (m06 * (m11 * m12 - m15 * m08))
-            + (m10 * (m15 * m04 - m07 * m12))
-            + (m14 * (m07 * m08 - m11 * m04));
-        W05 = (m10 * (m15 * m00 - m03 * m12))
-            + (m14 * (m03 * m08 - m11 * m00))
-            + (m02 * (m11 * m12 - m15 * m08));
-        W06 = (m14 * (m03 * m04 - m07 * m00))
-            + (m02 * (m07 * m12 - m15 * m04))
-            + (m06 * (m15 * m00 - m03 * m12));
-        W07 = (m02 * (m07 * m08 - m11 * m04))
-            + (m06 * (m11 * m00 - m03 * m08))
-            + (m10 * (m03 * m04 - m07 * m00));
-        W08 = (m07 * (m08 * m13 - m12 * m09))
-            + (m11 * (m12 * m05 - m04 * m13))
-            + (m15 * (m04 * m09 - m08 * m05));
-        W09 = (m11 * (m12 * m01 - m00 * m13))
-            + (m15 * (m00 * m09 - m08 * m01))
-            + (m03 * (m08 * m13 - m12 * m09));
-        W10 = (m15 * (m00 * m05 - m04 * m01))
-            + (m03 * (m04 * m13 - m12 * m05))
-            + (m07 * (m12 * m01 - m00 * m13));
-        W11 = (m03 * (m04 * m09 - m08 * m05))
-            + (m07 * (m08 * m01 - m00 * m09))
-            + (m11 * (m00 * m05 - m04 * m01));
-        W12 = (m04 * (m09 * m14 - m13 * m10))
-            + (m08 * (m13 * m06 - m05 * m14))
-            + (m12 * (m05 * m10 - m09 * m06));
-        W13 = (m08 * (m13 * m02 - m01 * m14))
-            + (m12 * (m01 * m10 - m09 * m02))
-            + (m00 * (m09 * m14 - m13 * m10));
-        W14 = (m12 * (m01 * m06 - m05 * m02))
-            + (m00 * (m05 * m14 - m13 * m06))
-            + (m04 * (m13 * m02 - m01 * m14));
-        W15 = (m00 * (m05 * m10 - m09 * m06))
-            + (m04 * (m09 * m02 - m01 * m10))
-            + (m08 * (m01 * m06 - m05 * m02));
-
-        det = W00 * m00 - W01 * m04 + W02 * m08 - W03 * m12;
-
-        if (det == 0.0f) {
-            return;
-        }
-        invdet = 1.0f / det;
-
-        m[ 0] =  W00 * invdet;
-        m[ 1] = -W01 * invdet;
-        m[ 2] =  W02 * invdet;
-        m[ 3] = -W03 * invdet;
-        m[ 4] = -W04 * invdet;
-        m[ 5] =  W05 * invdet;
-        m[ 6] = -W06 * invdet;
-        m[ 7] =  W07 * invdet;
-        m[ 8] =  W08 * invdet;
-        m[ 9] = -W09 * invdet;
-        m[10] =  W10 * invdet;
-        m[11] = -W11 * invdet;
-        m[12] = -W12 * invdet;
-        m[13] =  W13 * invdet;
-        m[14] = -W14 * invdet;
-        m[15] =  W15 * invdet;
-    }
+       float m00, m01, m02, m03;
+       float m04, m05, m06, m07;
+       float m08, m09, m10, m11;
+       float m12, m13, m14, m15;
+       float W00, W04, W08, W12;
+       float W01, W05, W09, W13;
+       float W02, W06, W10, W14;
+       float W03, W07, W11, W15;
+       float det, invdet;
+
+       m00 = m[0];
+       m04 = m[4];
+       m08 = m[8];
+       m12 = m[12];
+       m01 = m[1];
+       m05 = m[5];
+       m09 = m[9];
+       m13 = m[13];
+       m02 = m[2];
+       m06 = m[6];
+       m10 = m[10];
+       m14 = m[14];
+       m03 = m[3];
+       m07 = m[7];
+       m11 = m[11];
+       m15 = m[15];
+
+       if (m03 == 0.0f && m07 == 0.0f && m11 == 0.0f && m15 == 1.0f) {
+               W00 = m05 * m10 - m09 * m06;
+               W04 = -(m01 * m10 - m09 * m02);
+               W08 = m01 * m06 - m05 * m02;
+
+               det = m00 * W00 + m04 * W04 + m08 * W08;
+
+               if (det == 0.0f) {
+                       return;
+               }
+               invdet = 1.0f / det;
+
+               W01 = -(m04 * m10 - m08 * m06);
+               W05 = m00 * m10 - m08 * m02;
+               W09 = -(m00 * m06 - m04 * m02);
+
+               W02 = m04 * m09 - m08 * m05;
+               W06 = -(m00 * m09 - m08 * m01);
+               W10 = m00 * m05 - m04 * m01;
+
+               W03 = -(W00 * m12 + W01 * m13 + W02 * m14);
+               W07 = -(W04 * m12 + W05 * m13 + W06 * m14);
+               W11 = -(W08 * m12 + W09 * m13 + W10 * m14);
+
+               /* M^-1[ij] = invdet * M[ji] */
+               m[0] = W00 * invdet;
+               m[4] = W01 * invdet;
+               m[8] = W02 * invdet;
+               m[12] = W03 * invdet;
+
+               m[1] = W04 * invdet;
+               m[5] = W05 * invdet;
+               m[9] = W06 * invdet;
+               m[13] = W07 * invdet;
+
+               m[2] = W08 * invdet;
+               m[6] = W09 * invdet;
+               m[10] = W10 * invdet;
+               m[14] = W11 * invdet;
+
+               m[3] = 0.0f;
+               m[7] = 0.0f;
+               m[11] = 0.0f;
+               m[15] = 1.0f;
+       } else {
+               W00 = (m05 * (m10 * m15 - m14 * m11)) + (m09 * (m14 * m07 - m06 * m15)) + (m13 * (m06 * m11 - m10 * m07));
+               W01 = (m09 * (m14 * m03 - m02 * m15)) + (m13 * (m02 * m11 - m10 * m03)) + (m01 * (m10 * m15 - m14 * m11));
+               W02 = (m13 * (m02 * m07 - m06 * m03)) + (m01 * (m06 * m15 - m14 * m07)) + (m05 * (m14 * m03 - m02 * m15));
+               W03 = (m01 * (m06 * m11 - m10 * m07)) + (m05 * (m10 * m03 - m02 * m11)) + (m09 * (m02 * m07 - m06 * m03));
+               W04 = (m06 * (m11 * m12 - m15 * m08)) + (m10 * (m15 * m04 - m07 * m12)) + (m14 * (m07 * m08 - m11 * m04));
+               W05 = (m10 * (m15 * m00 - m03 * m12)) + (m14 * (m03 * m08 - m11 * m00)) + (m02 * (m11 * m12 - m15 * m08));
+               W06 = (m14 * (m03 * m04 - m07 * m00)) + (m02 * (m07 * m12 - m15 * m04)) + (m06 * (m15 * m00 - m03 * m12));
+               W07 = (m02 * (m07 * m08 - m11 * m04)) + (m06 * (m11 * m00 - m03 * m08)) + (m10 * (m03 * m04 - m07 * m00));
+               W08 = (m07 * (m08 * m13 - m12 * m09)) + (m11 * (m12 * m05 - m04 * m13)) + (m15 * (m04 * m09 - m08 * m05));
+               W09 = (m11 * (m12 * m01 - m00 * m13)) + (m15 * (m00 * m09 - m08 * m01)) + (m03 * (m08 * m13 - m12 * m09));
+               W10 = (m15 * (m00 * m05 - m04 * m01)) + (m03 * (m04 * m13 - m12 * m05)) + (m07 * (m12 * m01 - m00 * m13));
+               W11 = (m03 * (m04 * m09 - m08 * m05)) + (m07 * (m08 * m01 - m00 * m09)) + (m11 * (m00 * m05 - m04 * m01));
+               W12 = (m04 * (m09 * m14 - m13 * m10)) + (m08 * (m13 * m06 - m05 * m14)) + (m12 * (m05 * m10 - m09 * m06));
+               W13 = (m08 * (m13 * m02 - m01 * m14)) + (m12 * (m01 * m10 - m09 * m02)) + (m00 * (m09 * m14 - m13 * m10));
+               W14 = (m12 * (m01 * m06 - m05 * m02)) + (m00 * (m05 * m14 - m13 * m06)) + (m04 * (m13 * m02 - m01 * m14));
+               W15 = (m00 * (m05 * m10 - m09 * m06)) + (m04 * (m09 * m02 - m01 * m10)) + (m08 * (m01 * m06 - m05 * m02));
+
+               det = W00 * m00 - W01 * m04 + W02 * m08 - W03 * m12;
+
+               if (det == 0.0f) {
+                       return;
+               }
+               invdet = 1.0f / det;
+
+               m[0] = W00 * invdet;
+               m[1] = -W01 * invdet;
+               m[2] = W02 * invdet;
+               m[3] = -W03 * invdet;
+               m[4] = -W04 * invdet;
+               m[5] = W05 * invdet;
+               m[6] = -W06 * invdet;
+               m[7] = W07 * invdet;
+               m[8] = W08 * invdet;
+               m[9] = -W09 * invdet;
+               m[10] = W10 * invdet;
+               m[11] = -W11 * invdet;
+               m[12] = -W12 * invdet;
+               m[13] = W13 * invdet;
+               m[14] = -W14 * invdet;
+               m[15] = W15 * invdet;
+       }
 }
 
-void matrix_proj_perspective (float *mat, float fovy, float aspect, float znear, float zfar)
+void matrix_proj_perspective(float *mat, float fovy, float aspect, float znear, float zfar)
 {
-    float a,b,c,d,f;
+       float a, b, c, d, f;
 
-    memset( mat, 0x0, sizeof(float) * 16 );
+       memset(mat, 0x0, sizeof(float) * 16);
 
-    f = (float)(cos(2.0f*3.14f*(fovy/2.0f)/360.0f)/sin(2.0f*3.14f*(fovy/2.0f)/360.0f));
-    a = f/aspect;                        /* a = f/aspect                */
-    b = f;                               /* b = f                       */
-    c = (zfar+znear)/(znear-zfar);       /* c = (far+near)/(near-far)   */
-    d = (2.0f*zfar*znear)/(znear-zfar);  /* d = (2*far*near)/(near-far) */
+       f = (float) (cos(2.0f * 3.14f * (fovy / 2.0f) / 360.0f) / sin(2.0f * 3.14f * (fovy / 2.0f) / 360.0f));
+       a = f / aspect; /* a = f/aspect                */
+       b = f; /* b = f                       */
+       c = (zfar + znear) / (znear - zfar); /* c = (far+near)/(near-far)   */
+       d = (2.0f * zfar * znear) / (znear - zfar); /* d = (2*far*near)/(near-far) */
 
-    mat[ 0] = a;
-    mat[ 5] = b;
-    mat[10] = c;
-    mat[11] = -1.0f;
-    mat[14] = d;
+       mat[0] = a;
+       mat[5] = b;
+       mat[10] = c;
+       mat[11] = -1.0f;
+       mat[14] = d;
 }
 
-
 /* lpR = lpP * lpQ */
-void quaternion_mult (float *lpR, float *lpP, float *lpQ)
+void quaternion_mult(float *lpR, float *lpP, float *lpQ)
 {
-    float pw, px, py, pz;
-    float qw, qx, qy, qz;
-
-    pw = lpP[0]; px = lpP[1]; py = lpP[2]; pz = lpP[3];
-    qw = lpQ[0]; qx = lpQ[1]; qy = lpQ[2]; qz = lpQ[3];
-
-    lpR[0] = pw * qw - px * qx - py * qy - pz * qz;
-    lpR[1] = pw * qx + px * qw + py * qz - pz * qy;
-    lpR[2] = pw * qy - px * qz + py * qw + pz * qx;
-    lpR[3] = pw * qz + px * qy - py * qx + pz * qw;
+       float pw, px, py, pz;
+       float qw, qx, qy, qz;
+
+       pw = lpP[0];
+       px = lpP[1];
+       py = lpP[2];
+       pz = lpP[3];
+       qw = lpQ[0];
+       qx = lpQ[1];
+       qy = lpQ[2];
+       qz = lpQ[3];
+
+       lpR[0] = pw * qw - px * qx - py * qy - pz * qz;
+       lpR[1] = pw * qx + px * qw + py * qz - pz * qy;
+       lpR[2] = pw * qy - px * qz + py * qw + pz * qx;
+       lpR[3] = pw * qz + px * qy - py * qx + pz * qw;
 }
 
-
-void quaternion_to_matrix (float *lpM, float *lpQ)
+void quaternion_to_matrix(float *lpM, float *lpQ)
 {
-    float qw, qx, qy, qz;
-    float x2, y2, z2;
-    float xy, yz, zx;
-    float wx, wy, wz;
-
-    qw = lpQ[0]; qx = lpQ[1]; qy = lpQ[2]; qz = lpQ[3];
-
-    x2 = 2.0f * qx * qx;
-    y2 = 2.0f * qy * qy;
-    z2 = 2.0f * qz * qz;
-
-    xy = 2.0f * qx * qy;
-    yz = 2.0f * qy * qz;
-    zx = 2.0f * qz * qx;
-
-    wx = 2.0f * qw * qx;
-    wy = 2.0f * qw * qy;
-    wz = 2.0f * qw * qz;
-
-    lpM[ 0] = 1.0f - y2 - z2;
-    lpM[ 4] = xy - wz;
-    lpM[ 8] = zx + wy;
-    lpM[12] = 0.0f;
-
-    lpM[ 1] = xy + wz;
-    lpM[ 5] = 1.0f - z2 - x2;
-    lpM[ 9] = yz - wx;
-    lpM[13] = 0.0f;
-
-    lpM[ 2] = zx - wy;
-    lpM[ 6] = yz + wx;
-    lpM[10] = 1.0f - x2 - y2;
-    lpM[14] = 0.0f;
-
-    lpM[ 3] = lpM[ 7] = lpM[11] = 0.0f;
-    lpM[15] = 1.0f;
-    }
-
+       float qw, qx, qy, qz;
+       float x2, y2, z2;
+       float xy, yz, zx;
+       float wx, wy, wz;
+
+       qw = lpQ[0];
+       qx = lpQ[1];
+       qy = lpQ[2];
+       qz = lpQ[3];
+
+       x2 = 2.0f * qx * qx;
+       y2 = 2.0f * qy * qy;
+       z2 = 2.0f * qz * qz;
+
+       xy = 2.0f * qx * qy;
+       yz = 2.0f * qy * qz;
+       zx = 2.0f * qz * qx;
+
+       wx = 2.0f * qw * qx;
+       wy = 2.0f * qw * qy;
+       wz = 2.0f * qw * qz;
+
+       lpM[0] = 1.0f - y2 - z2;
+       lpM[4] = xy - wz;
+       lpM[8] = zx + wy;
+       lpM[12] = 0.0f;
+
+       lpM[1] = xy + wz;
+       lpM[5] = 1.0f - z2 - x2;
+       lpM[9] = yz - wx;
+       lpM[13] = 0.0f;
+
+       lpM[2] = zx - wy;
+       lpM[6] = yz + wx;
+       lpM[10] = 1.0f - x2 - y2;
+       lpM[14] = 0.0f;
+
+       lpM[3] = lpM[7] = lpM[11] = 0.0f;
+       lpM[15] = 1.0f;
+}
 
-void quaternion_rotate (float *lpQ, float rad, float ax, float ay, float az)
+void quaternion_rotate(float *lpQ, float rad, float ax, float ay, float az)
 {
-    float hrad = 0.5f * rad;
-    float s = sinf(hrad);
+       float hrad = 0.5f * rad;
+       float s = sinf(hrad);
 
-    lpQ[0] = cosf(hrad);    /* w */
-    lpQ[1] = s * ax;        /* x */
-    lpQ[2] = s * ay;        /* y */
-    lpQ[3] = s * az;        /* z */
+       lpQ[0] = cosf(hrad); /* w */
+       lpQ[1] = s * ax; /* x */
+       lpQ[2] = s * ay; /* y */
+       lpQ[3] = s * az; /* z */
 }
 
-void quaternion_identity (float *lpQ)
+void quaternion_identity(float *lpQ)
 {
-    lpQ[0] = 1.0f;          /* w */
-    lpQ[1] = 0.0f;          /* x */
-    lpQ[2] = 0.0f;          /* y */
-    lpQ[3] = 0.0f;          /* z */
+       lpQ[0] = 1.0f; /* w */
+       lpQ[1] = 0.0f; /* x */
+       lpQ[2] = 0.0f; /* y */
+       lpQ[3] = 0.0f; /* z */
 }
 
-void quaternion_copy (float *lpTo, float *lpFrom)
+void quaternion_copy(float *lpTo, float *lpFrom)
 {
-    lpTo[0] = lpFrom[0];    /* w */
-    lpTo[1] = lpFrom[1];    /* x */
-    lpTo[2] = lpFrom[2];    /* y */
-    lpTo[3] = lpFrom[3];    /* z */
+       lpTo[0] = lpFrom[0]; /* w */
+       lpTo[1] = lpFrom[1]; /* x */
+       lpTo[2] = lpFrom[2]; /* y */
+       lpTo[3] = lpFrom[3]; /* z */
 }
 
 float vec3_normalize(float *v)
@@ -838,4 +868,3 @@ float vec3_normalize(float *v)
 
        return len;
 }
-
index 4559bd6..3c0b1c8 100644 (file)
@@ -73,7 +73,7 @@ void main(void)                                       \n\
     gl_FragColor *= u_Color;                          \n\
 }                                                     \n";
 
-static char fs_cmap_jet[] ="                          \n\
+static char fs_cmap_jet[] = "                          \n\
 precision mediump float;                              \n\
 varying     vec2      v_TexCoord;                     \n\
 uniform     sampler2D u_sampler;                      \n\
@@ -166,13 +166,8 @@ void main(void)                                       \n\
 }                                                     \n";
 
 #define SHADER_NUM 5
-static char *s_shader[SHADER_NUM * 2] = {
-       vs_fill, fs_fill,
-       vs_tex, fs_tex,
-       vs_tex, fs_extex,
-       vs_tex, fs_cmap_jet,
-       vs_tex_yuyv, fs_tex_yuyv
-};
+static char *s_shader[SHADER_NUM * 2] = { vs_fill,     fs_fill, vs_tex,          fs_tex,          vs_tex,
+                                                                                 fs_extex, vs_tex,      fs_cmap_jet, vs_tex_yuyv, fs_tex_yuyv };
 
 static shader_obj_t s_sobj[SHADER_NUM];
 static int s_loc_mtx[SHADER_NUM];
@@ -187,7 +182,7 @@ GLuint create_2d_texture(void *imgbuf, int width, int height)
 {
        GLuint texid;
 
-       glGenTextures(1, &texid );
+       glGenTextures(1, &texid);
        glBindTexture(GL_TEXTURE_2D, texid);
 
        glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR);
@@ -197,32 +192,36 @@ GLuint create_2d_texture(void *imgbuf, int width, int height)
 
        glPixelStorei(GL_UNPACK_ALIGNMENT, 4);
 
-       glTexImage2D(GL_TEXTURE_2D, 0, GL_RGB,
-                                       width, height, 0, GL_RGB,
-                                       GL_UNSIGNED_BYTE, imgbuf);
+       glTexImage2D(GL_TEXTURE_2D, 0, GL_RGB, width, height, 0, GL_RGB, GL_UNSIGNED_BYTE, imgbuf);
 
        return texid;
 }
 
-static EGLConfig find_egl_config(int r, int g, int b, int a, int d,
-                               int s, int ms, int sfc_type, int ver)
+static EGLConfig find_egl_config(int r, int g, int b, int a, int d, int s, int ms, int sfc_type, int ver)
 {
        EGLint num_conf, i;
        EGLBoolean ret;
        EGLConfig conf = 0, *conf_array = NULL;
 
-       EGLint config_attribs[] = {
-               EGL_RED_SIZE, 8,
-               EGL_GREEN_SIZE, 8,
-               EGL_BLUE_SIZE, 8,
-               EGL_ALPHA_SIZE, 8,
-               EGL_DEPTH_SIZE, EGL_DONT_CARE,
-               EGL_STENCIL_SIZE, EGL_DONT_CARE,
-               EGL_SAMPLES, EGL_DONT_CARE,
-               EGL_SURFACE_TYPE, EGL_WINDOW_BIT,
-               EGL_RENDERABLE_TYPE, EGL_OPENGL_ES2_BIT,
-               EGL_NONE
-       };
+       EGLint config_attribs[] = { EGL_RED_SIZE,
+                                                               8,
+                                                               EGL_GREEN_SIZE,
+                                                               8,
+                                                               EGL_BLUE_SIZE,
+                                                               8,
+                                                               EGL_ALPHA_SIZE,
+                                                               8,
+                                                               EGL_DEPTH_SIZE,
+                                                               EGL_DONT_CARE,
+                                                               EGL_STENCIL_SIZE,
+                                                               EGL_DONT_CARE,
+                                                               EGL_SAMPLES,
+                                                               EGL_DONT_CARE,
+                                                               EGL_SURFACE_TYPE,
+                                                               EGL_WINDOW_BIT,
+                                                               EGL_RENDERABLE_TYPE,
+                                                               EGL_OPENGL_ES2_BIT,
+                                                               EGL_NONE };
 
        config_attribs[1] = r;
        config_attribs[3] = g;
@@ -235,7 +234,8 @@ static EGLConfig find_egl_config(int r, int g, int b, int a, int d,
 
        switch (ver) {
        case 1:
-       case 2: config_attribs[17] = EGL_OPENGL_ES2_BIT;
+       case 2:
+               config_attribs[17] = EGL_OPENGL_ES2_BIT;
                break;
        default:
                LOGE("Invalid version");
@@ -248,7 +248,7 @@ static EGLConfig find_egl_config(int r, int g, int b, int a, int d,
                goto exit;
        }
 
-       conf_array = (EGLConfig *)calloc(num_conf, sizeof(EGLConfig));
+       conf_array = (EGLConfig *) calloc(num_conf, sizeof(EGLConfig));
        if (conf_array == NULL) {
                LOGE("EGLConfig is NULL");
                goto exit;
@@ -260,7 +260,7 @@ static EGLConfig find_egl_config(int r, int g, int b, int a, int d,
                goto exit;
        }
 
-       for (i = 0; i < num_conf; i ++) {
+       for (i = 0; i < num_conf; i++) {
                EGLint id, rsize, gsize, bsize, asize;
 
                eglGetConfigAttrib(s_dpy, conf_array[i], EGL_CONFIG_ID, &id);
@@ -287,21 +287,18 @@ exit:
        return conf;
 }
 
-int egl_init_with_platform_window_surface(int gles_version, int depth_size, int stencil_size, int sample_num,
-                               int win_w, int win_h)
+int egl_init_with_platform_window_surface(int gles_version, int depth_size, int stencil_size, int sample_num, int win_w,
+                                                                                 int win_h)
 {
        void *native_dpy, *native_win;
        EGLint major, minor;
        EGLConfig config;
        EGLBoolean ret;
-       EGLint context_attribs[] = {
-               EGL_CONTEXT_CLIENT_VERSION, 2,
-               EGL_NONE
-       };
+       EGLint context_attribs[] = { EGL_CONTEXT_CLIENT_VERSION, 2, EGL_NONE };
        EGLint sfc_attr[] = { EGL_NONE };
 
        native_dpy = winsys_init_native_display();
-       if ((native_dpy != EGL_DEFAULT_DISPLAY) &&(native_dpy == NULL)) {
+       if ((native_dpy != EGL_DEFAULT_DISPLAY) && (native_dpy == NULL)) {
                LOGE("native_dpy is not valid");
                return MEDIA_VISION_ERROR_INTERNAL;
        }
@@ -332,18 +329,21 @@ int egl_init_with_platform_window_surface(int gles_version, int depth_size, int
                return MEDIA_VISION_ERROR_INTERNAL;
        }
 
-       s_sfc = eglCreateWindowSurface(s_dpy, config, (NativeWindowType)native_win, sfc_attr);
-       if (s_sfc== EGL_NO_SURFACE) {
+       s_sfc = eglCreateWindowSurface(s_dpy, config, (NativeWindowType) native_win, sfc_attr);
+       if (s_sfc == EGL_NO_SURFACE) {
                LOGE("s_sfc is EGL_NO_SURFACE");
                return MEDIA_VISION_ERROR_INTERNAL;
        }
 
        switch (gles_version) {
-       case 1: context_attribs[1] = 1;
+       case 1:
+               context_attribs[1] = 1;
                break;
-       case 2: context_attribs[1] = 2;
+       case 2:
+               context_attribs[1] = 2;
                break;
-       case 3: context_attribs[1] = 3;
+       case 3:
+               context_attribs[1] = 3;
                break;
        default:
                LOGE("Invalid gles version");
@@ -378,48 +378,31 @@ int egl_swap()
        return MEDIA_VISION_ERROR_NONE;
 }
 
-static float varray[] = {
-       0.0, 0.0,
-       0.0, 1.0,
-       1.0, 0.0,
-       1.0, 1.0
-};
-
-static float tarray[] = {
-       0.0, 0.0,
-       0.0, 1.0,
-       1.0, 0.0,
-       1.0, 1.0
-};
-
-static float tarray2[] = {
-       0.0, 1.0,
-       0.0, 0.0,
-       1.0, 1.0,
-       1.0, 0.0
-};
+static float varray[] = { 0.0, 0.0, 0.0, 1.0, 1.0, 0.0, 1.0, 1.0 };
+
+static float tarray[] = { 0.0, 0.0, 0.0, 1.0, 1.0, 0.0, 1.0, 1.0 };
+
+static float tarray2[] = { 0.0, 1.0, 0.0, 0.0, 1.0, 1.0, 1.0, 0.0 };
 
 static float s_matprj[16];
 static void set_projection_matrix(int w, int h)
 {
        float mat_proj[] = {
-               0.0f, 0.0f, 0.0f, 0.0f,
-               0.0f, 0.0f, 0.0f, 0.0f,
-               0.0f, 0.0f, 0.0f, 0.0f,
-               -1.0f, 1.0f, 0.0f, 1.0f};
+               0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, 0.0f, -1.0f, 1.0f, 0.0f, 1.0f
+       };
 
-       mat_proj[0] = 2.0f / (float)w;
-       mat_proj[5] = -2.0f / (float)h;
+       mat_proj[0] = 2.0f / (float) w;
+       mat_proj[5] = -2.0f / (float) h;
 
-       memcpy(s_matprj, mat_proj, 16*sizeof(float));
+       memcpy(s_matprj, mat_proj, 16 * sizeof(float));
 }
 
 int init_2d_renderer(int w, int h)
 {
        int i;
 
-       for (i = 0; i < SHADER_NUM; i ++) {
-               if (generate_shader(&s_sobj[i], s_shader[2*i], s_shader[2*i + 1]) < 0) {
+       for (i = 0; i < SHADER_NUM; i++) {
+               if (generate_shader(&s_sobj[i], s_shader[2 * i], s_shader[2 * i + 1]) < 0) {
                        LOGE("%s(%d)", __FILE__, __LINE__);
                        return MEDIA_VISION_ERROR_INTERNAL;
                }
@@ -468,14 +451,14 @@ static void draw_2d_texture_in(texparam_t *tparam)
        glUniform1i(sobj->loc_tex, 0);
 
        switch (ttype) {
-       case 0:     /* fill     */
+       case 0: /* fill     */
                break;
-       case 1:     /* tex      */
-       case 4:     /* tex_yuyv */
+       case 1: /* tex      */
+       case 4: /* tex_yuyv */
                glBindTexture(GL_TEXTURE_2D, texid);
                uv = tparam->upsidedown ? tarray2 : tarray;
                break;
-       case 2:     /* tex_extex */
+       case 2: /* tex_extex */
                glBindTexture(GL_TEXTURE_EXTERNAL_OES, texid);
                uv = tparam->upsidedown ? tarray : tarray2;
                break;
@@ -494,11 +477,9 @@ static void draw_2d_texture_in(texparam_t *tparam)
        glEnable(GL_BLEND);
 
        if (tparam->blendfunc_en) {
-               glBlendFuncSeparate(tparam->blendfunc[0], tparam->blendfunc[1],
-                               tparam->blendfunc[2], tparam->blendfunc[3]);
+               glBlendFuncSeparate(tparam->blendfunc[0], tparam->blendfunc[1], tparam->blendfunc[2], tparam->blendfunc[3]);
        } else {
-               glBlendFuncSeparate(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA,
-                               GL_ONE, GL_ONE_MINUS_SRC_ALPHA);
+               glBlendFuncSeparate(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA, GL_ONE, GL_ONE_MINUS_SRC_ALPHA);
        }
 
        if (matrix_identity(matrix) != MEDIA_VISION_ERROR_NONE)
@@ -550,28 +531,25 @@ int load_texture(mv_source_h source, int *lpTexID, int *lpWidth, int *lpHeight)
        unsigned int buffer_size = 0;
        int err = mv_source_get_buffer(source, &data_buffer, &buffer_size);
        if (MEDIA_VISION_ERROR_NONE != err) {
-               LOGE(
-                               "ERROR: Errors were occurred during getting buffer from the "
-                               "source; code %i\n",
-                               err);
+               LOGE("ERROR: Errors were occurred during getting buffer from the "
+                        "source; code %i\n",
+                        err);
                return err;
        }
 
        err = mv_source_get_width(source, &width);
        if (MEDIA_VISION_ERROR_NONE != err) {
-               LOGE(
-                               "ERROR: Errors were occurred during getting width from the "
-                               "source; code %i\n",
-                               err);
+               LOGE("ERROR: Errors were occurred during getting width from the "
+                        "source; code %i\n",
+                        err);
                return err;
        }
 
        err = mv_source_get_height(source, &height);
        if (MEDIA_VISION_ERROR_NONE != err) {
-               LOGE(
-                               "ERROR: Errors were occurred during getting height from the "
-                               "source; code %i\n",
-                               err);
+               LOGE("ERROR: Errors were occurred during getting height from the "
+                        "source; code %i\n",
+                        err);
                return err;
        }
        texid = create_2d_texture(data_buffer, width, height);
@@ -588,7 +566,7 @@ int load_texture(mv_source_h source, int *lpTexID, int *lpWidth, int *lpHeight)
 
 int draw_2d_texture(texture_2d_t *tex, int x, int y, int w, int h, int upsidedown)
 {
-       texparam_t tparam = {0};
+       texparam_t tparam = { 0 };
 
        if (tex == NULL) {
                LOGE("tex is NULL");
@@ -603,10 +581,10 @@ int draw_2d_texture(texture_2d_t *tex, int x, int y, int w, int h, int upsidedow
        tparam.textype = 1;
        tparam.texw = tex->width;
        tparam.texh = tex->height;
-       tparam.color[0]= 1.0f;
-       tparam.color[1]= 1.0f;
-       tparam.color[2]= 1.0f;
-       tparam.color[3]= 1.0f;
+       tparam.color[0] = 1.0f;
+       tparam.color[1] = 1.0f;
+       tparam.color[2] = 1.0f;
+       tparam.color[3] = 1.0f;
        tparam.upsidedown = upsidedown;
 
        if (tex->format == pixfmt_fourcc('Y', 'U', 'Y', 'V'))
index 7ecc43c..69c1597 100644 (file)
@@ -32,20 +32,11 @@ static GLint s_loc_alpha;
 static GLint s_loc_lightpos;
 
 static GLfloat s_nrm[] = {
-       0.0f,  0.0f,  1.0f,
-       0.0f,  0.0f, -1.0f,
-       1.0f,  0.0f,  0.0f,
-       -1.0f,  0.0f,  0.0f,
-       0.0f,  1.0f,  0.0f,
-       0.0f, -1.0f,  0.0f,
+       0.0f, 0.0f, 1.0f, 0.0f, 0.0f, -1.0f, 1.0f, 0.0f, 0.0f, -1.0f, 0.0f, 0.0f, 0.0f, 1.0f, 0.0f, 0.0f, -1.0f, 0.0f,
 };
 
-
 static GLfloat s_uv[] = {
-       0.0f, 0.0f,
-       0.0f, 1.0f,
-       1.0f, 0.0f,
-       1.0f, 1.0f,
+       0.0f, 0.0f, 0.0f, 1.0f, 1.0f, 0.0f, 1.0f, 1.0f,
 };
 
 static char s_strVS[] = "                                   \n\
@@ -131,16 +122,16 @@ static void compute_invmat3x3(float *matMVI3x3, float *matMV)
 int init_cube(float aspect)
 {
        generate_shader(&s_sobj, s_strVS, s_strFS);
-       s_loc_mtx_mv = glGetUniformLocation(s_sobj.program, "u_MVMatrix" );
-       s_loc_mtx_pmv = glGetUniformLocation(s_sobj.program, "u_PMVMatrix" );
-       s_loc_mtx_nrm = glGetUniformLocation(s_sobj.program, "u_ModelViewIT" );
-       s_loc_color = glGetUniformLocation(s_sobj.program, "u_color" );
-       s_loc_alpha = glGetUniformLocation(s_sobj.program, "u_alpha" );
-       s_loc_lightpos= glGetUniformLocation(s_sobj.program, "u_LightPos" );
+       s_loc_mtx_mv = glGetUniformLocation(s_sobj.program, "u_MVMatrix");
+       s_loc_mtx_pmv = glGetUniformLocation(s_sobj.program, "u_PMVMatrix");
+       s_loc_mtx_nrm = glGetUniformLocation(s_sobj.program, "u_ModelViewIT");
+       s_loc_color = glGetUniformLocation(s_sobj.program, "u_color");
+       s_loc_alpha = glGetUniformLocation(s_sobj.program, "u_alpha");
+       s_loc_lightpos = glGetUniformLocation(s_sobj.program, "u_LightPos");
 
        matrix_proj_perspective(s_matPrj, 72.0f, aspect, 1.f, 10000.f);
 
-       unsigned char imgbuf[] = {255, 255, 255, 255};
+       unsigned char imgbuf[] = { 255, 255, 255, 255 };
        s_texid_dummy = create_2d_texture(imgbuf, 1, 1);
 
        return 0;
@@ -149,9 +140,9 @@ int init_cube(float aspect)
 int draw_line(float *mtxGlobal, float *p0, float *p1, float *color)
 {
        float matMV[16], matPMV[16], matMVI3x3[9];
-       GLfloat floor_vtx [9];
+       GLfloat floor_vtx[9];
 
-       for (int i = 0; i < 3; i ++) {
+       for (int i = 0; i < 3; i++) {
                floor_vtx[0 + i] = p0[i];
                floor_vtx[3 + i] = p1[i];
        }
@@ -159,13 +150,13 @@ int draw_line(float *mtxGlobal, float *p0, float *p1, float *color)
        glEnable(GL_DEPTH_TEST);
        glDisable(GL_CULL_FACE);
 
-       glUseProgram( s_sobj.program );
+       glUseProgram(s_sobj.program);
 
        glEnableVertexAttribArray(s_sobj.loc_vtx);
-       glEnableVertexAttribArray(s_sobj.loc_uv );
+       glEnableVertexAttribArray(s_sobj.loc_uv);
        glDisableVertexAttribArray(s_sobj.loc_nrm);
        glVertexAttribPointer(s_sobj.loc_vtx, 3, GL_FLOAT, GL_FALSE, 0, floor_vtx);
-       glVertexAttribPointer(s_sobj.loc_uv , 2, GL_FLOAT, GL_FALSE, 0, s_uv );
+       glVertexAttribPointer(s_sobj.loc_uv, 2, GL_FLOAT, GL_FALSE, 0, s_uv);
        glVertexAttrib4fv(s_sobj.loc_nrm, s_nrm);
 
        matrix_identity(matMV);
@@ -174,7 +165,7 @@ int draw_line(float *mtxGlobal, float *p0, float *p1, float *color)
        matrix_mult(matMV, mtxGlobal, matMV);
        matrix_mult(matPMV, s_matPrj, matMV);
 
-       glUniformMatrix4fv(s_loc_mtx_mv, 1, GL_FALSE, matMV );
+       glUniformMatrix4fv(s_loc_mtx_mv, 1, GL_FALSE, matMV);
        glUniformMatrix4fv(s_loc_mtx_pmv, 1, GL_FALSE, matPMV);
        glUniformMatrix3fv(s_loc_mtx_nrm, 1, GL_FALSE, matMVI3x3);
        glUniform3f(s_loc_lightpos, 1.0f, 1.0f, 1.0f);
@@ -198,13 +189,13 @@ int draw_point_arrays(float *mtxGlobal, float *vtx, float *uv, int num, int texi
        glEnable(GL_DEPTH_TEST);
        glDisable(GL_CULL_FACE);
 
-       glUseProgram( s_sobj.program );
+       glUseProgram(s_sobj.program);
 
        glEnableVertexAttribArray(s_sobj.loc_vtx);
-       glEnableVertexAttribArray(s_sobj.loc_uv );
+       glEnableVertexAttribArray(s_sobj.loc_uv);
        glDisableVertexAttribArray(s_sobj.loc_nrm);
        glVertexAttribPointer(s_sobj.loc_vtx, 3, GL_FLOAT, GL_FALSE, 0, vtx);
-       glVertexAttribPointer(s_sobj.loc_uv , 2, GL_FLOAT, GL_FALSE, 0, uv );
+       glVertexAttribPointer(s_sobj.loc_uv, 2, GL_FLOAT, GL_FALSE, 0, uv);
        glVertexAttrib4fv(s_sobj.loc_nrm, s_nrm);
 
        matrix_identity(matMV);
@@ -213,7 +204,7 @@ int draw_point_arrays(float *mtxGlobal, float *vtx, float *uv, int num, int texi
        matrix_mult(matMV, mtxGlobal, matMV);
        matrix_mult(matPMV, s_matPrj, matMV);
 
-       glUniformMatrix4fv(s_loc_mtx_mv, 1, GL_FALSE, matMV );
+       glUniformMatrix4fv(s_loc_mtx_mv, 1, GL_FALSE, matMV);
        glUniformMatrix4fv(s_loc_mtx_pmv, 1, GL_FALSE, matPMV);
        glUniformMatrix3fv(s_loc_mtx_nrm, 1, GL_FALSE, matMVI3x3);
        glUniform3f(s_loc_lightpos, 1.0f, 1.0f, 1.0f);
@@ -235,32 +226,32 @@ int create_mesh(mesh_obj_t *mesh, int num_tile_w, int num_tile_h)
 {
        int num_vtx_u = num_tile_w + 1;
        int num_vtx_v = num_tile_h + 1;
-       int num_vtx   = num_vtx_u * num_vtx_v;
+       int num_vtx = num_vtx_u * num_vtx_v;
 
-       mesh->vtx_array = (float *)malloc (num_vtx * 3 * sizeof(float));
-       mesh->uv_array  = (float *)malloc (num_vtx * 2 * sizeof(float));
+       mesh->vtx_array = (float *) malloc(num_vtx * 3 * sizeof(float));
+       mesh->uv_array = (float *) malloc(num_vtx * 2 * sizeof(float));
 
        GLuint vbos[3];
-       glGenBuffers (3, vbos);
+       glGenBuffers(3, vbos);
        mesh->vbo_vtx = vbos[0];
-       mesh->vbo_uv  = vbos[1];
+       mesh->vbo_uv = vbos[1];
        mesh->vbo_idx = vbos[2];
 
        int num_tri = num_tile_w * num_tile_h * 2;
        int num_idx = num_tri * 3;
-       int idx_buf_size = num_idx * sizeof (unsigned short);
-       unsigned short *idx_array = (unsigned short *)malloc (idx_buf_size);
+       int idx_buf_size = num_idx * sizeof(unsigned short);
+       unsigned short *idx_array = (unsigned short *) malloc(idx_buf_size);
 
-       for (int tile_y = 0; tile_y < num_tile_h; tile_y ++) {
-               for (int tile_x = 0; tile_x < num_tile_w; tile_x ++) {
+       for (int tile_y = 0; tile_y < num_tile_h; tile_y++) {
+               for (int tile_x = 0; tile_x < num_tile_w; tile_x++) {
                        int idx = tile_y * num_tile_w + tile_x;
 
-                       idx_array[6 * idx + 0] = (tile_y ) * num_vtx_u + (tile_x);
-                       idx_array[6 * idx + 1] = (tile_y+1) * num_vtx_u + (tile_x);
-                       idx_array[6 * idx + 2] = (tile_y ) * num_vtx_u + (tile_x+1);
-                       idx_array[6 * idx + 3] = (tile_y ) * num_vtx_u + (tile_x+1);
-                       idx_array[6 * idx + 4] = (tile_y+1) * num_vtx_u + (tile_x);
-                       idx_array[6 * idx + 5] = (tile_y+1) * num_vtx_u + (tile_x+1);
+                       idx_array[6 * idx + 0] = (tile_y) *num_vtx_u + (tile_x);
+                       idx_array[6 * idx + 1] = (tile_y + 1) * num_vtx_u + (tile_x);
+                       idx_array[6 * idx + 2] = (tile_y) *num_vtx_u + (tile_x + 1);
+                       idx_array[6 * idx + 3] = (tile_y) *num_vtx_u + (tile_x + 1);
+                       idx_array[6 * idx + 4] = (tile_y + 1) * num_vtx_u + (tile_x);
+                       idx_array[6 * idx + 5] = (tile_y + 1) * num_vtx_u + (tile_x + 1);
                }
        }
        mesh->idx_array = idx_array;
index 44b42b6..178fb35 100644 (file)
@@ -22,7 +22,7 @@ GLuint compile_shader_text(GLenum shaderType, const char *text)
        GLint stat;
 
        shader = glCreateShader(shaderType);
-       glShaderSource(shader, 1, (const char **)&text, NULL);
+       glShaderSource(shader, 1, (const char **) &text, NULL);
        glCompileShader(shader);
 
        glGetShaderiv(shader, GL_COMPILE_STATUS, &stat);
@@ -31,7 +31,7 @@ GLuint compile_shader_text(GLenum shaderType, const char *text)
                char *lpBuf;
 
                glGetShaderiv(shader, GL_INFO_LOG_LENGTH, &len);
-               lpBuf = (char *)malloc(len);
+               lpBuf = (char *) malloc(len);
 
                glGetShaderInfoLog(shader, len, &len, lpBuf);
                LOGE("Error: problem compiling shader.");
@@ -51,8 +51,10 @@ GLuint link_shaders(GLuint vertShader, GLuint fragShader)
 {
        GLuint program = glCreateProgram();
 
-       if (fragShader) glAttachShader(program, fragShader);
-       if (vertShader) glAttachShader(program, vertShader);
+       if (fragShader)
+               glAttachShader(program, fragShader);
+       if (vertShader)
+               glAttachShader(program, vertShader);
 
        glLinkProgram(program);
 
@@ -64,7 +66,7 @@ GLuint link_shaders(GLuint vertShader, GLuint fragShader)
                        char *lpBuf;
 
                        glGetProgramiv(program, GL_INFO_LOG_LENGTH, &len);
-                       lpBuf = (char *)malloc(len);
+                       lpBuf = (char *) malloc(len);
 
                        glGetProgramInfoLog(program, len, &len, lpBuf);
                        LOGE("Error: problem linking shader.");
index 0b69bf8..a60fc25 100644 (file)
@@ -27,11 +27,14 @@ static int win_w = 1920;
 static int win_h = 1080;
 static bool initialized = false;
 
-class ImageClientImpl {
+class ImageClientImpl
+{
 public:
-       ImageClientImpl(std::shared_ptr<grpc::Channel> channel) : stub_(NLImageService::NewStub(channel)) {}
+       ImageClientImpl(std::shared_ptr<grpc::Channel> channel) : stub_(NLImageService::NewStub(channel))
+       {}
 
-       void DrawImage(mv_source_h source) {
+       void DrawImage(mv_source_h source)
+       {
                unsigned int width = 0u, height = 0u;
                unsigned int bufferSize = 0u;
                unsigned char *buffer = NULL;
@@ -72,7 +75,6 @@ public:
 
 private:
        std::unique_ptr<NLImageService::Stub> stub_;
-
 };
 
 static int create_window_surface()
@@ -100,7 +102,7 @@ int mv_util_visualizer_2d(mv_source_h source, const char *url)
        int texid;
        int texw, texh;
        int err = MEDIA_VISION_ERROR_NONE;
-       texture_2d_t captex = {0};
+       texture_2d_t captex = { 0 };
 
        if (url == NULL) { // target display
                if (!initialized) {
@@ -110,22 +112,20 @@ int mv_util_visualizer_2d(mv_source_h source, const char *url)
                        initialized = true;
                }
 
-
                err = load_texture(source, &texid, &texw, &texh);
                if (MEDIA_VISION_ERROR_NONE != err) {
                        LOGE("load_texture: %i", err);
                        return MEDIA_VISION_ERROR_INTERNAL;
                }
 
-               captex.texid  = texid;
-               captex.width  = texw;
+               captex.texid = texid;
+               captex.width = texw;
                captex.height = texh;
                captex.format = pixfmt_fourcc('R', 'G', 'B', 'A');
 
-               float scale = (float)win_h / (float)texh;
+               float scale = (float) win_h / (float) texh;
 
-               err = draw_2d_texture(&captex, (win_w - scale * texw) * 0.5f,
-                                       0, scale * texw, scale * texh, 0);
+               err = draw_2d_texture(&captex, (win_w - scale * texw) * 0.5f, 0, scale * texw, scale * texh, 0);
                if (MEDIA_VISION_ERROR_NONE != err) {
                        LOGE("draw_2d_texture_ex: %i", err);
                        return MEDIA_VISION_ERROR_INTERNAL;
index 74572dc..97ff72c 100644 (file)
@@ -36,7 +36,7 @@ static int create_window_surface()
                LOGE("init_2d_renderer: %i", err);
                return MEDIA_VISION_ERROR_INTERNAL;
        }
-    init_cube((float)win_w / (float)win_h);
+       init_cube((float) win_w / (float) win_h);
        glClearColor(0.f, 0.f, 0.f, 1.0f);
        glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
        glViewport(0, 0, win_w, win_h);
@@ -47,134 +47,131 @@ static int create_window_surface()
 //static int xpos = 100;
 static float s_mdl_qtn0[4];
 static float s_mdl_mtx[16];
-static float s_mdl_qtn [4];
+static float s_mdl_qtn[4];
 
 int mv_util_visualizer_3d(mv_source_h source, float *depth, int xpos, int ypos)
 {
        int texid;
        int texw, texh;
        int err = MEDIA_VISION_ERROR_NONE;
-    static int is_first_render3d = 1;
-    static mesh_obj_t depth_mesh;
-       static texture_2d_t captex = {0};
+       static int is_first_render3d = 1;
+       static mesh_obj_t depth_mesh;
+       static texture_2d_t captex = { 0 };
 
        if (!initialized) {
                initialized = true;
                if (create_window_surface() != MEDIA_VISION_ERROR_NONE) {
                        return MEDIA_VISION_ERROR_INTERNAL;
                }
-    }
-    err = load_texture(source, &texid, &texw, &texh);
-    if (MEDIA_VISION_ERROR_NONE != err) {
-        LOGE("load_texture: %i", err);
-        return MEDIA_VISION_ERROR_INTERNAL;
-    }
-    captex.texid  = texid;
-    captex.width  = texw;
-    captex.height = texh;
-    captex.format = pixfmt_fourcc('R', 'G', 'B', 'A');
-
-    float mtxGlobal[16];
-
-    quaternion_identity(s_mdl_qtn);
-    quaternion_to_matrix(s_mdl_mtx, s_mdl_qtn);
-
-    matrix_identity(mtxGlobal);
-    matrix_translate(mtxGlobal, 0, 0, -300.0f);
-
-    int height = texh;
-    int width = texw;
-
-    //xpos += 10;
-    //xpos = xpos % 1900;
-
-    float dx = xpos;
-    float dy = ypos;
-
-    float axis[3];
-    axis[0] = 2 * M_PI * dy / 1080;
-    axis[1] = 2 * M_PI * dx / 1920;
-    axis[2] = 0;
-
-    float rot = vec3_normalize(axis);
-
-    quaternion_copy(s_mdl_qtn0, s_mdl_qtn);
-
-    float dqtn[4];
-    quaternion_rotate(dqtn, rot, axis[0], axis[1], axis[2]);
-    quaternion_mult(s_mdl_qtn, dqtn, s_mdl_qtn);
-
-    quaternion_to_matrix(s_mdl_mtx, s_mdl_qtn);
-    matrix_mult(mtxGlobal, mtxGlobal, s_mdl_mtx);
-
-    quaternion_identity(s_mdl_qtn);
-    quaternion_to_matrix(s_mdl_mtx, s_mdl_qtn);
-
-    /* create mesh object */
-    if (is_first_render3d)
-    {
-        create_mesh(&depth_mesh, MAX_DEPTH_WIDTH - 1, MAX_DEPTH_HEIGHT - 1);
-        is_first_render3d = 0;
-    }
-    float *vtx = depth_mesh.vtx_array;
-    float *uv  = depth_mesh.uv_array;
-    int x, y;
-
-    /* create 3D vertex coordinate */
-    for (y = 0; y < height; y ++) {
-        for (x = 0; x < width; x ++) {
-            int idx = (y * width + x);
-            float d = depth[idx];
-
-            vtx[3 * idx + 0] = ((x / (float)height) * 2.0f - 1.0f) * 100.0f;
-            vtx[3 * idx + 1] = ((y / (float)height) * 2.0f - 1.0f) * 100.0f;
-            if (d > 0.0)
-                vtx[3 * idx + 2] =  (d * 2.0f - 1.0f) * 100.0f - 50.0f;
-            else
-                vtx[3 * idx + 2] =  10000000.0;
-
-            uv [2 * idx + 0] = x / (float)width;
-            uv [2 * idx + 1] = y / (float)height;
-        }
-    }
-    float colb[] = {1.0, 1.0, 1.0, 1.0};
-    draw_point_arrays(mtxGlobal, vtx, uv, height * width, captex.texid, colb);
-
-    {
-        /* (xyz)-AXIS */
-        for (int i = -1; i <= 1; i ++)
-        {
-            for (int j = -1; j <= 1; j ++)
-            {
-                float col_base[] = {0.1, 0.5, 0.5, 0.5};
-                float dx = 300.0;
-                float dy = 300.0;
-                float dz = 300.0;
-
-                {
-                    float v0[3] = {-dx, i * dy, j * dz};
-                    float v1[3] = { dx, i * dy, j * dz};
-                    float col_red[] = {1.0, 0.0, 0.0, 1.0};
-                    float *col = (i == 0 && j == 0) ? col_red : col_base;
-                    draw_line(mtxGlobal, v0, v1, col);
-                }
-                {
-                    float v0[3] = {i * dx, -dy, j * dz};
-                    float v1[3] = {i * dx,  dy, j * dz};
-                    float col_green[] = {0.0, 1.0, 0.0, 1.0};
-                    float *col = (i == 0 && j == 0) ? col_green : col_base;
-                    draw_line(mtxGlobal, v0, v1, col);
-                }
-                {
-                    float v0[3] = {i * dx, j * dy, -dz};
-                    float v1[3] = {i * dx, j * dy,  dz};
-                    float col_blue[] = {0.0, 0.0, 1.0, 1.0};
-                    float *col = (i == 0 && j == 0) ? col_blue : col_base;
-                    draw_line(mtxGlobal, v0, v1, col);
-                }
-            }
-        }
-    }
+       }
+       err = load_texture(source, &texid, &texw, &texh);
+       if (MEDIA_VISION_ERROR_NONE != err) {
+               LOGE("load_texture: %i", err);
+               return MEDIA_VISION_ERROR_INTERNAL;
+       }
+       captex.texid = texid;
+       captex.width = texw;
+       captex.height = texh;
+       captex.format = pixfmt_fourcc('R', 'G', 'B', 'A');
+
+       float mtxGlobal[16];
+
+       quaternion_identity(s_mdl_qtn);
+       quaternion_to_matrix(s_mdl_mtx, s_mdl_qtn);
+
+       matrix_identity(mtxGlobal);
+       matrix_translate(mtxGlobal, 0, 0, -300.0f);
+
+       int height = texh;
+       int width = texw;
+
+       //xpos += 10;
+       //xpos = xpos % 1900;
+
+       float dx = xpos;
+       float dy = ypos;
+
+       float axis[3];
+       axis[0] = 2 * M_PI * dy / 1080;
+       axis[1] = 2 * M_PI * dx / 1920;
+       axis[2] = 0;
+
+       float rot = vec3_normalize(axis);
+
+       quaternion_copy(s_mdl_qtn0, s_mdl_qtn);
+
+       float dqtn[4];
+       quaternion_rotate(dqtn, rot, axis[0], axis[1], axis[2]);
+       quaternion_mult(s_mdl_qtn, dqtn, s_mdl_qtn);
+
+       quaternion_to_matrix(s_mdl_mtx, s_mdl_qtn);
+       matrix_mult(mtxGlobal, mtxGlobal, s_mdl_mtx);
+
+       quaternion_identity(s_mdl_qtn);
+       quaternion_to_matrix(s_mdl_mtx, s_mdl_qtn);
+
+       /* create mesh object */
+       if (is_first_render3d) {
+               create_mesh(&depth_mesh, MAX_DEPTH_WIDTH - 1, MAX_DEPTH_HEIGHT - 1);
+               is_first_render3d = 0;
+       }
+       float *vtx = depth_mesh.vtx_array;
+       float *uv = depth_mesh.uv_array;
+       int x, y;
+
+       /* create 3D vertex coordinate */
+       for (y = 0; y < height; y++) {
+               for (x = 0; x < width; x++) {
+                       int idx = (y * width + x);
+                       float d = depth[idx];
+
+                       vtx[3 * idx + 0] = ((x / (float) height) * 2.0f - 1.0f) * 100.0f;
+                       vtx[3 * idx + 1] = ((y / (float) height) * 2.0f - 1.0f) * 100.0f;
+                       if (d > 0.0)
+                               vtx[3 * idx + 2] = (d * 2.0f - 1.0f) * 100.0f - 50.0f;
+                       else
+                               vtx[3 * idx + 2] = 10000000.0;
+
+                       uv[2 * idx + 0] = x / (float) width;
+                       uv[2 * idx + 1] = y / (float) height;
+               }
+       }
+       float colb[] = { 1.0, 1.0, 1.0, 1.0 };
+       draw_point_arrays(mtxGlobal, vtx, uv, height * width, captex.texid, colb);
+
+       {
+               /* (xyz)-AXIS */
+               for (int i = -1; i <= 1; i++) {
+                       for (int j = -1; j <= 1; j++) {
+                               float col_base[] = { 0.1, 0.5, 0.5, 0.5 };
+                               float dx = 300.0;
+                               float dy = 300.0;
+                               float dz = 300.0;
+
+                               {
+                                       float v0[3] = { -dx, i * dy, j * dz };
+                                       float v1[3] = { dx, i * dy, j * dz };
+                                       float col_red[] = { 1.0, 0.0, 0.0, 1.0 };
+                                       float *col = (i == 0 && j == 0) ? col_red : col_base;
+                                       draw_line(mtxGlobal, v0, v1, col);
+                               }
+                               {
+                                       float v0[3] = { i * dx, -dy, j * dz };
+                                       float v1[3] = { i * dx, dy, j * dz };
+                                       float col_green[] = { 0.0, 1.0, 0.0, 1.0 };
+                                       float *col = (i == 0 && j == 0) ? col_green : col_base;
+                                       draw_line(mtxGlobal, v0, v1, col);
+                               }
+                               {
+                                       float v0[3] = { i * dx, j * dy, -dz };
+                                       float v1[3] = { i * dx, j * dy, dz };
+                                       float col_blue[] = { 0.0, 0.0, 1.0, 1.0 };
+                                       float *col = (i == 0 && j == 0) ? col_blue : col_base;
+                                       draw_line(mtxGlobal, v0, v1, col);
+                               }
+                       }
+               }
+       }
 
        err = egl_swap();
        if (MEDIA_VISION_ERROR_NONE != err) {
index e31b733..57dab55 100644 (file)
 #include "wayland-egl.h"
 #include "mv_util_winsys.h"
 
-#define UNUSED(x)(void)(x)
+#define UNUSED(x) (void) (x)
 
 struct Display s_display;
 struct Window s_window;
 
-static void handle_ping(void *data, struct wl_shell_surface *wlShellSurface,
-                               uint32_t serial)
+static void handle_ping(void *data, struct wl_shell_surface *wlShellSurface, uint32_t serial)
 {
        UNUSED(data);
 
        wl_shell_surface_pong(wlShellSurface, serial);
 }
 
-static void handle_configure(void *data, struct wl_shell_surface *shell_surface,
-                               uint32_t edges, int32_t width, int32_t height)
+static void handle_configure(void *data, struct wl_shell_surface *shell_surface, uint32_t edges, int32_t width,
+                                                        int32_t height)
 {
-       struct Window *window = (struct Window *)data;
+       struct Window *window = (struct Window *) data;
        UNUSED(data);
        UNUSED(shell_surface);
        UNUSED(edges);
@@ -50,46 +49,34 @@ static void handle_configure(void *data, struct wl_shell_surface *shell_surface,
        window->geometry.height = height;
 }
 
-static const struct wl_shell_surface_listener shell_surface_listener =
-{
-       handle_ping,
-       handle_configure,
-       NULL
-};
+static const struct wl_shell_surface_listener shell_surface_listener = { handle_ping, handle_configure, NULL };
 
-static void registry_handle_global(void *data, struct wl_registry *registry,
-                               uint32_t name, const char *interface, uint32_t version)
+static void registry_handle_global(void *data, struct wl_registry *registry, uint32_t name, const char *interface,
+                                                                  uint32_t version)
 {
-       struct Display *d = (struct Display *)data;
+       struct Display *d = (struct Display *) data;
        UNUSED(version);
 
        if (strcmp(interface, "wl_compositor") == 0) {
-               d->wlCompositor = (wl_compositor *)wl_registry_bind(registry, name,
-                                               &wl_compositor_interface, 1);
+               d->wlCompositor = (wl_compositor *) wl_registry_bind(registry, name, &wl_compositor_interface, 1);
        } else if (strcmp(interface, "wl_shell") == 0) {
-               d->wlShell = (wl_shell *)wl_registry_bind(registry, name,
-                                               &wl_shell_interface, 1);
+               d->wlShell = (wl_shell *) wl_registry_bind(registry, name, &wl_shell_interface, 1);
        }
 }
 
-static void registry_handle_global_remove(void *data, struct wl_registry *registry,
-                               uint32_t name)
+static void registry_handle_global_remove(void *data, struct wl_registry *registry, uint32_t name)
 {
        UNUSED(data);
        UNUSED(registry);
        UNUSED(name);
 }
 
-static const struct wl_registry_listener registry_listener = {
-       registry_handle_global,
-       registry_handle_global_remove
-};
+static const struct wl_registry_listener registry_listener = { registry_handle_global, registry_handle_global_remove };
 
-void * winsys_init_native_display(void)
+void *winsys_init_native_display(void)
 {
        memset(&s_display, 0, sizeof(s_display));
 
-
        s_display.wlDisplay = wl_display_connect(NULL);
        if (s_display.wlDisplay == NULL) {
                LOGE("%s(%d)", __FILE__, __LINE__);
@@ -109,8 +96,7 @@ void * winsys_init_native_display(void)
        return s_display.wlDisplay;
 }
 
-
-void * winsys_init_native_window(void *dpy, int win_w, int win_h)
+void *winsys_init_native_window(void *dpy, int win_w, int win_h)
 {
        UNUSED(dpy);
        memset(&s_window, 0, sizeof(s_window));
index 1b421fd..27d30d2 100644 (file)
@@ -1294,8 +1294,7 @@ int perform_mv_face_tracking_model_prepare(mv_face_tracking_model_h model)
        return err;
 }
 
-typedef struct
-{
+typedef struct {
        mv_face_tracking_model_h target;
        mv_video_writer_h writer;
        int frame_number;
index c564059..fc2adc7 100644 (file)
@@ -29,8 +29,7 @@
 
 #define FILE_PATH_SIZE 1024
 
-typedef enum
-{
+typedef enum {
        SOURCE_TYPE_GENERATION,
        SOURCE_TYPE_LOADING,
        SOURCE_TYPE_CLONING,
@@ -38,17 +37,11 @@ typedef enum
        SOURCE_TYPE_INVALID
 } source_type_e;
 
-typedef enum
-{
-       OBJECT_TYPE_IMAGE_OBJECT,
-       OBJECT_TYPE_IMAGE_TRACKING_MODEL,
-       OBJECT_TYPE_INVALID
-} testing_object_type_e;
+typedef enum { OBJECT_TYPE_IMAGE_OBJECT, OBJECT_TYPE_IMAGE_TRACKING_MODEL, OBJECT_TYPE_INVALID } testing_object_type_e;
 
 #define testing_object_maximum_label_length 300
 
-typedef struct testing_object_s
-{
+typedef struct testing_object_s {
        void *entity;
 
        char origin_label[testing_object_maximum_label_length];
@@ -177,8 +170,7 @@ void testing_object_destroy(testing_object_h *target)
        (*target) = NULL;
 }
 
-typedef struct
-{
+typedef struct {
        mv_quadrangle_s **locations;
        unsigned int locations_size;
        unsigned int currently_number;
@@ -883,8 +875,7 @@ int handle_tracking_image_result(const char *out_file_path, mv_source_h frame, i
        return err;
 }
 
-typedef struct
-{
+typedef struct {
        mv_image_tracking_model_h target;
        mv_video_writer_h writer;
        int frame_number;
index 2a312e6..5431c52 100644 (file)
@@ -72,8 +72,7 @@ private:
        std::chrono::steady_clock::time_point start;
 };
 
-typedef struct _appdata
-{
+typedef struct _appdata {
        mv_3d_h mv3d;
        std::chrono::milliseconds diffMs;
        std::string dataPath;
@@ -89,12 +88,7 @@ typedef struct _appdata
        unsigned char *remoteDataBuffer;
 } appdata;
 
-enum
-{
-       FMT_PFM = 1,
-       FMT_PNG,
-       FMT_REMOTE
-};
+enum { FMT_PFM = 1, FMT_PNG, FMT_REMOTE };
 
 static int littleendian()
 {
@@ -103,8 +97,8 @@ static int littleendian()
        return uval[0] == 1;
 }
 
-static void WriteFilePFM(unsigned short *data, int width, int height, const char *filename, float minDisp, float maxDisp,
-                                                float depth2Disp, DistanceMode distanceMode, float scalefactor = 1 / 255.0)
+static void WriteFilePFM(unsigned short *data, int width, int height, const char *filename, float minDisp,
+                                                float maxDisp, float depth2Disp, DistanceMode distanceMode, float scalefactor = 1 / 255.0)
 {
        FILE *stream = fopen(filename, "wb");
        if (stream == 0) {
@@ -119,14 +113,14 @@ static void WriteFilePFM(unsigned short *data, int width, int height, const char
 
        std::vector<float> dump(width);
        for (int y = height - 1; y >= 0; y--) {
-               unsigned shortptr = data + y * width;
+               unsigned short *ptr = data + y * width;
                for (int x = 0; x < width; x++) {
                        if (distanceMode == DISTANCE_DISPARITY)
                                dump[x] = depth2Disp / static_cast<float>(ptr[x]);
                        else
                                dump[x] = static_cast<float>(ptr[x]);
                }
-               if ((int)fwrite(dump.data(), sizeof(float), width, stream) != width) {
+               if ((int) fwrite(dump.data(), sizeof(float), width, stream) != width) {
                        fprintf(stderr, "WriteFilePFM: problem writing data\n");
                        exit(1);
                }
@@ -163,37 +157,36 @@ static void WriteFilePNG(unsigned short *data, int width, int height, const char
        cv::Mat dump(cv::Size(width, height), CV_16U);
 
        for (int y = 0; y < height; y++) {
-               unsigned shortptr = data + y * width;
+               unsigned short *ptr = data + y * width;
                for (int x = 0; x < width; x++) {
-
                        if (distanceMode == DISTANCE_DISPARITY)
-                               dump.at<unsigned short>(y,x) = static_cast<unsigned short>(depth2Disp / static_cast<float>(ptr[x]));
+                               dump.at<unsigned short>(y, x) = static_cast<unsigned short>(depth2Disp / static_cast<float>(ptr[x]));
                        else
-                               dump.at<unsigned short>(y,x) = ptr[x];
+                               dump.at<unsigned short>(y, x) = ptr[x];
                }
-    }
+       }
 
        cv::imwrite(filename, dump);
 
        fclose(stream);
 }
 
-static void SendDataToRemoteUrl(unsigned short *data, int width, int height, float minDisp, float maxDips, float depth2Disp,
-                                               std::string url, mv_source_h source, unsigned char *buffer)
+static void SendDataToRemoteUrl(unsigned short *data, int width, int height, float minDisp, float maxDips,
+                                                               float depth2Disp, std::string url, mv_source_h source, unsigned char *buffer)
 {
 #if BUILD_VISUALIZER
        int r, g, b;
        for (int y = 0; y < height; y++) {
-               unsigned shortsrc = data + y * width;
-               unsigned char*  dst = buffer + y * (width * 4);
+               unsigned short *src = data + y * width;
+               unsigned char *dst = buffer + y * (width * 4);
                for (int x = 0; x < width; x++) {
                        jet((depth2Disp / static_cast<float>(src[x]) - minDisp) / (maxDips - minDisp), r, g, b);
-                       dst[x*4] = r;
-                       dst[x*4 + 1] = g;
-                       dst[x*4 + 2] = b;
-                       dst[x*4 + 3] = 255;
+                       dst[x * 4] = r;
+                       dst[x * 4 + 1] = g;
+                       dst[x * 4 + 2] = b;
+                       dst[x * 4 + 3] = 255;
                }
-    }
+       }
 
        mv_source_fill_by_buffer(source, buffer, width * height * 4, width, height, MEDIA_VISION_COLORSPACE_RGBA);
 
@@ -237,14 +230,14 @@ static void _depth_middlebury_cb(mv_source_h source, unsigned short *depth, unsi
        StopWatch stopWatch;
 
        if (udata->fmt == FMT_PFM) {
-               WriteFilePFM(depth, width, height, udata->datasetName.c_str(),
-                       udata->minDisp, udata->maxDisp, udata->depth2Disp, udata->distanceMode);
+               WriteFilePFM(depth, width, height, udata->datasetName.c_str(), udata->minDisp, udata->maxDisp,
+                                        udata->depth2Disp, udata->distanceMode);
        } else if (udata->fmt == FMT_PNG) {
-               WriteFilePNG(depth, width, height, udata->datasetName.c_str(),
-                       udata->minDisp, udata->maxDisp, udata->depth2Disp, udata->distanceMode);
+               WriteFilePNG(depth, width, height, udata->datasetName.c_str(), udata->minDisp, udata->maxDisp,
+                                        udata->depth2Disp, udata->distanceMode);
        } else {
-               SendDataToRemoteUrl(depth, width, height, udata->minDisp, udata->maxDisp, udata->depth2Disp,
-                                               udata->remoteUrl, udata->remoteSource, udata->remoteDataBuffer);
+               SendDataToRemoteUrl(depth, width, height, udata->minDisp, udata->maxDisp, udata->depth2Disp, udata->remoteUrl,
+                                                       udata->remoteSource, udata->remoteDataBuffer);
        }
 
        udata->diffMs = stopWatch.elapsedTime();
@@ -308,7 +301,7 @@ int perform_middlebury_test()
                sel_fmt = show_menu_linear("Select Action", formats, ARRAY_SIZE(formats));
        }
 
-       const char* distances[] = {"disparty", "depth"};
+       const char *distances[] = { "disparty", "depth" };
        int sel_distance = -1;
        if (sel_fmt == FMT_REMOTE) {
                while (input_string("remote url where you send:", 1024, &remote_url) == -1) {
@@ -463,8 +456,7 @@ int perform_middlebury_test()
 
                err = mv_source_fill_by_buffer(left_source, left_frame.ptr<unsigned char>(),
                                                                           left_frame.elemSize() * left_frame.size().width * left_frame.size().height,
-                                                                          left_frame.size().width, left_frame.size().height,
-                                                                          MEDIA_VISION_COLORSPACE_Y800);
+                                                                          left_frame.size().width, left_frame.size().height, MEDIA_VISION_COLORSPACE_Y800);
                if (err != MEDIA_VISION_ERROR_NONE) {
                        printf("Failed to fill left_source\n");
                        goto _err;
@@ -512,7 +504,6 @@ int perform_middlebury_test()
                if (sel_fmt == FMT_REMOTE) {
                        err = mv_create_source(&dump.remoteSource);
                        if (err != MEDIA_VISION_ERROR_NONE) {
-
                                printf("Failed to create remote source handle\n");
                                if (dump.remoteSource) {
                                        mv_destroy_source(dump.remoteSource);
@@ -520,7 +511,7 @@ int perform_middlebury_test()
                                goto _err;
                        }
 
-                       dump.remoteDataBuffer = new(std::nothrow)unsigned char[width * height * 4];
+                       dump.remoteDataBuffer = new (std::nothrow) unsigned char[width * height * 4];
                        if (!dump.remoteDataBuffer) {
                                printf("Failed to allocate remote data buffer\nn");
 
@@ -529,7 +520,7 @@ int perform_middlebury_test()
                                }
 
                                if (dump.remoteDataBuffer) {
-                                       delete [] dump.remoteDataBuffer;
+                                       delete[] dump.remoteDataBuffer;
                                }
                                goto _err;
                        }
index 0c47769..9d376f7 100644 (file)
@@ -56,9 +56,9 @@ using namespace open3d;
 #define __max(a, b) (((a) > (b)) ? (a) : (b))
 #define __min(a, b) (((a) < (b)) ? (a) : (b))
 
-#define TRUNCATE_MIN(a,b,c) ((a < b) ? c : a)
-#define TRUNCATE_MAX(a,b,c) ((a > b) ? c : a)
-#define TRANSLATE_VAL(val) (TRUNCATE_MAX(TRUNCATE_MIN(val, 0, -0.05), 1, 1.05)/1.15 + 0.1)
+#define TRUNCATE_MIN(a, b, c) ((a < b) ? c : a)
+#define TRUNCATE_MAX(a, b, c) ((a > b) ? c : a)
+#define TRANSLATE_VAL(val) (TRUNCATE_MAX(TRUNCATE_MIN(val, 0, -0.05), 1, 1.05) / 1.15 + 0.1)
 #define COLORMAP_JET_R(val) __max(0, __min(255, (int) (round(255 * (1.5 - 4 * fabs(val - .75))))))
 #define COLORMAP_JET_G(val) __max(0, __min(255, (int) (round(255 * (1.5 - 4 * fabs(val - .5))))))
 #define COLORMAP_JET_B(val) __max(0, __min(255, (int) (round(255 * (1.5 - 4 * fabs(val - .25))))))
@@ -69,21 +69,20 @@ public:
        StopWatch() = default;
        ~StopWatch() = default;
 
-       void resetTime() {
+       void resetTime()
+       {
                start = std::chrono::steady_clock::now();
        }
        std::chrono::milliseconds elapsedTime()
        {
-               return std::chrono::duration_cast<std::chrono::milliseconds>(
-                               std::chrono::steady_clock::now() - start);
+               return std::chrono::duration_cast<std::chrono::milliseconds>(std::chrono::steady_clock::now() - start);
        }
 
 private:
        std::chrono::steady_clock::time_point start;
 };
 
-typedef struct _appdata
-{
+typedef struct _appdata {
        StopWatch stopWatch;
        std::string dataPath;
        std::string intrinsicName;
@@ -133,7 +132,8 @@ static void int_handler(int sig)
        char c;
 
        signal(sig, SIG_IGN);
-       while ((getchar()) != '\n');
+       while ((getchar()) != '\n')
+               ;
 
        c = getchar();
        if (c == 'y' || c == 'Y') {
@@ -148,31 +148,33 @@ static void int_handler(int sig)
        getchar(); // Get new line character
 }
 
-static void _depth_stereo_remote_cb(mv_source_h source, unsigned short *depth, unsigned int width,
-                                         unsigned int height, void *user_data)
+static void _depth_stereo_remote_cb(mv_source_h source, unsigned short *depth, unsigned int width, unsigned int height,
+                                                                       void *user_data)
 {
        auto mv3d = static_cast<appdata *>(user_data);
 
        for (int y = 0; y < height; y++) {
-               unsigned shortsrc = depth + y * width;
-               unsigned char*  dst = mv3d->remoteData.buffer + y * (width * 4);
+               unsigned short *src = depth + y * width;
+               unsigned char *dst = mv3d->remoteData.buffer + y * (width * 4);
                for (int x = 0; x < width; x++) {
-                       float value = TRANSLATE_VAL(((440.92750f * 21.87095f / static_cast<float>(src[x])) - 8.0f) / (88.f/*96-8*/));
-                       dst[x*4] = COLORMAP_JET_R(value);
-                       dst[x*4 + 1] = COLORMAP_JET_G(value);
-                       dst[x*4 + 2] = COLORMAP_JET_B(value);
-                       dst[x*4 + 3] = 255;
+                       float value =
+                                       TRANSLATE_VAL(((440.92750f * 21.87095f / static_cast<float>(src[x])) - 8.0f) / (88.f /*96-8*/));
+                       dst[x * 4] = COLORMAP_JET_R(value);
+                       dst[x * 4 + 1] = COLORMAP_JET_G(value);
+                       dst[x * 4 + 2] = COLORMAP_JET_B(value);
+                       dst[x * 4 + 3] = 255;
                }
        }
-       mv_source_fill_by_buffer(mv3d->remoteData.source, mv3d->remoteData.buffer, width * height * 4, width, height, MEDIA_VISION_COLORSPACE_RGBA);
+       mv_source_fill_by_buffer(mv3d->remoteData.source, mv3d->remoteData.buffer, width * height * 4, width, height,
+                                                        MEDIA_VISION_COLORSPACE_RGBA);
 #if BUILD_VISUALIZER
        mv_util_visualizer_2d(mv3d->remoteData.source, mv3d->remoteData.url.c_str());
 #endif
        mv_source_clear(mv3d->remoteData.source);
 }
 
-static void _depth_stereo_cb(mv_source_h source, unsigned short *depth, unsigned int width,
-                                         unsigned int height, void *user_data)
+static void _depth_stereo_cb(mv_source_h source, unsigned short *depth, unsigned int width, unsigned int height,
+                                                        void *user_data)
 {
        auto mv3d = static_cast<appdata *>(user_data);
 
@@ -181,7 +183,8 @@ static void _depth_stereo_cb(mv_source_h source, unsigned short *depth, unsigned
        for (int y = 0; y < height; y++) {
                unsigned short *ptr = depth + y * width;
                for (int x = 0; x < width; x++) {
-                       dump.at<unsigned short>(y,x) = static_cast<unsigned short>( 440.92750f * 21.87095f / static_cast<float>(ptr[x]));
+                       dump.at<unsigned short>(y, x) =
+                                       static_cast<unsigned short>(440.92750f * 21.87095f / static_cast<float>(ptr[x]));
                }
        }
 
@@ -199,12 +202,11 @@ static int _vision_source_cb(vision_source_buffer_s *buffer, void *user_data)
        printf("_vision_source_cb: %lld ms\n", static_cast<long long int>(app->stopWatch.elapsedTime().count()));
 
        for (unsigned int h = 0; h < buffer->resolution.height; h++) {
-               memcpy(app->buffer + buffer->resolution.width * h,
-                               buffer->planes[0].data + (buffer->planes[0].align_width * h),
-                               buffer->resolution.width);
+               memcpy(app->buffer + buffer->resolution.width * h, buffer->planes[0].data + (buffer->planes[0].align_width * h),
+                          buffer->resolution.width);
        }
-       mv_source_fill_by_buffer(app->mv_source, app->buffer, app->imgWidth * app->imgHeight,
-                                                       app->imgWidth, app->imgHeight, MEDIA_VISION_COLORSPACE_Y800);
+       mv_source_fill_by_buffer(app->mv_source, app->buffer, app->imgWidth * app->imgHeight, app->imgWidth, app->imgHeight,
+                                                        MEDIA_VISION_COLORSPACE_Y800);
 
        if (isAsync)
                mv_3d_run_async(app->mv3d_handle, app->mv_source, nullptr, nullptr);
@@ -230,7 +232,7 @@ int main(int argc, char *argv[])
        std::string remoteUrl;
        // mv_depthstream_test_suite 1 8 96 0 0 640 400 /usr/share/dfs-qcmv/stereoCalibDA.yaml /tmp/test.png 1 192.168.0.4:50051
        if (argc > 1) {
-               isAsync = (atoi(argv[1])!=0);
+               isAsync = (atoi(argv[1]) != 0);
                minDisp = atoi(argv[2]);
                maxDisp = atoi(argv[3]);
                display_xpos = atoi(argv[4]);
@@ -239,8 +241,9 @@ int main(int argc, char *argv[])
                camHeight = atoi(argv[7]);
                stereoConfigFile = argv[8];
                dispResultFile = argv[9];
-               isRemote = (atoi(argv[10])!=0);
-               if (isRemote) remoteUrl = argv[11];
+               isRemote = (atoi(argv[10]) != 0);
+               if (isRemote)
+                       remoteUrl = argv[11];
        }
 #ifdef MV_3D_POINTCLOUD_IS_AVAILABLE
        utility::SetVerbosityLevel(utility::VerbosityLevel::Debug);
@@ -249,13 +252,11 @@ int main(int argc, char *argv[])
        int ret = MEDIA_VISION_ERROR_NONE;
        printf("enter main\n");
 
-       vision_source_format_s format {
-               .pixel_format = VISION_SOURCE_PIXEL_FORMAT_NV12,
-               .resolution = { camWidth << 1, camHeight },
-               .fps = 10,
-               .quality = 0,
-               .bitrate = 0
-       };
+       vision_source_format_s format { .pixel_format = VISION_SOURCE_PIXEL_FORMAT_NV12,
+                                                                       .resolution = { camWidth << 1, camHeight },
+                                                                       .fps = 10,
+                                                                       .quality = 0,
+                                                                       .bitrate = 0 };
 
        // mediavision
        // engine_config
@@ -264,33 +265,28 @@ int main(int argc, char *argv[])
                goto _err;
        }
 
-       ret = mv_engine_config_set_int_attribute(engine_config, MV_3D_DEPTH_WIDTH,
-                                                                                        camWidth);
+       ret = mv_engine_config_set_int_attribute(engine_config, MV_3D_DEPTH_WIDTH, camWidth);
        if (ret != MEDIA_VISION_ERROR_NONE) {
                goto _err;
        }
 
-       ret = mv_engine_config_set_int_attribute(engine_config, MV_3D_DEPTH_HEIGHT,
-                                                                                        camHeight);
+       ret = mv_engine_config_set_int_attribute(engine_config, MV_3D_DEPTH_HEIGHT, camHeight);
        if (ret != MEDIA_VISION_ERROR_NONE) {
                goto _err;
        }
 
-       ret = mv_engine_config_set_int_attribute(engine_config,
-                                                                                        MV_3D_DEPTH_MIN_DISPARITY, minDisp);
+       ret = mv_engine_config_set_int_attribute(engine_config, MV_3D_DEPTH_MIN_DISPARITY, minDisp);
        if (ret != MEDIA_VISION_ERROR_NONE) {
                goto _err;
        }
 
-       ret = mv_engine_config_set_int_attribute(engine_config,
-                                                                                        MV_3D_DEPTH_MAX_DISPARITY, maxDisp);
+       ret = mv_engine_config_set_int_attribute(engine_config, MV_3D_DEPTH_MAX_DISPARITY, maxDisp);
        if (ret != MEDIA_VISION_ERROR_NONE) {
                goto _err;
        }
 
-       ret = mv_engine_config_set_string_attribute(
-                       engine_config, MV_3D_DEPTH_STEREO_CONFIG_FILE_PATH,
-                       stereoConfigFile.c_str());
+       ret = mv_engine_config_set_string_attribute(engine_config, MV_3D_DEPTH_STEREO_CONFIG_FILE_PATH,
+                                                                                               stereoConfigFile.c_str());
        if (ret != MEDIA_VISION_ERROR_NONE) {
                goto _err;
        }
@@ -336,8 +332,8 @@ int main(int argc, char *argv[])
        app.imgHeight = camHeight;
        app.stopWatch.resetTime();
        try {
-               app.buffer = new unsigned char [app.imgWidth * app.imgHeight];
-               app.remoteData.buffer = new unsigned char [app.imgWidth * app.imgHeight * 4];
+               app.buffer = new unsigned char[app.imgWidth * app.imgHeight];
+               app.remoteData.buffer = new unsigned char[app.imgWidth * app.imgHeight * 4];
        } catch (const std::exception &e) {
                goto _err;
        }
@@ -353,7 +349,7 @@ int main(int argc, char *argv[])
                goto _err;
        }
 
-       loop = g_main_loop_new(NULL,false);
+       loop = g_main_loop_new(NULL, false);
        ret = vision_source_set_stream_format(vision_source_handle, &format);
        if (ret != VISION_SOURCE_ERROR_NONE) {
                goto _err;
@@ -376,7 +372,7 @@ _err:
        }
 
        if (app.buffer)
-               delete [] app.buffer;
+               delete[] app.buffer;
 
        if (app.mv_source)
                mv_destroy_source(app.mv_source);
@@ -391,7 +387,7 @@ _err:
                mv_destroy_source(app.remoteData.source);
 
        if (app.remoteData.buffer)
-               delete [] app.remoteData.buffer;
+               delete[] app.remoteData.buffer;
 
        return 0;
 }
index 8b3d31a..210479e 100644 (file)
@@ -41,243 +41,225 @@ static GCond gThreadCond;
 static GMutex gThreadMutex;
 static void WaitUntil()
 {
-    g_mutex_lock(&gThreadMutex);
-    g_print("\t[__wait] waiting... until finishing\n");
-    g_cond_wait(&gThreadCond, &gThreadMutex);
-    g_print("\t[__wait] get signal from callback\n");
-    g_mutex_unlock(&gThreadMutex);
+       g_mutex_lock(&gThreadMutex);
+       g_print("\t[__wait] waiting... until finishing\n");
+       g_cond_wait(&gThreadCond, &gThreadMutex);
+       g_print("\t[__wait] get signal from callback\n");
+       g_mutex_unlock(&gThreadMutex);
 }
 
 static void Signal()
 {
-    g_mutex_lock(&gThreadMutex);
-    g_cond_signal(&gThreadCond);
-    g_print("\t[__signal] send signal to test proc\n");
-    g_mutex_unlock(&gThreadMutex);
+       g_mutex_lock(&gThreadMutex);
+       g_cond_signal(&gThreadCond);
+       g_print("\t[__signal] send signal to test proc\n");
+       g_mutex_unlock(&gThreadMutex);
 }
 
 class Mv3DTestsFixture : public ::testing::TestWithParam<ParamTypes>
 {
 protected:
-    Mv3DTestsFixture() = default;
-    ~Mv3DTestsFixture() = default;
-
-    void SetUp() final
-    {
-        ASSERT_EQ(mv_3d_create(&mDepthHandle), MEDIA_VISION_ERROR_NONE);
-        ASSERT_EQ(mv_create_engine_config(&mEngineCfgHandle),MEDIA_VISION_ERROR_NONE);
-
-        std::tie(mTestMode,
-                 mImageName,
-                mWidth,
-                mHeight,
-                mMinDisparity,
-                mMaxDisparity,
-                mCameraCalibrationPath) = GetParam();
-
-        ASSERT_EQ(mv_engine_config_set_int_attribute(mEngineCfgHandle,
-                                            MV_3D_DEPTH_WIDTH,
-                                            mWidth), MEDIA_VISION_ERROR_NONE);
-
-
-        ASSERT_EQ(mv_engine_config_set_int_attribute(mEngineCfgHandle,
-                                                MV_3D_DEPTH_HEIGHT,
-                                                mHeight), MEDIA_VISION_ERROR_NONE);
-
-        ASSERT_EQ(mv_engine_config_set_int_attribute(mEngineCfgHandle,
-                                                MV_3D_DEPTH_MIN_DISPARITY,
-                                                mMinDisparity), MEDIA_VISION_ERROR_NONE);
-
-        ASSERT_EQ(mv_engine_config_set_int_attribute(mEngineCfgHandle,
-                                                MV_3D_DEPTH_MAX_DISPARITY,
-                                                mMaxDisparity), MEDIA_VISION_ERROR_NONE);
-
-        if (mTestMode == 0)
-            mCameraCalibrationPath = std::string(IMAGE_RES_PATH) + std::string("/")
-                                        + mImageName + std::string("/")
-                                        + std::string(DEPTH_INTRINSIC_FILENAME);
-        else
-            ASSERT_FALSE(mCameraCalibrationPath.empty()) << "there is no calibration file";
-
-        ASSERT_EQ(mv_engine_config_set_string_attribute(mEngineCfgHandle,
-                                                MV_3D_DEPTH_STEREO_CONFIG_FILE_PATH,
-                                                mCameraCalibrationPath.c_str()), MEDIA_VISION_ERROR_NONE);
-
-        ASSERT_EQ(mv_engine_config_set_double_attribute(mEngineCfgHandle,
-                                                MV_3D_POINTCLOUD_SAMPLING_RATIO,
-                                                PCD_SAMPLING_RATIO), MEDIA_VISION_ERROR_NONE);
-
-        ASSERT_EQ(mv_engine_config_set_int_attribute(mEngineCfgHandle,
-                                                MV_3D_POINTCLOUD_OUTLIER_REMOVAL_POINTS,
-                                                PCD_OUTLIER_REMOVAL_POINT), MEDIA_VISION_ERROR_NONE);
-
-        ASSERT_EQ(mv_engine_config_set_double_attribute(mEngineCfgHandle,
-                                                MV_3D_POINTCLOUD_OUTLIER_REMOVAL_RADIUS,
-                                                PCD_OUTLIER_REMOVAL_RADIUS), MEDIA_VISION_ERROR_NONE);
-
-        ASSERT_EQ(mv_engine_config_set_string_attribute(mEngineCfgHandle,
-                                                MV_3D_POINTCLOUD_OUTPUT_FILE_PATH,
-                                                PCD_OUTPUT_PATH), MEDIA_VISION_ERROR_NONE);
-    }
-
-
-    void TearDown() final
-    {
-        ASSERT_EQ(mv_3d_destroy(mDepthHandle), MEDIA_VISION_ERROR_NONE);
-        ASSERT_EQ(mv_destroy_engine_config(mEngineCfgHandle), MEDIA_VISION_ERROR_NONE);
-
-        if (mLeftSourceHandle) {
-            ASSERT_EQ(mv_destroy_source(mLeftSourceHandle), MEDIA_VISION_ERROR_NONE);
-        }
-
-        if (mRightSourceHandle) {
-            ASSERT_EQ(mv_destroy_source(mRightSourceHandle), MEDIA_VISION_ERROR_NONE);
-        }
-    }
-
-    void LoadImage()
-    {
-        auto imagePath = std::string(IMAGE_RES_PATH) + std::string("/") + mImageName;
-        auto leftImageFilePath  = imagePath + std::string("/") + std::string(IMAGE_FILENAME_LEFT);
-        auto rightImageFilePath = imagePath + std::string("/") + std::string(IMAGE_FILENAME_RIGHT);
-
-        ASSERT_EQ(access(leftImageFilePath.c_str(), F_OK | R_OK), 0) << leftImageFilePath << " doesn't exist";
-        ASSERT_EQ(mv_create_source(&mLeftSourceHandle), MEDIA_VISION_ERROR_NONE);
-        ASSERT_EQ(MediaVision::Common::ImageHelper::loadImageToSource(
-                        leftImageFilePath.c_str(), mLeftSourceHandle), MEDIA_VISION_ERROR_NONE);
-
-        ASSERT_EQ(access(rightImageFilePath.c_str(), F_OK | R_OK), 0) << rightImageFilePath << " doesn't exist";
-        ASSERT_EQ(mv_create_source(&mRightSourceHandle), MEDIA_VISION_ERROR_NONE);
-        ASSERT_EQ(MediaVision::Common::ImageHelper::loadImageToSource(
-                        rightImageFilePath.c_str(), mRightSourceHandle), MEDIA_VISION_ERROR_NONE);
-    }
-
-    mv_source_h mLeftSourceHandle {nullptr};
-    mv_source_h mRightSourceHandle {nullptr};
-    mv_engine_config_h mEngineCfgHandle {nullptr};
-
-    int mTestMode {TEST_MODE_IMAGE};
-    std::string mImageName {""};
-    int mWidth {0};
-    int mHeight {0};
-    int mMinDisparity {0};
-    int mMaxDisparity {0};
-    std::string mCameraCalibrationPath {""};
+       Mv3DTestsFixture() = default;
+       ~Mv3DTestsFixture() = default;
+
+       void SetUp() final
+       {
+               ASSERT_EQ(mv_3d_create(&mDepthHandle), MEDIA_VISION_ERROR_NONE);
+               ASSERT_EQ(mv_create_engine_config(&mEngineCfgHandle), MEDIA_VISION_ERROR_NONE);
+
+               std::tie(mTestMode, mImageName, mWidth, mHeight, mMinDisparity, mMaxDisparity, mCameraCalibrationPath) =
+                               GetParam();
+
+               ASSERT_EQ(mv_engine_config_set_int_attribute(mEngineCfgHandle, MV_3D_DEPTH_WIDTH, mWidth),
+                                 MEDIA_VISION_ERROR_NONE);
+
+               ASSERT_EQ(mv_engine_config_set_int_attribute(mEngineCfgHandle, MV_3D_DEPTH_HEIGHT, mHeight),
+                                 MEDIA_VISION_ERROR_NONE);
+
+               ASSERT_EQ(mv_engine_config_set_int_attribute(mEngineCfgHandle, MV_3D_DEPTH_MIN_DISPARITY, mMinDisparity),
+                                 MEDIA_VISION_ERROR_NONE);
+
+               ASSERT_EQ(mv_engine_config_set_int_attribute(mEngineCfgHandle, MV_3D_DEPTH_MAX_DISPARITY, mMaxDisparity),
+                                 MEDIA_VISION_ERROR_NONE);
+
+               if (mTestMode == 0)
+                       mCameraCalibrationPath = std::string(IMAGE_RES_PATH) + std::string("/") + mImageName + std::string("/") +
+                                                                        std::string(DEPTH_INTRINSIC_FILENAME);
+               else
+                       ASSERT_FALSE(mCameraCalibrationPath.empty()) << "there is no calibration file";
+
+               ASSERT_EQ(mv_engine_config_set_string_attribute(mEngineCfgHandle, MV_3D_DEPTH_STEREO_CONFIG_FILE_PATH,
+                                                                                                               mCameraCalibrationPath.c_str()),
+                                 MEDIA_VISION_ERROR_NONE);
+
+               ASSERT_EQ(mv_engine_config_set_double_attribute(mEngineCfgHandle, MV_3D_POINTCLOUD_SAMPLING_RATIO,
+                                                                                                               PCD_SAMPLING_RATIO),
+                                 MEDIA_VISION_ERROR_NONE);
+
+               ASSERT_EQ(mv_engine_config_set_int_attribute(mEngineCfgHandle, MV_3D_POINTCLOUD_OUTLIER_REMOVAL_POINTS,
+                                                                                                        PCD_OUTLIER_REMOVAL_POINT),
+                                 MEDIA_VISION_ERROR_NONE);
+
+               ASSERT_EQ(mv_engine_config_set_double_attribute(mEngineCfgHandle, MV_3D_POINTCLOUD_OUTLIER_REMOVAL_RADIUS,
+                                                                                                               PCD_OUTLIER_REMOVAL_RADIUS),
+                                 MEDIA_VISION_ERROR_NONE);
+
+               ASSERT_EQ(mv_engine_config_set_string_attribute(mEngineCfgHandle, MV_3D_POINTCLOUD_OUTPUT_FILE_PATH,
+                                                                                                               PCD_OUTPUT_PATH),
+                                 MEDIA_VISION_ERROR_NONE);
+       }
+
+       void TearDown() final
+       {
+               ASSERT_EQ(mv_3d_destroy(mDepthHandle), MEDIA_VISION_ERROR_NONE);
+               ASSERT_EQ(mv_destroy_engine_config(mEngineCfgHandle), MEDIA_VISION_ERROR_NONE);
+
+               if (mLeftSourceHandle) {
+                       ASSERT_EQ(mv_destroy_source(mLeftSourceHandle), MEDIA_VISION_ERROR_NONE);
+               }
+
+               if (mRightSourceHandle) {
+                       ASSERT_EQ(mv_destroy_source(mRightSourceHandle), MEDIA_VISION_ERROR_NONE);
+               }
+       }
+
+       void LoadImage()
+       {
+               auto imagePath = std::string(IMAGE_RES_PATH) + std::string("/") + mImageName;
+               auto leftImageFilePath = imagePath + std::string("/") + std::string(IMAGE_FILENAME_LEFT);
+               auto rightImageFilePath = imagePath + std::string("/") + std::string(IMAGE_FILENAME_RIGHT);
+
+               ASSERT_EQ(access(leftImageFilePath.c_str(), F_OK | R_OK), 0) << leftImageFilePath << " doesn't exist";
+               ASSERT_EQ(mv_create_source(&mLeftSourceHandle), MEDIA_VISION_ERROR_NONE);
+               ASSERT_EQ(MediaVision::Common::ImageHelper::loadImageToSource(leftImageFilePath.c_str(), mLeftSourceHandle),
+                                 MEDIA_VISION_ERROR_NONE);
+
+               ASSERT_EQ(access(rightImageFilePath.c_str(), F_OK | R_OK), 0) << rightImageFilePath << " doesn't exist";
+               ASSERT_EQ(mv_create_source(&mRightSourceHandle), MEDIA_VISION_ERROR_NONE);
+               ASSERT_EQ(MediaVision::Common::ImageHelper::loadImageToSource(rightImageFilePath.c_str(), mRightSourceHandle),
+                                 MEDIA_VISION_ERROR_NONE);
+       }
+
+       mv_source_h mLeftSourceHandle { nullptr };
+       mv_source_h mRightSourceHandle { nullptr };
+       mv_engine_config_h mEngineCfgHandle { nullptr };
+
+       int mTestMode { TEST_MODE_IMAGE };
+       std::string mImageName { "" };
+       int mWidth { 0 };
+       int mHeight { 0 };
+       int mMinDisparity { 0 };
+       int mMaxDisparity { 0 };
+       std::string mCameraCalibrationPath { "" };
 
 public:
-    mv_3d_h mDepthHandle {nullptr};
-    bool mIsDepthCallbackInvoked {false};
-    bool mIsPointCloudCallbackInvoked {false};
-    bool mIsPointCloudWriteSuccess {false};
-    bool mIsRunAsync {false};
+       mv_3d_h mDepthHandle { nullptr };
+       bool mIsDepthCallbackInvoked { false };
+       bool mIsPointCloudCallbackInvoked { false };
+       bool mIsPointCloudWriteSuccess { false };
+       bool mIsRunAsync { false };
 };
 
-static void _depth_cb(mv_source_h source, unsigned short *depth, unsigned int width,
-                unsigned int height, void *user_data)
+static void _depth_cb(mv_source_h source, unsigned short *depth, unsigned int width, unsigned int height,
+                                         void *user_data)
 {
-    auto mv3dTestsFixture = static_cast<Mv3DTestsFixture *>(user_data);
-    mv3dTestsFixture->mIsDepthCallbackInvoked = true;
+       auto mv3dTestsFixture = static_cast<Mv3DTestsFixture *>(user_data);
+       mv3dTestsFixture->mIsDepthCallbackInvoked = true;
 }
 
-static void _pointcloud_cb(mv_source_h source,
-    mv_3d_pointcloud_h pointcloud,
-    void *user_data)
+static void _pointcloud_cb(mv_source_h source, mv_3d_pointcloud_h pointcloud, void *user_data)
 {
-    auto mv3dTestsFixture = static_cast<Mv3DTestsFixture *>(user_data);
-    mv3dTestsFixture->mIsPointCloudCallbackInvoked = true;
-    if (mv3dTestsFixture->mIsRunAsync)
-        Signal();
+       auto mv3dTestsFixture = static_cast<Mv3DTestsFixture *>(user_data);
+       mv3dTestsFixture->mIsPointCloudCallbackInvoked = true;
+       if (mv3dTestsFixture->mIsRunAsync)
+               Signal();
 }
 
-static void _pointcloud_write_file_cb(mv_source_h source,
-    mv_3d_pointcloud_h pointcloud,
-    void *user_data)
+static void _pointcloud_write_file_cb(mv_source_h source, mv_3d_pointcloud_h pointcloud, void *user_data)
 {
-    auto mv3dTestsFixture = static_cast<Mv3DTestsFixture *>(user_data);
-    mv3dTestsFixture->mIsPointCloudCallbackInvoked = true;
+       auto mv3dTestsFixture = static_cast<Mv3DTestsFixture *>(user_data);
+       mv3dTestsFixture->mIsPointCloudCallbackInvoked = true;
 
-    int ret = mv_3d_pointcloud_write_file(mv3dTestsFixture->mDepthHandle, pointcloud, MV_3D_POINTCLOUD_TYPE_PCD_BIN, PCD_WRITE_FILENAME);
-    if (ret == MEDIA_VISION_ERROR_NONE)
-        mv3dTestsFixture->mIsPointCloudWriteSuccess = true;
+       int ret = mv_3d_pointcloud_write_file(mv3dTestsFixture->mDepthHandle, pointcloud, MV_3D_POINTCLOUD_TYPE_PCD_BIN,
+                                                                                 PCD_WRITE_FILENAME);
+       if (ret == MEDIA_VISION_ERROR_NONE)
+               mv3dTestsFixture->mIsPointCloudWriteSuccess = true;
 }
 
 TEST_P(Mv3DTestsFixture, Configure)
 {
-    ASSERT_EQ(mv_3d_configure(mDepthHandle, mEngineCfgHandle), MEDIA_VISION_ERROR_NONE);
+       ASSERT_EQ(mv_3d_configure(mDepthHandle, mEngineCfgHandle), MEDIA_VISION_ERROR_NONE);
 }
 
 TEST_P(Mv3DTestsFixture, SetCallback)
 {
-    ASSERT_EQ(mv_3d_set_depth_cb(mDepthHandle, _depth_cb, this), MEDIA_VISION_ERROR_NONE);
-    ASSERT_EQ(mv_3d_set_pointcloud_cb(mDepthHandle, _pointcloud_cb, this), MEDIA_VISION_ERROR_NONE);
+       ASSERT_EQ(mv_3d_set_depth_cb(mDepthHandle, _depth_cb, this), MEDIA_VISION_ERROR_NONE);
+       ASSERT_EQ(mv_3d_set_pointcloud_cb(mDepthHandle, _pointcloud_cb, this), MEDIA_VISION_ERROR_NONE);
 }
 
 TEST_P(Mv3DTestsFixture, Prepare)
 {
-    ASSERT_EQ(mv_3d_configure(mDepthHandle, mEngineCfgHandle), MEDIA_VISION_ERROR_NONE);
-    ASSERT_EQ(mv_3d_set_depth_cb(mDepthHandle, _depth_cb, this), MEDIA_VISION_ERROR_NONE);
-    ASSERT_EQ(mv_3d_set_pointcloud_cb(mDepthHandle, _pointcloud_cb, this), MEDIA_VISION_ERROR_NONE);
-    ASSERT_EQ(mv_3d_prepare(mDepthHandle), MEDIA_VISION_ERROR_NONE);
+       ASSERT_EQ(mv_3d_configure(mDepthHandle, mEngineCfgHandle), MEDIA_VISION_ERROR_NONE);
+       ASSERT_EQ(mv_3d_set_depth_cb(mDepthHandle, _depth_cb, this), MEDIA_VISION_ERROR_NONE);
+       ASSERT_EQ(mv_3d_set_pointcloud_cb(mDepthHandle, _pointcloud_cb, this), MEDIA_VISION_ERROR_NONE);
+       ASSERT_EQ(mv_3d_prepare(mDepthHandle), MEDIA_VISION_ERROR_NONE);
 }
 
 TEST_P(Mv3DTestsFixture, Runsync)
 {
-    ASSERT_EQ(mv_3d_configure(mDepthHandle, mEngineCfgHandle), MEDIA_VISION_ERROR_NONE);
-    ASSERT_EQ(mv_3d_set_depth_cb(mDepthHandle, _depth_cb, this), MEDIA_VISION_ERROR_NONE);
-    ASSERT_EQ(mv_3d_set_pointcloud_cb(mDepthHandle, _pointcloud_cb, this), MEDIA_VISION_ERROR_NONE);
-    ASSERT_EQ(mv_3d_prepare(mDepthHandle), MEDIA_VISION_ERROR_NONE);
-
-    if (mTestMode == 0) {
-        LoadImage();
-    }
-    ASSERT_EQ(mv_3d_run(mDepthHandle, mLeftSourceHandle, mRightSourceHandle, nullptr), MEDIA_VISION_ERROR_NONE);
-    ASSERT_TRUE(mIsDepthCallbackInvoked);
-    ASSERT_TRUE(mIsPointCloudCallbackInvoked);
+       ASSERT_EQ(mv_3d_configure(mDepthHandle, mEngineCfgHandle), MEDIA_VISION_ERROR_NONE);
+       ASSERT_EQ(mv_3d_set_depth_cb(mDepthHandle, _depth_cb, this), MEDIA_VISION_ERROR_NONE);
+       ASSERT_EQ(mv_3d_set_pointcloud_cb(mDepthHandle, _pointcloud_cb, this), MEDIA_VISION_ERROR_NONE);
+       ASSERT_EQ(mv_3d_prepare(mDepthHandle), MEDIA_VISION_ERROR_NONE);
+
+       if (mTestMode == 0) {
+               LoadImage();
+       }
+       ASSERT_EQ(mv_3d_run(mDepthHandle, mLeftSourceHandle, mRightSourceHandle, nullptr), MEDIA_VISION_ERROR_NONE);
+       ASSERT_TRUE(mIsDepthCallbackInvoked);
+       ASSERT_TRUE(mIsPointCloudCallbackInvoked);
 }
 
 TEST_P(Mv3DTestsFixture, RunAsync)
 {
-    mIsRunAsync = true;
-    ASSERT_EQ(mv_3d_configure(mDepthHandle, mEngineCfgHandle), MEDIA_VISION_ERROR_NONE);
-    ASSERT_EQ(mv_3d_set_depth_cb(mDepthHandle, _depth_cb, this), MEDIA_VISION_ERROR_NONE);
-    ASSERT_EQ(mv_3d_set_pointcloud_cb(mDepthHandle, _pointcloud_cb, this), MEDIA_VISION_ERROR_NONE);
-    ASSERT_EQ(mv_3d_prepare(mDepthHandle), MEDIA_VISION_ERROR_NONE);
-
-    if (mTestMode == 0) {
-        LoadImage();
-    }
-    ASSERT_EQ(mv_3d_run_async(mDepthHandle, mLeftSourceHandle, mRightSourceHandle, nullptr), MEDIA_VISION_ERROR_NONE);
-
-    WaitUntil();
-    ASSERT_TRUE(mIsDepthCallbackInvoked);
-    ASSERT_TRUE(mIsPointCloudCallbackInvoked);
+       mIsRunAsync = true;
+       ASSERT_EQ(mv_3d_configure(mDepthHandle, mEngineCfgHandle), MEDIA_VISION_ERROR_NONE);
+       ASSERT_EQ(mv_3d_set_depth_cb(mDepthHandle, _depth_cb, this), MEDIA_VISION_ERROR_NONE);
+       ASSERT_EQ(mv_3d_set_pointcloud_cb(mDepthHandle, _pointcloud_cb, this), MEDIA_VISION_ERROR_NONE);
+       ASSERT_EQ(mv_3d_prepare(mDepthHandle), MEDIA_VISION_ERROR_NONE);
+
+       if (mTestMode == 0) {
+               LoadImage();
+       }
+       ASSERT_EQ(mv_3d_run_async(mDepthHandle, mLeftSourceHandle, mRightSourceHandle, nullptr), MEDIA_VISION_ERROR_NONE);
+
+       WaitUntil();
+       ASSERT_TRUE(mIsDepthCallbackInvoked);
+       ASSERT_TRUE(mIsPointCloudCallbackInvoked);
 }
 
 TEST_P(Mv3DTestsFixture, PointCloudWriteFile)
 {
-    ASSERT_EQ(mv_3d_configure(mDepthHandle, mEngineCfgHandle), MEDIA_VISION_ERROR_NONE);
-    ASSERT_EQ(mv_3d_set_depth_cb(mDepthHandle, _depth_cb, this), MEDIA_VISION_ERROR_NONE);
-    ASSERT_EQ(mv_3d_set_pointcloud_cb(mDepthHandle, _pointcloud_write_file_cb, this), MEDIA_VISION_ERROR_NONE);
-    ASSERT_EQ(mv_3d_prepare(mDepthHandle), MEDIA_VISION_ERROR_NONE);
-
-    if (mTestMode == 0) {
-        LoadImage();
-    }
-    ASSERT_EQ(mv_3d_run(mDepthHandle, mLeftSourceHandle, mRightSourceHandle, nullptr), MEDIA_VISION_ERROR_NONE);
-    ASSERT_TRUE(mIsDepthCallbackInvoked);
-    ASSERT_TRUE(mIsPointCloudCallbackInvoked);
-    ASSERT_TRUE(mIsPointCloudWriteSuccess);
+       ASSERT_EQ(mv_3d_configure(mDepthHandle, mEngineCfgHandle), MEDIA_VISION_ERROR_NONE);
+       ASSERT_EQ(mv_3d_set_depth_cb(mDepthHandle, _depth_cb, this), MEDIA_VISION_ERROR_NONE);
+       ASSERT_EQ(mv_3d_set_pointcloud_cb(mDepthHandle, _pointcloud_write_file_cb, this), MEDIA_VISION_ERROR_NONE);
+       ASSERT_EQ(mv_3d_prepare(mDepthHandle), MEDIA_VISION_ERROR_NONE);
+
+       if (mTestMode == 0) {
+               LoadImage();
+       }
+       ASSERT_EQ(mv_3d_run(mDepthHandle, mLeftSourceHandle, mRightSourceHandle, nullptr), MEDIA_VISION_ERROR_NONE);
+       ASSERT_TRUE(mIsDepthCallbackInvoked);
+       ASSERT_TRUE(mIsPointCloudCallbackInvoked);
+       ASSERT_TRUE(mIsPointCloudWriteSuccess);
 }
 
-INSTANTIATE_TEST_SUITE_P(
-    Mv3DTests,
-    Mv3DTestsFixture,
-    ::Values(
-        ParamTypes(TEST_MODE_IMAGE, std::string("Adirondack"), 718, 496, 8, 72, std::string()))
-);
+INSTANTIATE_TEST_SUITE_P(Mv3DTests, Mv3DTestsFixture,
+                                                ::Values(ParamTypes(TEST_MODE_IMAGE, std::string("Adirondack"), 718, 496, 8, 72,
+                                                                                        std::string())));
 
 int main(int argc, char **argv)
 {
-    InitGoogleTest(&argc, argv);
-    return RUN_ALL_TESTS();
+       InitGoogleTest(&argc, argv);
+       return RUN_ALL_TESTS();
 }
\ No newline at end of file
index 71c7de0..25105b8 100644 (file)
 #define POINTS_BUNNY 1889
-float bunny[][3] = {
-{-0.0369122, 0.127512, 0.00276757},
-{-0.0457707, 0.130327, 0.00306785},
-{-0.0708847, 0.149834, 0.0388672},
-{-0.00331557, 0.130403, 0.0212208},
-{-0.0211979, 0.1272, 0.00915278},
-{-0.0265255, 0.12592, 0.00874866},
-{0.0339261, 0.112038, 0.0269672},
-{0.0376485, 0.110455, 0.0145481},
-{-0.0259368, 0.111118, 0.0379115},
-{0.027952, 0.120939, 0.0215377},
-{-0.0628308, 0.155987, -0.0150105},
-{0.0390029, 0.106711, 0.0215202},
-{0.0447976, 0.0950477, 0.00866471},
-{-0.0330636, 0.173619, -0.0031267},
-{-0.0808069, 0.136243, 0.0495014},
-{-0.0705086, 0.12445, 0.0526685},
-{0.00874873, 0.131225, 0.0145345},
-{0.0401015, 0.106711, 0.00874166},
-{0.0379483, 0.100145, -0.00827134},
-{-0.0906538, 0.137201, 0.0207305},
-{-0.0841655, 0.110667, 0.0275273},
-{-0.0705214, 0.156214, 0.0144536},
-{-0.083872, 0.15212, 0.0282652},
-{0.00305028, 0.12432, 0.0332425},
-{0.00870828, 0.124165, 0.0330348},
-{-0.0328896, 0.12613, 0.00300653},
-{-0.0506302, 0.143065, 0.0150611},
-{-0.0757863, 0.13637, 0.050172},
-{-0.0027191, 0.128962, 0.0264678},
-{-0.0460961, 0.125118, 0.0263142},
-{-0.0785104, 0.0942728, -0.0109192},
-{0.0216915, 0.125373, 0.0211452},
-{-0.0888469, 0.124305, 0.00237041},
-{0.040386, 0.100825, -0.00303043},
-{-0.0884145, 0.117791, 0.00268555},
-{-0.0319074, 0.177421, -0.00491879},
-{-0.0765825, 0.143224, 0.0455148},
-{-0.0209748, 0.112544, 0.0388613},
-{-0.020836, 0.179425, -0.0221622},
-{-0.0377039, 0.167987, -0.0130391},
-{-0.0331765, 0.12681, 0.00839958},
-{0.00893926, 0.127114, 0.0292916},
-{-0.044944, 0.131083, 0.0147963},
-{-0.0266041, 0.12515, 0.00282384},
-{0.0144285, 0.12328, 0.0319185},
-{0.019244, 0.122284, 0.0308314},
-{-0.0390225, 0.167317, 0.00215527},
-{-0.08808, 0.129976, 0.00206377},
-{-0.0537203, 0.142608, 0.0266058},
-{0.043095, 0.0980072, 0.0191617},
-{0.0432138, 0.100117, 0.00866473},
-{0.0415448, 0.0944954, 0.0275695},
-{-0.0578726, 0.155337, 0.0149245},
-{-0.0231577, 0.157375, -0.0046304},
-{-0.0683123, 0.145735, 0.0420568},
-{-0.0708351, 0.142847, 0.0451248},
-{-0.070664, 0.0642894, 0.0209789},
-{-0.0761519, 0.130581, 0.0525324},
-{-0.0640036, 0.161784, -0.0208118},
-{-0.0706461, 0.155711, 0.00252406},
-{-0.0924366, 0.118434, 0.0399838},
-{-0.0635349, 0.156052, 0.0148814},
-{0.0282675, 0.118192, 0.0274382},
-{0.0392736, 0.0938857, -0.00915453},
-{-0.0695973, 0.164844, -0.0174846},
-{-0.00892354, 0.123904, 0.0330319},
-{0.0269099, 0.0942476, 0.0444911},
-{-0.0146258, 0.162377, -0.0144398},
-{-0.0450983, 0.167072, 0.00289327},
-{-0.0761536, 0.172742, -0.0384391},
-{-0.0858274, 0.105458, 0.00472318},
-{0.0370431, 0.110443, 0.0207229},
-{0.0321593, 0.0994027, 0.0380657},
-{-0.075287, 0.146433, 0.0428582},
-{-0.0395145, 0.171107, 0.000531747},
-{-0.0839586, 0.11215, 0.00148754},
-{0.0446848, 0.0883378, 0.0216285},
-{0.0161783, 0.127819, 0.0220535},
-{-0.00251635, 0.0397232, 0.0474087},
-{0.00303163, 0.0406968, 0.0460422},
-{-0.0143059, 0.128197, 0.00333856},
-{-0.0526117, 0.155596, 0.0109972},
-{-0.0332043, 0.17776, -0.00906223},
-{0.0394391, 0.106654, 0.00306577},
-{-0.0923799, 0.1249, 0.0327641},
-{0.0454681, 0.0882959, 0.0146642},
-{-0.0274495, 0.179802, -0.00925837},
-{-0.072504, 0.146297, 0.0429682},
-{-0.0579959, 0.129793, 0.0383118},
-{0.043117, 0.0923689, 0.0251649},
-{-0.00865718, 0.130323, 0.0149721},
-{-0.0141304, 0.129188, 0.0147431},
-{-0.0707877, 0.15583, 0.00921954},
-{-0.00952731, 0.127041, 0.0281475},
-{-0.0646289, 0.153404, 0.0329146},
-{-0.0706939, 0.15347, 0.0328596},
-{0.0208126, 0.118434, 0.0336393},
-{-0.0396566, 0.173008, -0.00299705},
-{-0.0442176, 0.170815, -0.00391429},
-{-0.0582565, 0.0395149, 0.0457796},
-{-0.0523033, 0.0401501, 0.04623},
-{-0.0760211, 0.161274, -0.0145891},
-{-0.0693983, 0.163016, -0.0140293},
-{0.0399663, 0.106491, 0.014952},
-{0.041536, 0.0950084, -0.00475737},
-{-0.0470079, 0.163779, 0.00528295},
-{-0.0402546, 0.161678, 0.00298655},
-{-0.0386569, 0.0389805, 0.0441153},
-{-0.0704175, 0.166991, -0.0216976},
-{-0.0254201, 0.0886622, 0.0503827},
-{-0.0886334, 0.137429, 0.00876953},
-{-0.014179, 0.12627, 0.0266417},
-{-0.0360017, 0.17408, -0.0118959},
-{-0.0886251, 0.0937834, 0.00823534},
-{-0.0648672, 0.155874, -0.00891497},
-{-0.0704508, 0.137752, -0.00774011},
-{-0.0750154, 0.166247, -0.0219558},
-{0.0299465, 0.114869, 0.0300239},
-{0.0398138, 0.0998788, 0.0273101},
-{-0.015242, 0.111698, 0.0407424},
-{-0.0700387, 0.118219, 0.0524379},
-{0.0149973, 0.112399, 0.0386082},
-{-0.036487, 0.171225, 0.000545037},
-{-0.0641664, 0.118551, -0.00968333},
-{-0.071817, 0.166979, -0.0463822},
-{-0.0913559, 0.14534, 0.0246937},
-{0.00903703, 0.112569, 0.0396571},
-{0.0324674, 0.0997396, -0.0141603},
-{0.0417911, 0.101845, 0.00188609},
-{0.00302992, 0.112517, 0.0415434},
-{-0.0650368, 0.148485, 0.0382561},
-{-0.0706519, 0.13063, 0.0502497},
-{-0.0144471, 0.128935, 0.00903509},
-{0.00292575, 0.131541, 0.00912318},
-{-0.0625682, 0.151125, 0.035875},
-{0.0349829, 0.113328, 0.0214487},
-{0.021327, 0.0385664, 0.0392992},
-{0.0145125, 0.093771, 0.0501571},
-{-0.00923752, 0.112849, 0.0413907},
-{0.0415329, 0.100906, 0.0210277},
-{0.0422859, 0.101486, 0.0146614},
-{-0.0773783, 0.112839, -0.00448759},
-{-0.078035, 0.137641, -0.00517379},
-{0.00873437, 0.106347, -0.0202193},
-{0.0090324, 0.13035, 0.0211569},
-{0.00301322, 0.130902, 0.0206741},
-{-0.00286342, 0.13115, 0.0147367},
-{-0.0391578, 0.12569, 0.0207996},
-{-0.0205725, 0.123523, 0.0265579},
-{-0.0644194, 0.155634, 0.00928477},
-{-0.0463385, 0.131411, 0.0207671},
-{-0.0532034, 0.0439067, 0.044658},
-{-0.00297651, 0.131046, 0.00884967},
-{-0.089664, 0.137755, 0.0263925},
-{-0.00888731, 0.124273, -0.00880284},
-{-0.0460971, 0.0385107, 0.0446891},
-{-0.0649255, 0.178874, -0.0579325},
-{-0.0329347, 0.124601, 0.0211235},
-{-0.0831301, 0.149901, 0.0334123},
-{-0.0895652, 0.093948, 0.0149303},
-{-0.0328901, 0.124518, -0.00282055},
-{-0.0845271, 0.106161, 0.00204328},
-{-0.0469341, 0.155816, 0.00872921},
-{0.0206202, 0.123943, 0.0267275},
-{-0.026256, 0.117499, 0.0321672},
-{-0.021392, 0.118632, 0.0336445},
-{-0.0195069, 0.116132, 0.0368525},
-{-0.0761618, 0.118382, 0.0520923},
-{0.00889281, 0.0395765, 0.0451727},
-{-0.0534736, 0.159548, 0.00753828},
-{-0.0469464, 0.161226, 0.00680216},
-{-0.0574886, 0.154862, 0.0204748},
-{0.0317199, 0.117635, 0.0202007},
-{0.0378683, 0.105514, -0.00259159},
-{-0.0811847, 0.137693, -0.00253994},
-{-0.0764348, 0.124515, 0.0528345},
-{0.0343816, 0.106104, -0.00900254},
-{0.0457922, 0.088316, 0.00867097},
-{-0.0703288, 0.0944195, -0.0159143},
-{-0.0756048, 0.0937947, -0.0135536},
-{-0.058657, 0.156369, 0.0093256},
-{-0.0637335, 0.153848, 0.00222718},
-{-0.0777278, 0.0960024, 0.0363437},
-{-0.0868519, 0.136556, 0.00309926},
-{-0.0455299, 0.0432404, 0.0432162},
-{-0.0402011, 0.045749, 0.0408051},
-{-0.0654123, 0.160403, -0.0149066},
-{-0.0318898, 0.0387174, 0.0510004},
-{-0.0267997, 0.0453977, 0.0509311},
-{-0.0271043, 0.0396972, 0.0535379},
-{-0.0215575, 0.0460868, 0.0517209},
-{-0.0143078, 0.0445295, 0.0504368},
-{-0.00981594, 0.043264, 0.0493162},
-{-0.00348436, 0.044054, 0.0472086},
-{0.009577, 0.0458139, 0.0465877},
-{0.02048, 0.111086, 0.0379569},
-{-0.0141831, 0.128547, 0.0200007},
-{-0.0526702, 0.144108, 0.0210347},
-{-0.0634838, 0.17384, -0.0527131},
-{-0.0366553, 0.171999, -0.0125745},
-{-0.0525548, 0.131228, 0.0328277},
-{-0.0659567, 0.132023, 0.0442925},
-{-0.0921726, 0.11832, 0.0267606},
-{0.0452792, 0.0882737, 0.00268175},
-{-0.00305651, 0.112889, 0.0417789},
-{-0.0451955, 0.161396, -0.00871567},
-{-0.0402914, 0.160933, -0.0115368},
-{-0.0521414, 0.0701165, 0.0389584},
-{-0.0383315, 0.093604, -0.0232581},
-{-0.0690556, 0.137374, 0.046352},
-{-0.0695996, 0.167401, -0.0516299},
-{-0.00246047, 0.124102, 0.0337609},
-{-0.0398624, 0.128204, 0.00299348},
-{-0.0753331, 0.149032, 0.0395625},
-{-0.0701432, 0.160618, -0.00917801},
-{-0.0589378, 0.0440425, 0.0434222},
-{-0.0207164, 0.126445, 0.00312493},
-{-0.00850666, 0.0467286, 0.0481052},
-{0.00300323, 0.0450308, 0.0469911},
-{-0.0802174, 0.148665, 0.0379438},
-{-0.0819961, 0.130698, 0.0513437},
-{0.00273088, 0.106333, -0.0209927},
-{-0.0757273, 0.0885687, -0.0138399},
-{-0.0698477, 0.0882875, -0.0167823},
-{-0.0668508, 0.159243, -0.0102161},
-{-0.0226988, 0.0885773, 0.0536309},
-{-0.00281419, 0.0990077, 0.0505614},
-{0.0452902, 0.0696213, 0.0253974},
-{-0.0525629, 0.0472823, 0.040482},
-{-0.046959, 0.0466581, 0.0408127},
-{-0.0691348, 0.156682, -0.00276369},
-{-0.0897599, 0.150073, 0.0220744},
-{-0.0702883, 0.155637, 0.0263654},
-{-0.0765031, 0.154893, 0.0266005},
-{-0.00804843, 0.0987379, 0.0505998},
-{0.0300791, 0.11567, -0.00430465},
-{-0.0923054, 0.117757, 0.0334441},
-{-0.0331192, 0.0449511, 0.0462474},
-{-0.0337794, 0.113308, 0.034612},
-{-0.0521291, 0.113769, 0.0349566},
-{0.0437636, 0.0825382, -0.0027974},
-{-0.0202819, 0.126016, 0.0210507},
-{0.0327872, 0.043925, 0.0295904},
-{-0.0453372, 0.155266, -0.0075525},
-{-0.0284609, 0.173987, -0.0175958},
-{0.0268448, 0.0881755, -0.0223077},
-{-0.0308231, 0.0923023, -0.0246377},
-{-0.0899732, 0.149975, 0.0141115},
-{0.0381804, 0.105121, 0.0266947},
-{0.00842001, 0.12907, 0.0258154},
-{-0.0266549, 0.0942999, -0.0265555},
-{-0.0279896, 0.0475815, 0.0485532},
-{-0.0150037, 0.048073, 0.0483203},
-{-0.00298993, 0.0473817, 0.0491102},
-{0.00376754, 0.0477551, 0.0502037},
-{0.00748504, 0.0473851, 0.0493363},
-{-0.0581651, 0.149751, 0.032858},
-{-0.0720688, 0.136456, 0.0490662},
-{-0.0810638, 0.0939541, -0.0082617},
-{0.0380863, 0.0458646, 0.0307423},
-{-0.0253234, 0.182998, -0.0108168},
-{-0.0230508, 0.183235, -0.0110157},
-{0.00323317, 0.129146, 0.0263855},
-{-0.0626125, 0.149788, -0.00343342},
-{-0.0591471, 0.0466998, 0.0395843},
-{-0.0353862, 0.0471292, 0.0414241},
-{-0.0194948, 0.0486404, 0.0485565},
-{-0.00849455, 0.0521633, 0.0517688},
-{-0.00296485, 0.051429, 0.0527827},
-{0.00279019, 0.0517664, 0.0528352},
-{0.00904034, 0.0517165, 0.051222},
-{0.0443839, 0.0943042, 0.00268377},
-{-0.0886145, 0.111113, 0.0148415},
-{-0.0885219, 0.144027, 0.0329221},
-{0.0440719, 0.0937787, 0.0206165},
-{0.0436531, 0.0980341, 0.0146596},
-{-0.0650976, 0.153799, -0.00285808},
-{-0.0517297, 0.0490759, 0.0371355},
-{-0.0331222, 0.0518259, 0.0385377},
-{-0.0377352, 0.127448, 0.0152358},
-{-0.00906608, 0.100701, 0.0460122},
-{-0.0410683, 0.128416, 0.0134054},
-{-0.0712056, 0.158724, -0.00521868},
-{-0.0266313, 0.0501544, 0.044695},
-{-0.0211065, 0.0519946, 0.0455753},
-{-0.0168667, 0.0505241, 0.0476889},
-{-0.0147601, 0.0527687, 0.050103},
-{-0.0626395, 0.149972, -0.00897733},
-{-0.090861, 0.124732, 0.00627835},
-{-0.0255786, 0.0923499, -0.0315595},
-{-0.0709738, 0.172947, -0.052768},
-{-0.0588974, 0.143232, -0.00327646},
-{-0.0943643, 0.12436, 0.0216467},
-{0.0337044, 0.112449, -0.00269877},
-{-0.0515051, 0.136557, 0.0263185},
-{-0.00886593, 0.121199, 0.0360577},
-{-0.061729, 0.155665, -0.0259512},
-{-0.0862637, 0.10567, 0.0206042},
-{-0.0895584, 0.138606, 0.032689},
-{-0.0268168, 0.123904, 0.0208113},
-{0.0341937, 0.0515433, 0.033081},
-{0.0401268, 0.0512743, 0.0322702},
-{0.0449306, 0.0526595, 0.0319582},
-{-0.0405348, 0.117168, 0.0319438},
-{-0.0636902, 0.155546, -0.0390642},
-{0.0278663, 0.100401, 0.0410064},
-{-0.0275828, 0.179275, -0.0157605},
-{-0.0758871, 0.0942302, 0.0383961},
-{0.0138371, 0.129201, 0.0203961},
-{-0.0152723, 0.0998429, 0.0451638},
-{-0.00916763, 0.129718, 0.0206646},
-{-0.0512444, 0.0516901, 0.0334801},
-{-0.0461563, 0.0523184, 0.0379981},
-{-0.0410001, 0.05272, 0.0393793},
-{-0.0270993, 0.0526642, 0.0393104},
-{0.0434924, 0.0931097, -0.00154028},
-{-0.0823819, 0.112683, 0.045427},
-{-0.092066, 0.118055, 0.00909937},
-{-0.00448884, 0.121713, 0.0362976},
-{0.0147346, 0.129423, 0.0143146},
-{-0.0158113, 0.161888, -0.00973584},
-{-0.0778838, 0.149704, -0.00337488},
-{-0.0865357, 0.12477, -0.00166991},
-{0.0153656, 0.126058, 0.0275381},
-{-0.0388913, 0.123761, 0.0249778},
-{-0.0390351, 0.121238, 0.0283673},
-{-0.0324963, 0.120237, 0.0283344},
-{-0.0149052, 0.12311, 0.0316417},
-{-0.0582873, 0.117688, 0.0386719},
-{-0.0626536, 0.161861, -0.0264031},
-{-0.0818147, 0.141639, 0.0444825},
-{0.0350734, 0.100071, 0.0345975},
-{0.0311856, 0.11215, 0.0310216},
-{-0.0335778, 0.11743, 0.031458},
-{-0.059637, 0.153475, 0.031348},
-{-0.0481256, 0.0536625, 0.0362191},
-{-0.059026, 0.156388, 0.00269852},
-{-0.0211187, 0.0578754, 0.0461125},
-{-0.082738, 0.124721, 0.050554},
-{-0.0466997, 0.11363, 0.0348133},
-{-0.0107262, 0.179662, -0.0277472},
-{0.0347725, 0.0894441, -0.0170339},
-{-0.0891825, 0.100351, 0.0148945},
-{0.0257275, 0.122894, 0.0207337},
-{-0.0883949, 0.100277, 0.00841226},
-{-0.0649858, 0.155518, 0.0263367},
-{-0.0768402, 0.154073, 0.00257877},
-{-0.0576877, 0.154146, 0.0262123},
-{-0.0266966, 0.125729, 0.0145923},
-{-0.076376, 0.155782, 0.0208875},
-{-0.0763295, 0.167188, -0.039594},
-{-0.0771877, 0.100229, -0.0103313},
-{-0.0153681, 0.0590839, 0.0519909},
-{-0.010206, 0.0576345, 0.0535443},
-{-0.00350044, 0.0578672, 0.0543757},
-{0.00300818, 0.0568916, 0.0538692},
-{0.0088308, 0.0580497, 0.0529859},
-{0.0410915, 0.0820775, -0.00893411},
-{0.0395449, 0.0576373, 0.0318985},
-{-0.0762443, 0.139336, 0.0484763},
-{-0.0324306, 0.120379, -0.00955344},
-{-0.0194451, 0.0881559, 0.0557639},
-{-0.074787, 0.159471, -0.00898201},
-{-0.0639935, 0.15611, 0.0210031},
-{-0.0762438, 0.153101, 0.0322442},
-{-0.00876679, 0.128727, 0.025102},
-{0.0282216, 0.112237, -0.00983067},
-{-0.0451341, 0.0593225, 0.0387559},
-{-0.0405005, 0.0579499, 0.040202},
-{-0.033993, 0.0584028, 0.038704},
-{-0.0272756, 0.0585468, 0.0382285},
-{-0.0248608, 0.122913, 0.0245429},
-{-0.0825276, 0.154355, 0.0206132},
-{-0.00884271, 0.129403, 0.00305159},
-{0.0207587, 0.126654, 0.0147646},
-{-0.0394868, 0.173351, -0.00839443},
-{-0.028421, 0.114019, 0.0347746},
-{-0.0193575, 0.122009, 0.0306737},
-{-0.0691626, 0.161675, -0.0514614},
-{-0.0516736, 0.15006, 0.0148119},
-{-0.0156325, 0.120151, 0.0349054},
-{0.0467454, 0.0582319, 0.0314404},
-{-0.0770165, 0.0685425, 0.0147863},
-{-0.00967101, 0.173225, -0.0264945},
-{-0.0213141, 0.184813, -0.0151112},
-{-0.0766524, 0.0882188, 0.0382876},
-{-0.0540219, 0.0521463, 0.0110698},
-{-0.0219451, 0.126821, 0.0155536},
-{-0.0820391, 0.153392, 0.0264506},
-{-0.0213183, 0.124468, -0.00290836},
-{-0.0268364, 0.123465, -0.00321538},
-{-0.0312035, 0.177796, -0.0133521},
-{-0.00749945, 0.0598042, 0.0553302},
-{-0.00108951, 0.0601245, 0.0554892},
-{0.00280202, 0.0599746, 0.0555283},
-{-0.051797, 0.118119, 0.033678},
-{0.00302464, 0.131618, 0.0149353},
-{0.0446005, 0.0942619, 0.0151198},
-{-0.0880636, 0.111855, 0.00852285},
-{-0.0704321, 0.144096, -0.0148369},
-{-0.0820967, 0.0943634, 0.0322765},
-{-0.0269642, 0.120812, 0.0275676},
-{-0.0540164, 0.149968, 0.0253393},
-{-0.0800337, 0.0995053, -0.00770139},
-{0.00922138, 0.12038, 0.0360924},
-{0.00286056, 0.117968, 0.0387331},
-{-0.0936229, 0.118494, 0.0206524},
-{-0.0409923, 0.113229, 0.035109},
-{-0.0822185, 0.154488, 0.0146661},
-{-0.0625956, 0.155202, -0.0329876},
-{-0.0462511, 0.124621, -0.00898124},
-{-0.0220336, 0.160676, -0.00426008},
-{-0.065621, 0.172767, -0.0466049},
-{-0.0762614, 0.155884, 0.0148687},
-{-0.0644988, 0.149044, -0.0265159},
-{-0.0581979, 0.0593456, 0.0210895},
-{-0.0335439, 0.122618, 0.0254024},
-{-0.0826578, 0.153434, 0.00921403},
-{-0.049999, 0.132417, 0.0286961},
-{0.0088217, 0.131096, 0.00864908},
-{-0.0154842, 0.0644282, 0.0533754},
-{-0.00871951, 0.065015, 0.0556827},
-{-0.00324815, 0.0640003, 0.0562816},
-{0.00292601, 0.0643094, 0.0563956},
-{0.00738462, 0.0651614, 0.0553402},
-{-0.0143174, 0.116971, 0.037836},
-{-0.00299223, 0.118083, 0.0390751},
-{-0.00864301, 0.117816, 0.0385662},
-{-0.0532884, 0.0571719, 0.0206631},
-{-0.0882588, 0.100387, 0.0210097},
-{-0.0324377, 0.099703, -0.0227313},
-{0.0425072, 0.0603725, 0.0302275},
-{0.0523383, 0.0580401, 0.0290457},
-{0.0413612, 0.0877503, -0.00929235},
-{-0.0581547, 0.0620148, 0.0270981},
-{-0.0530328, 0.0590503, 0.0266933},
-{-0.0477227, 0.135526, 0.0148654},
-{0.00323512, 0.0983053, 0.0504424},
-{0.0150627, 0.119642, 0.034806},
-{-0.0453373, 0.0643061, 0.0391142},
-{-0.0394097, 0.0644278, 0.0414133},
-{-0.033068, 0.0642666, 0.0396407},
-{-0.0270237, 0.0644489, 0.0395335},
-{-0.0881604, 0.149479, 0.0268507},
-{-0.0640727, 0.143434, -0.00894036},
-{0.00286033, 0.121151, 0.036139},
-{-0.0827306, 0.138152, 0.0466993},
-{-0.00261511, 0.127006, 0.030132},
-{0.0355841, 0.108498, -0.00452523},
-{0.0219203, 0.114136, 0.0356941},
-{-0.0379555, 0.161954, -0.0128021},
-{-0.0526362, 0.0643632, 0.0340621},
-{0.025874, 0.123374, 0.0143811},
-{-0.0451406, 0.131184, 0.00901599},
-{-0.075778, 0.155361, -0.00310678},
-{-0.0739145, 0.156437, -0.0274945},
-{-0.0833056, 0.100778, -0.00354288},
-{-0.0767099, 0.173942, -0.0452732},
-{0.00846106, 0.116985, 0.038033},
-{-0.0200899, 0.184788, -0.020546},
-{-0.046571, 0.120413, 0.0285524},
-{-0.0515313, 0.123718, -0.0088569},
-{0.0212116, 0.105804, -0.0171101},
-{-0.0938613, 0.124487, 0.0151416},
-{0.0414591, 0.064577, 0.0290352},
-{0.0466725, 0.0643471, 0.0285539},
-{0.0526423, 0.0634018, 0.0283831},
-{-0.0468141, 0.168322, -0.00285433},
-{-0.0869152, 0.0944156, 0.00293118},
-{-0.0773713, 0.161559, -0.0267238},
-{-0.0396095, 0.126677, -0.00334699},
-{-0.0271315, 0.0764239, 0.0455715},
-{-0.0587953, 0.107012, -0.0177177},
-{-0.0748314, 0.11156, -0.00720996},
-{-0.0642623, 0.0888181, -0.018733},
-{-0.0325172, 0.0881157, -0.0255424},
-{0.00325654, 0.0700086, 0.0561047},
-{0.0103151, 0.0636713, 0.0537558},
-{0.0432701, 0.0979967, 0.00267804},
-{-0.0708223, 0.156244, 0.021207},
-{-0.0584176, 0.0702277, 0.0384322},
-{-0.0703207, 0.112305, -0.00963846},
-{-0.0581653, 0.0881983, -0.0208369},
-{-0.0443038, 0.0877156, -0.0218942},
-{-0.0488091, 0.0660127, 0.0373959},
-{0.00269411, 0.126911, 0.030114},
-{0.0239692, 0.12105, 0.0288706},
-{-0.0469203, 0.117468, 0.0314407},
-{-0.091552, 0.143361, 0.0201623},
-{-0.0907563, 0.143859, 0.0263089},
-{-0.0495713, 0.144022, 0.00976642},
-{-0.0770934, 0.15583, -0.0147903},
-{-0.0868322, 0.105634, 0.00887573},
-{-0.082848, 0.131648, -0.00299747},
-{-0.0384249, 0.106407, -0.0201393},
-{-0.0823953, 0.118841, -0.00336022},
-{-0.0102333, 0.0876697, -0.0375101},
-{-0.00789361, 0.089842, -0.0363492},
-{-0.0579097, 0.111769, -0.0161856},
-{0.0140074, 0.105793, -0.0193841},
-{-0.00328561, 0.105435, -0.0225198},
-{-0.0409613, 0.070972, 0.0419904},
-{-0.033501, 0.0710512, 0.0409793},
-{-0.0272732, 0.0701361, 0.0410332},
-{-0.0161963, 0.127121, 0.0228897},
-{-0.0190644, 0.127936, 0.0133818},
-{-0.0149926, 0.0694778, 0.0545159},
-{-0.00932719, 0.0707313, 0.0562936},
-{-0.002994, 0.0710941, 0.0575426},
-{0.00838831, 0.0714267, 0.0556585},
-{0.0102531, 0.0693533, 0.0547665},
-{-0.0323939, 0.153399, -0.00240332},
-{0.0435981, 0.0881514, 0.0254203},
-{-0.0586529, 0.124882, -0.00781093},
-{-0.0204287, 0.107045, -0.022046},
-{-0.0382961, 0.0879422, -0.0229335},
-{-0.081573, 0.113394, -0.00173083},
-{-0.0380811, 0.154778, -0.00889149},
-{-0.00212588, 0.0889926, -0.0354677},
-{0.00904065, 0.100193, -0.0222794},
-{-0.0467068, 0.0700493, 0.0405769},
-{-0.0779974, 0.151244, 0.0352264},
-{0.0149019, 0.116126, 0.0367849},
-{-0.07603, 0.106301, -0.0087688},
-{-0.0885261, 0.137839, 0.0393964},
-{-0.0703112, 0.131278, -0.00857724},
-{0.0419377, 0.0703605, 0.0288832},
-{0.0514194, 0.0684326, 0.0256968},
-{-0.0922548, 0.124813, 0.0393757},
-{0.0135035, 0.128105, 0.0250558},
-{-0.0704618, 0.125421, -0.00881334},
-{-0.0703931, 0.118731, -0.00840961},
-{-0.0719685, 0.106305, -0.0114493},
-{-0.0646972, 0.161498, -0.0573125},
-{0.0463693, 0.0715128, 0.0216754},
-{-0.0538246, 0.153497, 0.0152346},
-{-0.0142869, 0.0724666, 0.0554243},
-{-0.0394057, 0.118512, -0.01336},
-{-0.0280509, 0.0880065, -0.0330858},
-{-0.00957701, 0.168254, -0.0212321},
-{-0.0445856, 0.167324, -0.00782662},
-{-0.0513101, 0.161594, -0.00355965},
-{-0.0702356, 0.179304, -0.0569867},
-{-0.0644695, 0.168402, -0.0398946},
-{-0.0089459, 0.130139, 0.00911776},
-{0.00219503, 0.0880369, -0.0342201},
-{-0.0268891, 0.16726, -0.0174204},
-{-0.0525985, 0.155054, -0.00368706},
-{-0.0761618, 0.131736, -0.00696723},
-{-0.0759576, 0.07099, 0.0265672},
-{-0.00875341, 0.10588, -0.02285},
-{-0.0519242, 0.1493, -0.00277595},
-{-0.016371, 0.18465, -0.0214272},
-{-0.020548, 0.0705632, 0.0520411},
-{-0.0813371, 0.120073, 0.049533},
-{-0.0625087, 0.149934, -0.0150319},
-{-0.0831098, 0.10651, 0.0273461},
-{-0.011119, 0.163582, -0.018751},
-{-0.00291057, 0.101147, 0.0456419},
-{-0.0635467, 0.0660523, 0.0318653},
-{-0.0511979, 0.0873878, -0.0217212},
-{-0.0530335, 0.0740367, 0.0417219},
-{-0.0465007, 0.0756701, 0.0421325},
-{-0.022314, 0.0760359, 0.0530306},
-{-0.0151351, 0.0764056, 0.0563566},
-{-0.00900601, 0.0766621, 0.0575852},
-{-0.00299732, 0.0767339, 0.0584651},
-{0.00347424, 0.0769755, 0.0565905},
-{0.00860763, 0.0767538, 0.0557293},
-{-0.0271239, 0.156216, -0.00302734},
-{-0.0633091, 0.16738, -0.0580906},
-{-0.0873943, 0.144225, 0.00902371},
-{-0.0626891, 0.162297, -0.0470925},
-{0.0370111, 0.110397, 0.00265294},
-{-0.0744006, 0.144062, -0.00864565},
-{-0.0244124, 0.183841, -0.0135068},
-{-0.0803381, 0.0715473, 0.0150483},
-{-0.0644528, 0.0761561, 0.040638},
-{-0.0588413, 0.0753794, 0.0421022},
-{-0.0524294, 0.077372, 0.0433357},
-{-0.0484981, 0.0769334, 0.043281},
-{-0.0414954, 0.0773856, 0.0429005},
-{-0.0395008, 0.0754808, 0.0425134},
-{-0.033488, 0.0764759, 0.0414605},
-{-0.0627838, 0.162163, -0.0530538},
-{0.0381456, 0.0881056, -0.0138675},
-{-0.0642837, 0.0396418, 0.039624},
-{-0.0526672, 0.121335, -0.010917},
-{-0.0738104, 0.162942, -0.037093},
-{-0.0490869, 0.13938, 0.00889895},
-{-0.0495771, 0.166027, -0.00171113},
-{-0.0709736, 0.161609, -0.0450808},
-{0.0251847, 0.12195, 0.0254854},
-{-0.0193615, 0.0781018, 0.0558163},
-{-0.0265458, 0.120645, -0.00911332},
-{-0.061796, 0.155741, -0.0207923},
-{-0.082476, 0.110295, 0.0324103},
-{-0.0691674, 0.156314, -0.050857},
-{-0.0622848, 0.16236, -0.0396288},
-{-0.088248, 0.113803, 0.0264606},
-{-0.0575392, 0.0787026, 0.0436363},
-{-0.0298439, 0.0782596, 0.0421168},
-{-0.0677617, 0.0876701, 0.0434928},
-{-0.0921939, 0.131884, 0.015227},
-{-0.0878987, 0.111742, 0.0209206},
-{-0.049353, 0.139298, 0.0147955},
-{-0.0327071, 0.173321, -0.0149209},
-{-0.0866298, 0.152851, 0.0149144},
-{-0.0779646, 0.100025, 0.035185},
-{-0.0935537, 0.118404, 0.0151524},
-{-0.084908, 0.10801, 0.0228537},
-{-0.0210677, 0.0821213, 0.0562096},
-{-0.0149957, 0.082187, 0.0572635},
-{-0.00899671, 0.0822178, 0.0576875},
-{-0.00299966, 0.0822055, 0.0574653},
-{0.0034748, 0.0817533, 0.0567544},
-{0.00824833, 0.082992, 0.0556315},
-{0.0102414, 0.0812949, 0.0546523},
-{-0.0398496, 0.123966, -0.00878898},
-{-0.092257, 0.124769, 0.00902091},
-{-0.0436728, 0.126191, 0.0209533},
-{-0.0820425, 0.105873, -0.00271871},
-{-0.0663016, 0.0807623, 0.0424437},
-{-0.0639939, 0.0836688, 0.0439754},
-{-0.058539, 0.0825906, 0.0439671},
-{-0.0521209, 0.0822523, 0.0446262},
-{-0.0467559, 0.0828569, 0.0439458},
-{-0.0424962, 0.0810729, 0.0423266},
-{-0.0404903, 0.0830123, 0.0430984},
-{-0.0365108, 0.0825773, 0.0434355},
-{-0.032204, 0.0824171, 0.0421121},
-{-0.0864005, 0.152981, 0.0204492},
-{-0.0235661, 0.115415, 0.0353667},
-{-0.0764871, 0.111685, 0.0461598},
-{-0.0763895, 0.14977, -0.00829972},
-{-0.0754801, 0.161855, -0.0327796},
-{-0.0285733, 0.0828247, 0.0462702},
-{-0.0862819, 0.100797, 0.0028483},
-{0.021088, 0.08242, 0.0504086},
-{-0.0801892, 0.143128, -0.00230055},
-{0.00844098, 0.124407, -0.00878569},
-{0.0147552, 0.0825883, 0.0529115},
-{-0.061995, 0.161169, -0.032654},
-{-0.0807571, 0.1525, 0.0307996},
-{-0.00295953, 0.130272, 0.00279699},
-{-0.0153619, 0.0884791, 0.0565599},
-{-0.00899729, 0.0878977, 0.0570287},
-{-0.00299611, 0.0880658, 0.0568489},
-{0.00301457, 0.0885291, 0.0562756},
-{0.00834267, 0.0873808, 0.0555541},
-{-0.00897481, 0.0941651, -0.0338408},
-{0.0314278, 0.11673, 0.0250113},
-{-0.0760602, 0.155337, 0.0093949},
-{0.0257808, 0.116776, -0.00728909},
-{-0.0646577, 0.0882843, 0.0447113},
-{-0.058996, 0.0882997, 0.0449149},
-{-0.0529958, 0.0883132, 0.0451395},
-{-0.0465421, 0.0881579, 0.0443187},
-{-0.0404961, 0.0876863, 0.0430941},
-{-0.0331792, 0.0885648, 0.04366},
-{-0.0280482, 0.0879652, 0.046363},
-{0.0150626, 0.0881784, 0.0517745},
-{0.0205955, 0.087113, 0.0492325},
-{-0.0702712, 0.0823874, 0.0409431},
-{-0.0296926, 0.0896882, -0.0286839},
-{-0.0236137, 0.179242, -0.0115629},
-{-0.0809391, 0.100029, 0.0323433},
-{-0.0928336, 0.130683, 0.0207107},
-{-0.0761771, 0.156201, -0.0204165},
-{0.0146577, 0.129396, 0.00843576},
-{0.0104845, 0.089766, 0.0542005},
-{-0.072579, 0.161253, -0.0389447},
-{-0.0322741, 0.110391, -0.0184574},
-{-0.0550172, 0.150108, 0.027792},
-{-0.071635, 0.0883254, 0.0414652},
-{-0.0424904, 0.0895336, 0.0426086},
-{0.0207945, 0.0897491, 0.0484315},
-{0.0273189, 0.118845, -0.00265658},
-{0.0285218, 0.121112, 0.0162366},
-{-0.00899735, 0.0930598, 0.0559298},
-{-0.00291176, 0.118727, -0.0144021},
-{-0.0885191, 0.113233, 0.0327948},
-{-0.0713744, 0.0938304, 0.0415269},
-{-0.0641029, 0.0935514, 0.0439488},
-{-0.0584965, 0.0944146, 0.0446213},
-{-0.0515853, 0.0939836, 0.0442383},
-{-0.0465591, 0.0937901, 0.0436103},
-{-0.0414914, 0.0942416, 0.0425268},
-{-0.0377723, 0.0933327, 0.0434889},
-{-0.0332864, 0.0945766, 0.0443868},
-{-0.0263807, 0.094318, 0.0450568},
-{-0.0141606, 0.0929618, 0.0553898},
-{-0.00319641, 0.0930898, 0.0557853},
-{0.00150357, 0.0931879, 0.0551544},
-{0.00367616, 0.0950752, 0.0535295},
-{0.00915739, 0.0941794, 0.0519212},
-{0.0216553, 0.0937794, 0.0473202},
-{-0.0702968, 0.174481, -0.045888},
-{-0.0305889, 0.168899, -0.00702359},
-{-0.0528191, 0.162649, 0.00296711},
-{-0.0890968, 0.0940104, 0.0208024},
-{-0.0626249, 0.173112, -0.0586131},
-{-0.0443835, 0.105923, -0.0201903},
-{-0.0664958, 0.0951776, 0.0424531},
-{-0.0324384, 0.126415, 0.0146752},
-{-0.0152469, 0.0961657, 0.0518098},
-{-0.0097537, 0.0960506, 0.0535818},
-{-0.00304601, 0.0963367, 0.0537791},
-{0.01642, 0.0957081, 0.0480381},
-{-0.0876548, 0.105191, 0.0148253},
-{-0.0699417, 0.0763232, 0.0381496},
-{0.0358078, 0.0958594, -0.0120328},
-{0.0374966, 0.100154, 0.031249},
-{-0.0530195, 0.150059, 0.0207323},
-{-0.0905911, 0.131765, 0.0328667},
-{-0.0709717, 0.147309, -0.0268389},
-{-0.0443321, 0.0935075, -0.0222668},
-{-0.0400911, 0.128618, 0.00909496},
-{-0.0710054, 0.100275, 0.0398128},
-{-0.0653063, 0.100124, 0.0417262},
-{-0.0589969, 0.0980495, 0.0430328},
-{-0.0529938, 0.0980631, 0.0432952},
-{-0.0469951, 0.0980659, 0.043235},
-{-0.0408476, 0.100401, 0.0414668},
-{-0.0323344, 0.0988071, 0.0435216},
-{-0.0259464, 0.0998425, 0.0438947},
-{-0.0212066, 0.0999849, 0.0444194},
-{0.00749586, 0.09835, 0.0488255},
-{0.0090271, 0.101109, 0.0469975},
-{0.0153076, 0.100008, 0.0472449},
-{0.0208175, 0.100067, 0.0453866},
-{-0.0648326, 0.131509, -0.00838673},
-{-0.0740297, 0.150832, -0.0323367},
-{-0.0932444, 0.124885, 0.026841},
-{-0.0633239, 0.169093, -0.0610358},
-{-0.0771158, 0.162488, -0.0202679},
-{-0.0585669, 0.0647555, 0.0323611},
-{0.0377689, 0.110383, 0.00969065},
-{-0.0503559, 0.0935892, -0.0218956},
-{-0.0589961, 0.101543, 0.042437},
-{-0.0516647, 0.101981, 0.0417488},
-{-0.0469248, 0.101325, 0.0421166},
-{-0.0352173, 0.101965, 0.0413638},
-{0.00285015, 0.100935, 0.0464433},
-{-0.075479, 0.150312, -0.0143808},
-{-0.078936, 0.108126, -0.00525459},
-{-0.0251472, 0.168981, -0.0187156},
-{-0.071457, 0.113692, 0.0499983},
-{-0.0747771, 0.0997536, 0.0377868},
-{-0.0902919, 0.137212, 0.0146286},
-{-0.0264568, 0.105883, 0.0411765},
-{-0.0209966, 0.1044, 0.0429589},
-{-0.0145208, 0.105597, 0.0430511},
-{-0.00899316, 0.10622, 0.0435541},
-{-0.00289533, 0.105882, 0.0438861},
-{0.00245231, 0.105621, 0.0429868},
-{0.00945613, 0.104903, 0.0439002},
-{0.0149913, 0.104769, 0.0443348},
-{-0.0772186, 0.106139, 0.0350601},
-{-0.0708601, 0.106945, 0.0381598},
-{-0.0652985, 0.106577, 0.0390805},
-{-0.0583896, 0.105623, 0.0405326},
-{-0.0529341, 0.106445, 0.0398435},
-{-0.0461638, 0.105797, 0.0404843},
-{-0.0400204, 0.106789, 0.0388993},
-{-0.03311, 0.106322, 0.0394461},
-{0.0193026, 0.10477, 0.0431964},
-{-0.0501412, 0.13774, 0.00286739},
-{0.0266104, 0.105911, 0.0384052},
-{0.0438719, 0.088439, -0.0031027},
-{-0.0590381, 0.113203, 0.0362299},
-{-0.021499, 0.107851, 0.0414162},
-{-0.0164951, 0.107881, 0.0420289},
-{0.00450524, 0.107918, 0.0419336},
-{0.00856234, 0.108229, 0.0410531},
-{0.0149994, 0.10779, 0.0412845},
-{0.0213049, 0.106041, 0.0409433},
-{-0.0336665, 0.167843, -0.00338268},
-{-0.0587789, 0.131705, -0.00671001},
-{-0.0443517, 0.100306, -0.0215281},
-{-0.0147306, 0.179604, -0.0266222},
-{0.0159582, 0.108177, -0.0177822},
-{-0.0638447, 0.138119, -0.00733006},
-{-0.0330953, 0.167861, -0.0155539},
-{-0.0643684, 0.125359, -0.00876153},
-{-0.032583, 0.161992, -0.0142418},
-{-0.068568, 0.110392, 0.0392194},
-{-0.0643494, 0.112195, 0.0388907},
-{-0.0593722, 0.112082, 0.0373875},
-{-0.0529986, 0.110472, 0.0373551},
-{-0.0468613, 0.11028, 0.0378862},
-{-0.040984, 0.110496, 0.0370883},
-{-0.0320055, 0.110468, 0.0370438},
-{-0.0074871, 0.110717, 0.042649},
-{-0.00449218, 0.110714, 0.0426582},
-{0.0250033, 0.110611, 0.0368459},
-{0.025919, 0.0995286, -0.0189206},
-{-0.06973, 0.112153, 0.0457184},
-{-0.045604, 0.148834, -0.00329924},
-{-0.0653006, 0.0947889, -0.0177657},
-{-0.0906677, 0.13318, 0.0277848},
-{-0.0331508, 0.094474, -0.0237799},
-{-0.0575764, 0.0941613, -0.0208023},
-{-0.0200586, 0.0397198, 0.0532237},
-{-0.0203685, 0.0352888, 0.051184},
-{-0.0764163, 0.125947, -0.00745144},
-{-0.0205906, 0.167551, -0.0139677},
-{0.025858, 0.116851, 0.0315289},
-{-0.0139279, 0.167191, -0.021044},
-{-0.0587481, 0.149802, -0.00133886},
-{0.0144191, 0.0395247, 0.0443396},
-{0.0332953, 0.105473, 0.0329627},
-{-0.0647461, 0.114313, -0.0115219},
-{-0.0520818, 0.0353771, 0.0449331},
-{-0.015004, 0.0392095, 0.0513548},
-{-0.0094925, 0.0384962, 0.049554},
-{-0.0638496, 0.117631, 0.0454477},
-{-0.0573025, 0.136864, 0.033162},
-{0.0189101, 0.0400942, 0.0428502},
-{-0.0508192, 0.124393, 0.0332635},
-{-0.0182623, 0.180885, -0.017743},
-{-0.0651271, 0.150343, -0.0325707},
-{0.0332966, 0.0936886, 0.0400216},
-{-0.0463011, 0.149493, 0.00833001},
-{0.00260773, 0.0354887, 0.0450013},
-{-0.0780807, 0.10971, 0.0423535},
-{-0.0542262, 0.124756, 0.0369858},
-{-0.0402584, 0.0361447, 0.0436625},
-{-0.00317483, 0.0942874, -0.0331049},
-{-0.0151032, 0.179716, -0.0207621},
-{0.026141, 0.0403246, 0.0327265},
-{-0.0640247, 0.111376, -0.0136272},
-{0.027817, 0.112309, 0.0339118},
-{-0.0586332, 0.142774, 0.0334953},
-{-0.0146622, 0.167501, -0.0154455},
-{-0.0270893, 0.167298, -0.00866399},
-{0.0152056, 0.045813, 0.0442638},
-{0.0190988, 0.0442996, 0.0429},
-{0.0215694, 0.0456112, 0.041209},
-{0.0257452, 0.0459137, 0.0381185},
-{0.0387365, 0.0944447, 0.0327088},
-{0.0287308, 0.0456722, 0.0347466},
-{-0.0151805, 0.173809, -0.0213305},
-{-0.0658903, 0.118253, 0.0498126},
-{-0.0628345, 0.093206, -0.0188544},
-{-0.0643065, 0.142451, 0.0394123},
-{-0.040079, 0.150283, 0.00280951},
-{-0.026851, 0.173268, -0.00983852},
-{-0.0207913, 0.173767, -0.0147826},
-{-0.0582334, 0.124238, 0.0403406},
-{-0.0683337, 0.131545, 0.0479709},
-{-0.0693547, 0.10637, -0.012803},
-{-0.0428668, 0.157627, 0.0050419},
-{-0.0476449, 0.130368, 0.0258834},
-{0.0379451, 0.0817167, -0.0141547},
-{0.0312298, 0.0470286, 0.0324465},
-{-0.0662284, 0.138149, 0.042896},
-{-0.0644094, 0.105575, -0.0158634},
-{0.0411271, 0.0443713, 0.0285474},
-{-0.0830031, 0.0762361, 0.0150296},
-{-0.0660167, 0.123488, 0.0501643},
-{-0.0416352, 0.155329, 0.00636435},
-{-0.0388456, 0.155994, 0.00477206},
-{-0.0551732, 0.116538, 0.0359195},
-{-0.0600069, 0.134082, 0.0369434},
-{0.0452816, 0.0453284, 0.0263124},
-{0.0513161, 0.0463154, 0.0204963},
-{-0.0106687, 0.172847, -0.0215627},
-{-0.0147735, 0.18419, -0.0259341},
-{0.0301064, 0.106776, 0.0358091},
-{-0.063709, 0.125122, 0.0457451},
-{0.0473431, 0.0499217, 0.0295077},
-{0.0497106, 0.0482066, 0.0259506},
-{0.0518484, 0.0518415, 0.0267161},
-{-0.0162732, 0.172938, -0.0174582},
-{0.0355097, 0.107304, 0.0291151},
-{-0.0552656, 0.143077, 0.0300537},
-{-0.0637191, 0.136482, 0.0388176},
-{-0.0199086, 0.161072, -0.00863325},
-{-0.0209172, 0.179282, -0.0148523},
-{0.014511, 0.0513519, 0.0474271},
-{-0.0610259, 0.126912, 0.0416133},
-{0.0539905, 0.0494141, 0.0219114},
-{0.00925922, 0.118865, -0.0148674},
-{-0.0268384, 0.162091, -0.00836699},
-{-0.0367024, 0.163198, -0.00107067},
-{-0.0336432, 0.155948, 0.00188963},
-{-0.0280966, 0.159587, 0.000483069},
-{-0.026491, 0.16163, -0.00321758},
-{0.0206613, 0.0528733, 0.0451655},
-{0.0231576, 0.0513069, 0.0414753},
-{0.0266044, 0.0526516, 0.039853},
-{0.0309772, 0.0527823, 0.0371348},
-{0.0239371, 0.103424, 0.0418106},
-{0.0568895, 0.0527484, 0.0209204},
-{-0.0664209, 0.11329, 0.0441331},
-{-0.0326789, 0.162384, -0.00243762},
-{0.0145199, 0.0932586, -0.026363},
-{-0.0543983, 0.119186, 0.0365781},
-{-0.0564272, 0.132376, 0.0357966},
-{-0.0501636, 0.142911, 0.00230897},
-{-0.043714, 0.147707, 0.0038501},
-{-0.0291346, 0.177171, -0.00534178},
-{0.0357304, 0.100363, -0.0111604},
-{0.0133943, 0.0541536, 0.0499521},
-{0.0551089, 0.0545007, 0.0253961},
-{0.0291033, 0.0572886, 0.0407089},
-{0.0585723, 0.0583402, 0.0214893},
-{-0.0740322, 0.0656952, 0.0144875},
-{-0.0749844, 0.179305, -0.0518221},
-{0.0145778, 0.0585769, 0.0501691},
-{0.0214876, 0.058332, 0.0470549},
-{0.0259507, 0.0590004, 0.0437762},
-{0.032833, 0.0585633, 0.0387158},
-{0.0358218, 0.0578374, 0.0350365},
-{0.0360585, 0.0951301, 0.0364902},
-{-0.0886806, 0.118283, 0.0459142},
-{0.0562736, 0.0586365, 0.0253398},
-{0.0303311, 0.0951295, 0.0419589},
-{-0.0222315, 0.167389, -0.0110472},
-{-0.0543257, 0.136577, 0.0307959},
-{-0.0500074, 0.150447, 0.0117579},
-{-0.0616289, 0.137406, 0.0354744},
-{-0.0319367, 0.159507, 0.00191749},
-{-0.0634458, 0.132148, 0.0406867},
-{0.0368678, 0.0921989, 0.0367449},
-{-0.0728433, 0.156137, -0.0339112},
-{0.0389872, 0.0640689, 0.0330299},
-{-0.0636611, 0.1488, -0.0205996},
-{0.0153938, 0.0648444, 0.0513036},
-{0.0213958, 0.0645506, 0.0473078},
-{0.0265105, 0.0649235, 0.0439721},
-{0.0302364, 0.0650657, 0.0415975},
-{0.0331295, 0.0642221, 0.0397381},
-{0.0367885, 0.065027, 0.0366867},
-{0.0563131, 0.0650782, 0.0252208},
-{0.0591364, 0.0644742, 0.0211357},
-{-0.0110683, 0.167098, -0.0167807},
-{-0.0605202, 0.146205, 0.0366666},
-{0.0194528, 0.0665736, 0.0491642},
-{-0.0286777, 0.158132, 0.000508817},
-{0.0253025, 0.0989569, 0.0434277},
-{-0.0349979, 0.152158, 8.20736e-05},
-{0.014665, 0.070627, 0.0528306},
-{0.0202908, 0.071041, 0.0498828},
-{0.0230702, 0.0702991, 0.0473835},
-{0.0263693, 0.0706238, 0.0441789},
-{0.0328306, 0.0707606, 0.0401362},
-{0.0368832, 0.070672, 0.0365953},
-{0.0398878, 0.0705632, 0.0325808},
-{0.0579544, 0.0694794, 0.0198345},
-{-0.0641704, 0.063724, 0.0268682},
-{-0.0919499, 0.114216, 0.0149265},
-{0.0351624, 0.0819076, -0.0172502},
-{-0.0862408, 0.119271, -0.00117534},
-{-0.0294401, 0.174958, -0.00579982},
-{-0.0175288, 0.165418, -0.0114925},
-{-0.0617869, 0.117789, 0.0409144},
-{0.0301891, 0.0723658, 0.0418804},
-{-0.0822099, 0.149486, 0.00288044},
-{-0.0760271, 0.175704, -0.0506937},
-{-0.0652343, 0.0614738, 0.0211346},
-{-0.0266574, 0.110394, -0.019007},
-{-0.0813538, 0.0779161, 0.0268055},
-{0.021417, 0.118723, -0.00893569},
-{0.0149346, 0.0759297, 0.0536191},
-{0.0209886, 0.0761609, 0.0506055},
-{0.0268396, 0.0762089, 0.0459193},
-{0.0336785, 0.0760737, 0.0405166},
-{0.0373422, 0.0760306, 0.0366776},
-{0.0400324, 0.0763062, 0.0328345},
-{0.0419048, 0.076876, 0.0296092},
-{0.0438094, 0.0763805, 0.0258638},
-{-0.0452412, 0.118472, -0.0142046},
-{0.0456773, 0.0768089, 0.0208187},
-{-0.050165, 0.137714, 0.0207618},
-{-0.00327054, 0.111563, -0.0203549},
-{-0.0483236, 0.145111, 0.00757835},
-{0.0310833, 0.0775315, 0.0432282},
-{-0.046855, 0.145222, 0.00288431},
-{-0.0141716, 0.10541, -0.0225802},
-{0.0470348, 0.0753979, 0.0148736},
-{-0.0611433, 0.140542, 0.0356184},
-{0.0272779, 0.0823714, 0.0459243},
-{0.0309212, 0.08255, 0.0430252},
-{0.0343037, 0.0825412, 0.0402907},
-{0.0370354, 0.0824663, 0.0369099},
-{-0.0799946, 0.147989, -0.000835337},
-{-0.0774435, 0.0690153, 0.00961977},
-{0.0404363, 0.0826995, 0.0326021},
-{0.0417479, 0.0827335, 0.0302524},
-{0.0436887, 0.0825508, 0.0263844},
-{0.0454407, 0.0825465, 0.0207137},
-{-0.0822812, 0.116295, 0.0482855},
-{-0.0844726, 0.0947391, -0.00345192},
-{-0.020271, 0.168003, -0.0193935},
-{-0.0742716, 0.0668501, 0.0190414},
-{0.026747, 0.0882417, 0.0458314},
-{0.0308722, 0.0882572, 0.0430146},
-{0.0344922, 0.0883047, 0.0403697},
-{0.0372481, 0.0881263, 0.0366393},
-{0.039927, 0.088094, 0.0326668},
-{0.0419027, 0.0877782, 0.0290815},
-{0.00264738, 0.112302, -0.019871},
-{-0.0703315, 0.1455, -0.0205576},
-{-0.0749446, 0.137879, -0.00653312},
-{-0.0266967, 0.114299, -0.0159903},
-{-0.0869924, 0.113518, 0.00410409},
-{-0.0142186, 0.174013, -0.0259807},
-{-0.0221564, 0.157852, -0.00861651},
-{-0.011587, 0.164129, -0.0163045},
-{-0.00997381, 0.169338, -0.0247765},
-{-0.082875, 0.143405, 0.00186692},
-{0.0203757, 0.0354405, -0.00287175},
-{0.0191274, 0.0363337, -0.00917714},
-{0.0184456, 0.036388, -0.013479},
-{0.0149535, 0.0347732, -0.0154937},
-{0.0221204, 0.0372026, 0.0342324},
-{0.039271, 0.0382866, 0.00854708},
-{0.0397549, 0.0398545, 0.002614},
-{0.0221892, 0.0380614, -0.00446361},
-{0.0179901, 0.0369066, -0.0161835},
-{0.0154148, 0.0392444, -0.0212861},
-{0.0208023, 0.100118, -0.0213392},
-{0.0446004, 0.0409064, 0.00927401},
-{0.0435625, 0.0411355, 0.00427044},
-{0.0381381, 0.0411139, -0.00147908},
-{-0.0478807, 0.135207, 0.00885778},
-{0.0217274, 0.0404287, -0.00964433},
-{0.0206744, 0.0405956, -0.0144437},
-{0.0192578, 0.0411681, -0.0195074},
-{-0.0885736, 0.112913, 0.0395856},
-{-0.026793, 0.106457, -0.0218501},
-{0.0481487, 0.0428585, 0.0145594},
-{0.0521212, 0.0461655, 0.0089655},
-{0.0480438, 0.0430647, 0.00724585},
-{0.0460936, 0.0434131, 0.00284357},
-{0.0285003, 0.100485, -0.0168103},
-{0.0269462, 0.0395833, -0.00334578},
-{-0.0907856, 0.117838, 0.00647331},
-{-0.062721, 0.167567, -0.0470628},
-{-0.0799532, 0.106813, 0.0316838},
-{0.0527437, 0.0462125, 0.0139554},
-{0.0504533, 0.0466263, 0.00264513},
-{-0.0322581, 0.117324, -0.0133273},
-{0.0272475, 0.0455966, -0.00927071},
-{-0.0146455, 0.0942084, -0.0337341},
-{-0.0411545, 0.16722, -0.010818},
-{-0.0721385, 0.156112, -0.0384102},
-{0.0456803, 0.0474217, -0.00311192},
-{0.0239407, 0.0433254, -0.00969837},
-{0.021084, 0.0462585, -0.0205303},
-{-0.0348527, 0.0351549, -0.0307351},
-{-0.0699867, 0.0663066, 0.0259153},
-{-0.0747071, 0.149891, -0.0201453},
-{-0.0845448, 0.13725, 0.000743181},
-{0.0549514, 0.0484178, 0.0163982},
-{0.0264565, 0.0466261, -0.0141039},
-{0.0225276, 0.0444655, -0.0157683},
-{0.0330538, 0.0938135, -0.0160538},
-{0.0526476, 0.0694992, 0.00297306},
-{0.0528544, 0.0581339, -0.00277966},
-{-0.0571464, 0.0671799, 0.0361705},
-{-0.0651544, 0.157167, -0.0515491},
-{-0.0493189, 0.133682, 0.00119868},
-{-0.032962, 0.10595, -0.0206729},
-{-0.0649538, 0.155656, -0.045631},
-{-0.0390456, 0.150445, -0.00354536},
-{0.0574365, 0.051618, 0.0145183},
-{0.0574129, 0.0522531, 0.00903377},
-{0.0536112, 0.0500965, 0.00204174},
-{0.0512204, 0.0520121, -0.00218354},
-{0.0471226, 0.0515811, -0.00481298},
-{0.033443, 0.047576, -0.0063817},
-{0.00280933, 0.118297, -0.0158208},
-{-0.0147841, 0.10125, -0.0238408},
-{-0.0620037, 0.167422, -0.0527165},
-{0.0559147, 0.0528382, 0.00339683},
-{0.0334801, 0.0518506, -0.00825293},
-{0.0287814, 0.0501171, -0.0157926},
-{0.0256197, 0.0485542, -0.0190548},
-{-0.00863537, 0.118406, -0.0146114},
-{-0.0148322, 0.117675, -0.014701},
-{-0.0615138, 0.145712, -0.00481276},
-{0.0232531, 0.12083, -0.00456186},
-{-0.0401535, 0.0342718, -0.0275149},
-{0.0302657, 0.0496868, -0.0107289},
-{0.0320066, 0.111334, -0.00737407},
-{-0.0211003, 0.120417, -0.0102482},
-{-0.0204991, 0.117125, -0.0140803},
-{-0.00910263, 0.0383602, -0.025776},
-{-0.0525144, 0.11229, -0.0171034},
-{0.0202353, 0.123713, -0.00247094},
-{-0.0701749, 0.0347541, -0.0017891},
-{-0.00340266, 0.114844, -0.0176928},
-{0.0310248, 0.053713, -0.0140522},
-{0.0268191, 0.0528482, -0.020339},
-{-0.0147458, 0.120673, -0.0105853},
-{0.0270905, 0.106214, -0.0146756},
-{0.0465541, 0.0697991, 0.00228503},
-{-0.00300122, 0.100676, -0.0235814},
-{-0.0755874, 0.076212, 0.033468},
-{0.059738, 0.0572998, 0.0151736},
-{0.0595394, 0.0578717, 0.00861672},
-{0.0572091, 0.0580526, 0.00253507},
-{-0.0142907, 0.123147, -0.00746744},
-{0.0211831, 0.112303, -0.0140834},
-{0.0347455, 0.0565046, -0.010714},
-{0.0249138, 0.0825163, -0.0245877},
-{-0.0382227, 0.114521, -0.016178},
-{-0.0819485, 0.0761672, 0.0208322},
-{-0.0269557, 0.0392251, -0.0293943},
-{0.0377037, 0.0593401, -0.00852013},
-{0.0330295, 0.0586306, -0.014729},
-{0.0218121, 0.0515865, -0.0236492},
-{-0.0204953, 0.0935908, -0.0331675},
-{-0.0872217, 0.113521, 0.0440666},
-{-0.0271537, 0.0351608, 0.0509267},
-{-0.0503825, 0.106302, -0.0194598},
-{0.0266611, 0.0585067, -0.0219134},
-{0.00975018, 0.0945932, -0.0280451},
-{-0.0205524, 0.122391, -0.00754739},
-{-0.0668021, 0.0909191, -0.0174744},
-{-0.0856155, 0.0942099, -0.00109094},
-{-0.0915274, 0.11444, 0.0204492},
-{-0.0909048, 0.131701, 0.00809159},
-{0.0404851, 0.0578886, -0.0051698},
-{0.0295964, 0.0580473, -0.0178274},
-{0.0266986, 0.0941359, -0.0205949},
-{-0.0677104, 0.172869, -0.0572602},
-{0.0142001, 0.118043, -0.013917},
-{-0.0698171, 0.0699687, 0.0326375},
-{0.0607097, 0.0648802, 0.0151632},
-{0.0609346, 0.0630505, 0.0131585},
-{0.0602205, 0.0643718, 0.00864139},
-{0.0574055, 0.0638877, 0.00271573},
-{-0.0797793, 0.103858, -0.00660016},
-{-0.0563867, 0.137359, -0.00421998},
-{0.0344512, 0.0638263, -0.0152012},
-{0.0307139, 0.0605317, -0.0184589},
-{0.0185684, 0.121789, -0.00725624},
-{-0.0456617, 0.112414, -0.0169658},
-{0.0456177, 0.0644845, -0.00162168},
-{-0.0584268, 0.0349015, 0.0441202},
-{-0.0747982, 0.0723674, 0.0308514},
-{-0.0699373, 0.0621854, 0.0151778},
-{-0.052889, 0.136519, -0.00170821},
-{0.0410205, 0.0644886, -0.00476733},
-{0.0388712, 0.0646166, -0.00976797},
-{0.0514871, 0.0637279, -0.00174794},
-{-0.0787297, 0.0744551, 0.0267421},
-{-0.0850281, 0.144269, 0.00618082},
-{0.0313094, 0.064487, -0.0188936},
-{0.0267274, 0.0646171, -0.0220842},
-{0.0318737, 0.0877439, -0.0192705},
-{-0.0772455, 0.143995, -0.00470939},
-{0.0132576, 0.110443, -0.0183541},
-{-0.00289343, 0.124723, -0.00863032},
-{-0.0342868, 0.038582, 0.0485461},
-{0.0200397, 0.0876233, -0.0261205},
-{0.0585453, 0.0705354, 0.0146976},
-{0.0581405, 0.0699819, 0.00856199},
-{0.056099, 0.069436, 0.00424359},
-{0.0370479, 0.0665186, -0.0132637},
-{-0.062561, 0.172971, -0.0616721},
-{-0.0702718, 0.15494, -0.0455472},
-{-0.0916259, 0.130499, 0.00930481},
-{-0.070021, 0.148229, -0.0328231},
-{-0.0721274, 0.0680183, 0.0267753},
-{-0.0745337, 0.15067, -0.0264303},
-{0.0431087, 0.0713461, -0.002764},
-{0.0421659, 0.0692525, -0.00466106},
-{0.0345404, 0.0699378, -0.0160391},
-{-0.0342368, 0.122912, -0.00708584},
-{0.0401518, 0.070932, -0.00951127},
-{0.0370706, 0.0707408, -0.013301},
-{0.0310856, 0.0702175, -0.0192905},
-{0.0283004, 0.0705453, -0.0222447},
-{-0.00859023, 0.101699, -0.0237897},
-{-0.0328234, 0.0400139, -0.029875},
-{-0.0830588, 0.11047, 0.0397334},
-{0.0142724, 0.123237, -0.00806485},
-{-0.0760443, 0.108637, 0.0389078},
-{-0.0732762, 0.154939, -0.0321392},
-{0.0160324, 0.0889232, -0.0282477},
-{-0.0901677, 0.131361, 0.0394374},
-{0.0455828, 0.0768365, 0.00270178},
-{-0.0516717, 0.0553965, 0.014906},
-{-0.0376545, 0.121002, -0.0109724},
-{0.0466318, 0.0762885, 0.00910629},
-{0.0437303, 0.0769241, -0.00295564},
-{0.0405043, 0.0766784, -0.0084913},
-{0.0369463, 0.0762836, -0.0128837},
-{0.0349351, 0.0766648, -0.0155944},
-{0.0319237, 0.0763904, -0.0194186},
-{0.0285208, 0.0758075, -0.0225233},
-{-0.0646857, 0.068809, 0.0348219},
-{-0.00335573, 0.0986136, -0.0269283},
-{-0.0383606, 0.100112, -0.0217661},
-{-0.0705433, 0.149897, -0.0387319},
-{-0.0247871, 0.179215, -0.0188356},
-{0.00339058, 0.0937023, -0.0318365},
-{-0.09099, 0.142689, 0.0226645},
-{-0.0851088, 0.102115, 0.000391121},
-{0.00299202, 0.124707, -0.00864775},
-{-0.0649459, 0.167336, -0.0329944},
-{0.045975, 0.0827243, 0.0146716},
-{0.0461931, 0.0827376, 0.00867911},
-{0.0453461, 0.0826602, 0.00269811},
-{0.032594, 0.082231, -0.0190597},
-{-0.0707752, 0.142011, -0.00901143},
-{-0.0396694, 0.045239, -0.0210351},
-{-0.0736488, 0.145787, -0.0131048},
-{-0.0661855, 0.1779, -0.0529018},
-{-0.0698006, 0.179227, -0.0517285},
-{-0.0719677, 0.177848, -0.0474604},
-{-0.0131817, 0.0974247, 0.0509808},
-{-0.0760529, 0.177651, -0.0471457},
-{-0.0875274, 0.149451, 0.00937476},
-{-0.0847504, 0.149536, 0.00652369},
-{-0.0853843, 0.0980412, -0.000554198},
-{-0.070162, 0.172945, -0.0393132},
-{-0.0669053, 0.17136, -0.0404187},
-{-0.0915765, 0.114644, 0.0108349},
-{0.0311175, 0.116345, -0.00142056},
-{-0.09039, 0.144074, 0.0142555},
-{0.0533752, 0.0724173, 0.00805773},
-{0.0348115, 0.113636, 0.00289967},
-{0.0321047, 0.117128, 0.00373672},
-{-0.0558554, 0.16013, 0.00226313},
-{0.0284127, 0.12005, 0.00266093},
-{-0.0693417, 0.151526, -0.0443255},
-{0.0509143, 0.0733396, 0.0112131},
-{0.0485286, 0.0726358, 0.00856732},
-{0.0251471, 0.122517, 0.00254898},
-{-0.0684168, 0.170157, -0.0319531},
-{-0.071028, 0.171274, -0.0325886},
-{-0.0765634, 0.155757, -0.00874762},
-{0.0525206, 0.0734678, 0.0148876},
-{0.035521, 0.113454, 0.00908801},
-{0.0208324, 0.125627, 0.00327965},
-{-0.0476722, 0.134348, 0.0194434},
-{-0.0746083, 0.171229, -0.0326516},
-{0.0322027, 0.117616, 0.0093642},
-{0.0162523, 0.127588, 0.00132734},
-{-0.0914669, 0.142805, 0.0167223},
-{0.0290775, 0.120474, 0.00686894},
-{0.0135909, 0.12914, 0.00336546},
-{-0.0861635, 0.100458, 0.025719},
-{-0.0653051, 0.165945, -0.0269849},
-{-0.0698492, 0.16889, -0.0268648},
-{-0.07827, 0.167473, -0.032496},
-{0.0215557, 0.0945234, -0.0226594},
-{0.0260612, 0.123082, 0.00873766},
-{0.00920342, 0.130081, 0.00248247},
-{-0.0709934, 0.170517, -0.0295248},
-{-0.0760202, 0.167938, -0.0272636},
-{0.0525229, 0.0716654, 0.0211203},
-{0.0207167, 0.126566, 0.00922145},
-{-0.0746025, 0.0998033, -0.0126456},
-{-0.0864333, 0.0890874, 0.0257055},
-{0.0354941, 0.113435, 0.0150848},
-{0.0320737, 0.117698, 0.0146262},
-{0.00294754, 0.130714, 0.00292443},
-{-0.0256391, 0.0823957, 0.0519489},
-{-0.0666258, 0.165416, -0.0221631},
-{-0.0804177, 0.153092, 0.00488677},
-{-0.0645623, 0.0350017, 0.0151892},
-{-0.0627936, 0.0352479, 0.02012},
-{-0.0642932, 0.0349381, 0.0264604},
-{-0.0642421, 0.0397497, 0.0267659},
-{-0.0652419, 0.0352202, 0.0324357},
-{-0.06432, 0.0352261, 0.0387914},
-{-0.0869014, 0.0944088, 0.0260869},
-{-0.026376, 0.100403, -0.0237519},
-{-0.0704394, 0.0348288, 0.00888692},
-{-0.0696375, 0.039673, 0.0091864},
-{-0.0678064, 0.035728, 0.013362},
-{-0.0778433, 0.0819732, 0.0354617},
-{-0.0809318, 0.0827942, 0.0325},
-{-0.0712316, 0.038974, 0.00275642},
-{-0.0616101, 0.0379618, 0.0219344},
-{-0.0653778, 0.0407054, 0.0323415},
-{-0.0612949, 0.040108, 0.0438783},
-{-0.0748891, 0.0826916, 0.0381154},
-{-0.0841641, 0.133769, 0.0486564},
-{-0.0849106, 0.0945271, 0.0290479},
-{-0.082994, 0.144712, 0.0404065},
-{-0.0265479, 0.117619, -0.0132781},
-{-0.0679678, 0.0383221, 0.0123903},
-{-0.0639259, 0.0401146, 0.0151101},
-{-0.0588527, 0.0407802, 0.0202136},
-{-0.0869621, 0.135589, 0.0440584},
-{-0.038827, 0.0398484, 0.042564},
-{-0.0253238, 0.0773437, 0.0501603},
-{0.00864855, 0.111878, -0.0192252},
-{-0.0625014, 0.04424, 0.0388616},
-{-0.088493, 0.125258, 0.0461673},
-{0.0150785, 0.10107, -0.0220372},
-{-0.0810533, 0.0876325, 0.0334622},
-{-0.0636602, 0.0439221, 0.0322355},
-{-0.0823757, 0.12585, -0.00459555},
-{-0.0374554, 0.042873, 0.0429512},
-{-0.031328, 0.0432863, 0.0501185},
-{-0.0841802, 0.0875016, 0.0285815},
-{-0.0690099, 0.0427216, 0.00298087},
-{-0.0690323, 0.0427133, 0.00739115},
-{-0.0642007, 0.0449178, 0.00895163},
-{-0.0630005, 0.0427497, 0.0133004},
-{-0.0580777, 0.0444032, 0.0143596},
-{-0.087476, 0.130712, 0.0458544},
-{-0.0837712, 0.0999337, 0.029339},
-{-0.083719, 0.0822846, 0.0270932},
-{-0.0209183, 0.0934772, 0.0512134},
-{-0.0868983, 0.142651, 0.0383505},
-{-0.0588984, 0.0467651, 0.00989959},
-{-0.0529144, 0.0464475, 0.0158024},
-{-0.0881654, 0.0882094, 0.0209192},
-{-0.0494075, 0.165901, 0.000731671},
-{-0.0586114, 0.0473978, 0.0337061},
-{-0.05614, 0.0517476, 0.00835186},
-{-0.0865231, 0.148073, 0.0321271},
-{-0.0308497, 0.0493297, 0.0429654},
-{-0.0769102, 0.114994, 0.0501188},
-{-0.0209065, 0.0959579, 0.0474195},
-{-0.0509947, 0.0509637, 0.0150799},
-{0.00842415, 0.0889657, -0.0320537},
-{-0.0240561, 0.0544386, 0.0416973},
-{-0.0510392, 0.0524223, 0.0203213},
-{-0.0526208, 0.0518271, 0.027021},
-{-0.0504022, 0.0591186, 0.0326891},
-{-0.0478821, 0.0590694, 0.0363134},
-{-0.0239128, 0.0586553, 0.0421308},
-{-0.0759314, 0.119228, -0.00697007},
-{-0.0183181, 0.0604564, 0.0506182},
-{-0.0298441, 0.0972531, -0.0235715},
-{-0.0241926, 0.0628773, 0.0422936},
-{-0.0223998, 0.06467, 0.045979},
-{-0.0192899, 0.0641483, 0.0503928},
-{-0.0260109, 0.172925, -0.0191453},
-{-0.0265331, 0.161574, -0.0144318},
-{-0.0558556, 0.15572, -0.00121016},
-{-0.0599028, 0.136466, -0.0064456},
-{-0.063538, 0.071665, 0.0379463},
-{-0.0200417, 0.0869862, -0.0378876},
-{-0.0557176, 0.105745, -0.0186241},
-{-0.0530691, 0.143914, -0.00100898},
-{-0.0256688, 0.0704637, 0.0438935},
-{-0.0235577, 0.0693774, 0.0470203},
-{-0.0525759, 0.127247, -0.00521525},
-{-0.0787859, 0.131858, -0.00545913},
-{-0.0580212, 0.120088, -0.0102747},
-{-0.0396294, 0.110441, -0.0186258},
-{-0.0210282, 0.173113, -0.0214922},
-{-0.0547593, 0.0563289, 0.0107147},
-{-0.0435534, 0.0345758, -0.024752},
-{-0.0449833, 0.0346921, -0.0207483},
-{-0.0443576, 0.0390403, -0.0217491},
-{-0.0462855, 0.0345037, -0.0153112},
-{-0.046619, 0.0396457, -0.0141457},
-{-0.00904923, 0.0343826, -0.0246429},
-{0.00311748, 0.100303, -0.0227929},
-{-0.0690809, 0.0392217, -0.00181724},
-{-0.0920289, 0.131041, 0.0262349},
-{-0.043414, 0.0372487, -0.0253064},
-{0.0280974, 0.0818294, -0.0220931},
-{-0.067702, 0.169446, -0.0560134},
-{-0.0915377, 0.129674, 0.0312365},
-{-0.0663086, 0.0411162, -0.00443149},
-{-0.0731255, 0.151935, -0.0368879},
-{-0.0390145, 0.0394889, -0.027598},
-{-0.0637372, 0.0437827, -0.00264533},
-{-0.0605427, 0.0425565, 0.0246975},
-{-0.0857603, 0.130763, -0.000714461},
-{-0.0520472, 0.0403573, -0.0107411},
-{-0.0568522, 0.0434504, 0.0224413},
-{-0.043239, 0.0429342, -0.0193166},
-{-0.0438787, 0.0441322, -0.0144222},
-{-0.0457505, 0.046486, -0.0105694},
-{-0.0645938, 0.0456897, 0.00313082},
-{-0.0525978, 0.0464843, 0.0207116},
-{-0.0572578, 0.0459489, 0.026887},
-{-0.0618962, 0.0443648, 0.0286813},
-{-0.0331467, 0.0453179, -0.0267282},
-{-0.0377669, 0.0443547, -0.0252099},
-{-0.0320922, 0.114425, -0.0162304},
-{-0.0578027, 0.0470669, -0.0032674},
-{-0.0914954, 0.147994, 0.0205137},
-{-0.0400067, 0.0471536, -0.0151042},
-{0.00454895, 0.121869, -0.0124797},
-{0.0151282, 0.112708, -0.0165496},
-{-0.0525787, 0.0463291, -0.00775444},
-{-0.0599276, 0.0475112, 0.00267117},
-{-0.0726458, 0.147126, -0.0218625},
-{-0.0740924, 0.168686, -0.0440312},
-{-0.057494, 0.0515426, 0.00319413},
-{-0.0536918, 0.0483048, 0.0264945},
-{-0.0147156, 0.114453, -0.0172255},
-{-0.0335191, 0.0480424, -0.021246},
-{0.019461, 0.0924333, -0.0244344},
-{0.0169402, 0.0952065, -0.0238278},
-{0.0201047, 0.104156, -0.0188197},
-{-0.0319642, 0.0516657, -0.0152509},
-{-0.0368448, 0.0488256, -0.0131071},
-{-0.0391265, 0.0518909, -0.0109467},
-{-0.00892221, 0.111576, -0.0202733},
-{-0.0515659, 0.0515158, -0.00751393},
-{-0.0557028, 0.05294, -0.00268598},
-{-0.0293421, 0.0526398, -0.0213991},
-{-0.0314453, 0.0496351, -0.0193539},
-{0.0322381, 0.10409, -0.0128482},
-{-0.0261025, 0.0525801, -0.0264669},
-{-0.0583031, 0.116733, -0.0130038},
-{-0.014851, 0.111599, -0.0191484},
-{-0.0521348, 0.118189, -0.0137451},
-{-0.0517493, 0.0582798, -0.00896954},
-{-0.0561982, 0.0582462, -0.00310645},
-{-0.0587989, 0.0586119, 0.00276734},
-{-0.0585564, 0.0578416, 0.00857596},
-{0.019026, 0.11614, -0.0131686},
-{-0.0211893, 0.111662, -0.0190883},
-{-0.0239176, 0.0561149, -0.030057},
-{-0.0272603, 0.058548, -0.027478},
-{-0.0295766, 0.0582799, -0.0217551},
-{-0.0320928, 0.0589382, -0.0147618},
-{0.0073938, 0.121789, -0.0126555},
-{-0.0251946, 0.0595227, -0.0308632},
-{-0.0307167, 0.06013, -0.0194181},
-{-0.0650113, 0.0632174, -0.00293095},
-{-0.0696479, 0.065751, -0.00198101},
-{-0.0699926, 0.0635013, 0.00374106},
-{-0.0799435, 0.0724812, 0.0191514},
-{-0.0676844, 0.160922, -0.0559942},
-{-0.0215435, 0.0636559, -0.0350431},
-{-0.0258325, 0.0648252, -0.0322087},
-{-0.028982, 0.0636438, -0.0274997},
-{-0.0304226, 0.0629368, -0.0224261},
-{-0.0319042, 0.0651819, -0.0201942},
-{-0.0332741, 0.0636337, -0.0160032},
-{-0.0205547, 0.034111, -0.026401},
-{-0.0743367, 0.0658286, 0.00833126},
-{0.016103, 0.120745, -0.0103843},
-{-0.0770212, 0.0700544, 0.00316631},
-{-0.0748219, 0.06693, 0.00451345},
-{-0.0306317, 0.0657524, -0.025453},
-{-0.0711433, 0.0687078, -0.00390291},
-{-0.0762625, 0.0716316, -0.00295918},
-{-0.0802204, 0.0713935, 0.00991267},
-{-0.0913413, 0.148143, 0.0161458},
-{-0.0273736, 0.0700052, -0.0335323},
-{-0.0300274, 0.0692073, -0.0289677},
-{-0.0316277, 0.0711218, -0.0266514},
-{-0.0330629, 0.0699765, -0.0212743},
-{-0.0353642, 0.0705896, -0.0177097},
-{-0.0587004, 0.0391044, -0.0090027},
-{-0.0697696, 0.0703857, -0.00808666},
-{-0.0804832, 0.0726462, 0.00472466},
-{0.0151616, 0.126104, -0.00266395},
-{-0.0745721, 0.072883, -0.00757069},
-{-0.0823908, 0.076277, 0.00270117},
-{-0.0912831, 0.133698, 0.0142161},
-{0.00371049, 0.0968817, -0.0280931},
-{-0.0761392, 0.0766258, -0.00859487},
-{-0.0784749, 0.0748827, -0.00523624},
-{-0.0806781, 0.0771902, -0.00290803},
-{-0.0834622, 0.0765209, 0.00927112},
-{0.00983826, 0.11402, -0.0178612},
-{0.00210649, 0.0981565, -0.0261244},
-{-0.0285085, 0.0757575, -0.0348118},
-{-0.0330874, 0.0761249, -0.0270661},
-{-0.0346568, 0.0757906, -0.0215029},
-{0.0231104, 0.0892807, -0.0240236},
-{-0.0312132, 0.0771357, -0.0320416},
-{-0.0700425, 0.0763633, -0.0141464},
-{-0.0861137, 0.0814707, 0.00908143},
-{-0.086319, 0.08152, 0.0149936},
-{-0.0208042, 0.0963182, -0.0270563},
-{-0.0211078, 0.114391, -0.0171285},
-{-0.0746162, 0.0828529, -0.0139325},
-{-0.077295, 0.081216, -0.0100568},
-{-0.0800127, 0.0821605, -0.00722237},
-{-0.0826334, 0.0820868, -0.00324616},
-{-0.0844667, 0.0817669, 0.00249573},
-{-0.0860445, 0.0832591, 0.0203255},
-{-0.084816, 0.0816746, 0.0219849},
-{0.0545549, 0.0661692, 0.000765649},
-{-0.0331604, 0.0828369, -0.0270493},
-{-0.0358028, 0.0829047, -0.0227723},
-{-0.0861942, 0.0842505, 0.00298565},
-{-0.0287072, 0.0827267, -0.0349537},
-{-0.0311601, 0.0822387, -0.0315627},
-{-0.085403, 0.141865, 0.00516647},
-{-0.0785169, 0.0885628, -0.0107607},
-{-0.0807046, 0.0887676, -0.00826584},
-{-0.0843972, 0.0878743, -0.00349923},
-{-0.0855708, 0.0882073, -0.00109946},
-{-0.0876157, 0.0881286, 0.00369184},
-{-0.0885339, 0.0876942, 0.00897158},
-{-0.0885791, 0.0877213, 0.0149616},
-{-0.0643854, 0.0348576, -0.00775085},
-{-0.0512932, 0.034227, -0.0129013},
-{-0.0266839, 0.0458556, -0.027274},
-{-0.0146368, 0.0981541, -0.0264318},
-{-0.0213468, 0.10077, -0.0239588},
-{0.020932, 0.0825954, -0.0267347},
-{0.00759225, 0.0928541, -0.0309237},
-{-0.0144478, 0.0879274, -0.0380297},
-{-0.00859724, 0.11451, -0.0173132},
-{0.0264818, 0.109935, -0.0126182},
-{-0.0145855, 0.0385179, -0.0267991},
-{-0.0330054, 0.0337044, -0.0272991},
-{-0.0267872, 0.0340475, -0.0271901},
-{-0.00849157, 0.0985859, -0.0270535},
-{-0.0110954, 0.120824, -0.0120135},
-{0.0367379, 0.0925992, -0.0129888},
-{-0.0571635, 0.0435755, -0.00717607},
-{-0.0193328, 0.0979251, -0.024792},
-{-0.0203798, 0.0385467, -0.0283088},
-{-0.0587681, 0.0337133, -0.00871891},
-{-0.0517919, 0.100655, -0.0213258},
-{0.00702627, 0.0978418, -0.0246055},
-{-0.0148892, 0.126068, -0.00252126},
-{0.0307578, 0.092446, -0.0188519},
-{0.0211049, 0.0578126, -0.0266116},
-{-0.0169237, 0.0970481, -0.0278718},
-{0.0460004, 0.0581866, -0.00508589},
-{-0.00944331, 0.0822271, -0.0381067},
-{-0.0635881, 0.0392124, -0.00717766},
-{0.00864227, 0.0386371, -0.0233053},
-{0.0252935, 0.0769557, -0.0248407},
-{-0.0229653, 0.0895159, -0.036199},
-{-0.0523791, 0.0341193, -0.00994653},
-{0.0211693, 0.0643935, -0.0268578},
-{-0.0515867, 0.13164, -0.0028092},
-{-0.0149669, 0.0345529, -0.0254273},
-{-0.0161167, 0.127288, 0.00169291},
-{-0.0469232, 0.128515, -0.00163965},
-{-0.00961381, 0.127158, -0.00378809},
-{-0.0074566, 0.128562, -0.00130751},
-{-0.00304493, 0.128909, -0.00174857},
-{0.0028379, 0.129022, -0.00194723},
-{0.00903363, 0.128674, -0.00165013},
-{-0.0561607, 0.131588, -0.00571429},
-{-0.0457551, 0.127167, -0.00484962},
-{-0.00304746, 0.127678, -0.00456004},
-{0.00303811, 0.12768, -0.00442},
-{0.0101526, 0.126812, -0.00466464},
-{-0.0553259, 0.126836, -0.00601308},
-{0.00799473, 0.034846, -0.0206913},
-{0.0027179, 0.0342191, -0.0204737},
-{-0.00295804, 0.0342418, -0.0216222},
-{0.0134674, 0.0353221, -0.0196961},
-{0.00440963, 0.0383063, -0.0240776},
-{0.00140752, 0.0383474, -0.0246147},
-{-0.00309177, 0.0383877, -0.0251866},
-{-0.0575023, 0.100661, -0.0195211},
-{-0.0485739, 0.15316, -0.00547278},
-{-0.0646573, 0.0334831, -0.00296009},
-{-0.0640796, 0.100426, -0.0173936},
-{-0.0704415, 0.100139, -0.0146037},
-{-0.0326376, 0.155806, -0.00949884},
-{0.0336094, 0.0373624, 0.00273412},
-{0.0320943, 0.0397885, -0.00195136},
-{0.0158502, 0.0449602, -0.0237212},
-{0.00889467, 0.0426449, -0.0242659},
-{0.00312499, 0.0452721, -0.026588},
-{-0.00298345, 0.044686, -0.0272222},
-{-0.00912346, 0.0448524, -0.0280671},
-{-0.0145351, 0.0443266, -0.0277771},
-{-0.0209223, 0.0460913, -0.0281918},
-{0.034052, 0.0448434, -0.00540113},
-{-0.0312646, 0.158257, -0.01223},
-{0.0401509, 0.0448981, -0.00354586},
-{0.0143253, 0.0473484, -0.0251513},
-{0.00937888, 0.0466526, -0.0261685},
-{-0.0766531, 0.0695423, 0.0207982},
-{0.0087246, 0.0517916, -0.0291615},
-{0.00299372, 0.0506927, -0.0298557},
-{-0.00164566, 0.0489436, -0.0304144},
-{-0.00321397, 0.0522596, -0.0314075},
-{-0.00915341, 0.0509217, -0.0318681},
-{-0.0146018, 0.0513752, -0.0319045},
-{-0.0161558, 0.0488543, -0.0303763},
-{-0.0205843, 0.0508011, -0.0296435},
-{0.0405252, 0.0518855, -0.00654453},
-{0.0149309, 0.0520772, -0.0273859},
-{0.041884, 0.0490868, -0.00604367},
-{0.019962, 0.0529908, -0.0261219},
-{-0.0198501, 0.0534234, -0.0312267},
-{-0.0336273, 0.0527187, -0.0106243},
-{-0.0461112, 0.0529158, -0.0101664},
-{-0.0204, 0.161875, -0.014658},
-{0.0449924, 0.0530898, -0.00614891},
-{0.00733679, 0.0546532, -0.0305038},
-{0.00283568, 0.0546532, -0.0307468},
-{-0.00302245, 0.0577, -0.0331477},
-{-0.00914668, 0.0576676, -0.0341165},
-{-0.01517, 0.058199, -0.0349877},
-{-0.0202707, 0.0581031, -0.0333681},
-{0.0140844, 0.057965, -0.028983},
-{0.0103301, 0.0588553, -0.0299472},
-{0.00732823, 0.0588898, -0.0306117},
-{0.0027369, 0.0590151, -0.0321928},
-{-0.0337187, 0.0579742, -0.0115824},
-{-0.0390711, 0.0582467, -0.0115033},
-{-0.0460474, 0.0579124, -0.0115174},
-{-0.00961439, 0.0642168, -0.0358564},
-{-0.044157, 0.0599825, -0.0123877},
-{0.015251, 0.0645803, -0.029567},
-{0.00839294, 0.0649214, -0.0316957},
-{0.00325858, 0.0643529, -0.0332439},
-{-0.00361257, 0.0645861, -0.034907},
-{-0.0144709, 0.065006, -0.0371603},
-{-0.0366623, 0.060679, -0.0122791},
-{-0.0526404, 0.0636402, -0.0101297},
-{-0.0381866, 0.0648919, -0.0142073},
-{-0.0452495, 0.0647856, -0.0139819},
-{-0.0599262, 0.0622966, -0.00429285},
-{-0.0778641, 0.117463, -0.00576778},
-{-0.0187447, 0.0664151, -0.0374779},
-{-0.0577616, 0.0644884, -0.00779097},
-{-0.0625778, 0.0655353, -0.00741131},
-{0.0251088, 0.0710945, -0.0248604},
-{0.021457, 0.0702729, -0.0273415},
-{0.0166747, 0.0701586, -0.0297203},
-{0.0132745, 0.0702643, -0.0312074},
-{0.00867525, 0.0703509, -0.0324278},
-{0.00229643, 0.0708694, -0.0343123},
-{-0.0030646, 0.070381, -0.0353565},
-{-0.00773679, 0.0691749, -0.0362051},
-{-0.0101988, 0.0715122, -0.0373778},
-{-0.0147454, 0.0704429, -0.0382943},
-{-0.0203984, 0.0706516, -0.038158},
-{-0.0240967, 0.0693418, -0.0362521},
-{-0.0605175, 0.0673597, -0.0108259},
-{-0.0387293, 0.0706355, -0.0168457},
-{-0.0451347, 0.0705064, -0.0164504},
-{-0.0523435, 0.0697862, -0.0145984},
-{-0.0591515, 0.0702891, -0.0147203},
-{-0.0652515, 0.0688492, -0.00993982},
-{-0.0247614, 0.0719777, -0.0368317},
-{-0.0637884, 0.0712697, -0.0138535},
-{0.0211454, 0.0769268, -0.0268772},
-{0.0162128, 0.0765268, -0.0293784},
-{0.0133247, 0.0760196, -0.0306715},
-{0.00907695, 0.076038, -0.0330382},
-{0.00245085, 0.0760857, -0.0351615},
-{-0.00176321, 0.0762288, -0.0360688},
-{-0.00476487, 0.076286, -0.0369742},
-{-0.00962992, 0.0765936, -0.0378651},
-{-0.0144481, 0.0764118, -0.0385775},
-{-0.021453, 0.0763574, -0.038668},
-{-0.024977, 0.0762484, -0.0374518},
-{-0.0377453, 0.0766164, -0.0189124},
-{-0.0397395, 0.0746623, -0.0180255},
-{-0.0437423, 0.0765905, -0.0187922},
-{-0.0466377, 0.0744845, -0.0173668},
-{-0.0518623, 0.0745812, -0.0175084},
-{-0.0589866, 0.0745368, -0.01766},
-{-0.0644081, 0.0756279, -0.0167529},
-{-0.0721295, 0.0740256, -0.0105719},
-{-0.0615233, 0.0354132, 0.043881},
-{-0.0524971, 0.0769872, -0.0189536},
-{-0.0587482, 0.0767445, -0.0187462},
-{0.013102, 0.0809953, -0.0307917},
-{0.00892296, 0.0820652, -0.0325478},
-{0.0022917, 0.0820297, -0.0349279},
-{-0.00177837, 0.0804805, -0.0364471},
-{-0.00379684, 0.0824193, -0.037328},
-{-0.0142988, 0.0820384, -0.0390211},
-{-0.0207708, 0.0823862, -0.0387335},
-{-0.0248089, 0.0818968, -0.0377031},
-{-0.0735819, 0.0777026, -0.0122023},
-{0.015425, 0.0831288, -0.0295207},
-{-0.0383994, 0.0817919, -0.0209596},
-{-0.0451184, 0.0815526, -0.020434},
-{-0.051814, 0.0818472, -0.0211348},
-{-0.0583689, 0.0812724, -0.0202975},
-{-0.063949, 0.082768, -0.0188935},
-{-0.0662709, 0.080065, -0.0177832},
-{-0.0695594, 0.0830593, -0.0170582},
-{-0.00481814, 0.086841, -0.0367951},
-{-0.0248206, 0.0867524, -0.0367639},
-{0.0132046, 0.0871602, -0.0305473},
-{-0.0360837, 0.0867076, -0.023791},
-{-0.00877843, 0.0340556, -0.0204927},
-{-0.0207128, 0.0342382, -0.0208728},
-{-0.0147915, 0.0341096, -0.0207616},
-{-0.0265767, 0.0342963, -0.0210989},
-{0.00282685, 0.0351053, -0.0158136},
-{0.00885967, 0.034471, -0.0147487},
-{-0.0390848, 0.0337228, -0.0202617},
-{-0.0326656, 0.0345334, -0.0201874},
-{-0.00224535, 0.0351539, -0.0166234},
-{-0.0149096, 0.0357313, -0.0180956},
-{-0.0114808, 0.0353662, -0.0177045},
-{-0.00921575, 0.0380183, -0.0149732},
-{-0.00282494, 0.0382292, -0.0140636},
-{0.00285919, 0.0377324, -0.0134715},
-{0.0159109, 0.0347098, -0.00882204},
-{-0.0306839, 0.036693, -0.0184598},
-{-0.0265216, 0.0367471, -0.0188177},
-{-0.0218341, 0.0369718, -0.0184303},
-{-0.0203027, 0.0382765, -0.0152577},
-{-0.0152596, 0.0382328, -0.0156428},
-{0.00738356, 0.0366172, -0.0125003},
-{0.00992361, 0.0351979, -0.00924624},
-{0.00702596, 0.0378387, -0.00879015},
-{-0.0396958, 0.0342843, -0.014578},
-{-0.0329517, 0.0382154, -0.014678},
-{-0.0263862, 0.0385778, -0.0153644},
-{0.00320835, 0.0389424, -0.00953857},
-{-0.0364387, 0.0357946, -0.0155844},
-{-0.00301526, 0.0391061, -0.00886496},
-{0.00831664, 0.0348156, -0.00321961},
-{0.0145039, 0.0343685, -0.0028433},
-{-0.0365752, 0.0370276, -0.0136534},
-{-0.0146234, 0.0388055, -0.00887465},
-{-0.00886749, 0.0389394, -0.00890173},
-{-0.0451032, 0.0336721, -0.00848668},
-{-0.040313, 0.0350801, -0.00861758},
-{-0.0206235, 0.0386, -0.00878063},
-{0.00267879, 0.038424, -0.00319748},
-{0.015044, 0.0350517, 0.00289039},
-{0.0201479, 0.0347806, 0.00348327},
-{0.027119, 0.0353514, 0.00366834},
-{0.0280785, 0.0365531, 0.000826759},
-{-0.0376066, 0.0375692, -0.00942418},
-{-0.0332748, 0.0384549, -0.00855692},
-{-0.0264541, 0.0384497, -0.00886193},
-{-0.00299262, 0.0389582, -0.00292437},
-{0.00451408, 0.0356078, -0.00103635},
-{0.00881079, 0.0350428, 0.00356828},
-{0.0314184, 0.0360255, 0.00457907},
-{-0.00888202, 0.0387884, -0.00299409},
-{0.00271787, 0.0349091, 0.00339755},
-{-0.041199, 0.0341471, -0.00327644},
-{-0.0205479, 0.0384259, -0.00283766},
-{-0.0146618, 0.0385908, -0.00288739},
-{0.00103528, 0.0375917, 0.000952222},
-{0.0215747, 0.0354906, 0.0086194},
-{0.0264794, 0.0346514, 0.00870654},
-{0.0322391, 0.0355412, 0.00882378},
-{-0.0521057, 0.0334794, -0.00318207},
-{-0.0455078, 0.0336572, -0.00225818},
-{-0.0334104, 0.0383259, -0.00292317},
-{-0.0265122, 0.0383343, -0.00296504},
-{-0.00224847, 0.0383354, 0.00320971},
-{-0.0589386, 0.0334143, -0.00291301},
-{-0.00874044, 0.0385976, 0.00291227},
-{0.00273457, 0.0342734, 0.0088248},
-{0.00621941, 0.0351341, 0.00654928},
-{-0.080018, 0.109279, 0.0373655},
-{-0.0393178, 0.0336443, 0.00354096},
-{-0.0213111, 0.0382973, 0.00334866},
-{-0.0146196, 0.0384265, 0.00290922},
-{-0.00353554, 0.0379644, 0.00874752},
-{0.0276681, 0.0349662, 0.0149532},
-{0.03282, 0.0359255, 0.0147037},
-{0.0389763, 0.0383079, 0.0145025},
-{-0.0523961, 0.0335249, 0.00326874},
-{-0.0462346, 0.0335696, 0.00267776},
-{-0.0277984, 0.0382296, 0.00286126},
-{-0.000947006, 0.0357374, 0.0103469},
-{0.0222276, 0.0358262, 0.0160256},
-{0.0448051, 0.0411192, 0.0150961},
-{-0.0581064, 0.033504, 0.00272997},
-{-0.0352323, 0.0337248, 0.00491425},
-{-0.0312985, 0.0381858, 0.00167702},
-{-0.0088641, 0.03847, 0.00876261},
-{0.0028919, 0.0342894, 0.0147059},
-{-0.0703332, 0.0340583, 0.00286723},
-{-0.0648245, 0.0334924, 0.00301734},
-{-0.0387963, 0.034763, 0.00935652},
-{-0.0332327, 0.0337932, 0.00943608},
-{-0.0203456, 0.0382265, 0.00836296},
-{-0.0152156, 0.0383161, 0.00935801},
-{-0.000385714, 0.0351459, 0.0134171},
-{0.00663645, 0.0342324, 0.0159688},
-{0.0268074, 0.0356469, 0.0204126},
-{0.0309391, 0.0362152, 0.0189937},
-{0.0334119, 0.0376179, 0.0210082},
-{-0.0515734, 0.0338904, 0.00817232},
-{-0.0454999, 0.0352808, 0.00804865},
-{-0.0263229, 0.0380313, 0.00871732},
-{-0.0031858, 0.0377098, 0.014513},
-{0.0211051, 0.0351552, 0.0207004},
-{0.0391983, 0.0395969, 0.0205879},
-{0.0441778, 0.0418755, 0.0204802},
-{-0.0580282, 0.0335624, 0.00918162},
-{-0.00922404, 0.0383488, 0.0150261},
-{0.00313746, 0.0352426, 0.0204176},
-{0.00877508, 0.0346179, 0.020856},
-{0.0468489, 0.0434226, 0.0210936},
-{-0.0648031, 0.0337402, 0.00884817},
-{-0.0338156, 0.0345063, 0.0150293},
-{-0.0149173, 0.0382498, 0.0147214},
-{0.0146344, 0.0345628, 0.0222588},
-{-0.0365655, 0.0357926, 0.0130139},
-{-0.0262153, 0.0376693, 0.0148666},
-{-0.0205165, 0.0381248, 0.0146779},
-{-0.00229335, 0.0382456, 0.020565},
-{0.014723, 0.0347707, 0.0263935},
-{0.0210245, 0.0353476, 0.0265418},
-{0.0250756, 0.0364517, 0.0246847},
-{0.0273584, 0.0381522, 0.0267127},
-{0.0321164, 0.0401984, 0.026762},
-{-0.053829, 0.0335431, 0.0139547},
-{0.00114114, 0.037661, 0.0223414},
-{0.00915473, 0.0353589, 0.0262457},
-{0.0380552, 0.0412819, 0.02589},
-{-0.0588034, 0.0336951, 0.0146283},
-{-0.0339319, 0.0346253, 0.0202274},
-{-0.0152545, 0.0382629, 0.0204704},
-{-0.00888844, 0.0384087, 0.0207206},
-{0.00307272, 0.0384964, 0.0264151},
-{-0.0261643, 0.0378491, 0.0205422},
-{-0.0205429, 0.0381473, 0.0213758},
-{-0.0538188, 0.0335608, 0.0210581},
-{-0.00301594, 0.03875, 0.0263901},
-{0.00756209, 0.0380712, 0.0285007},
-{0.0143741, 0.0348327, 0.0331833},
-{0.0198279, 0.03555, 0.0321213},
-{0.0236875, 0.0373106, 0.0299772},
-{-0.0588476, 0.033906, 0.020465},
-{-0.00882687, 0.0386047, 0.0265705},
-{0.00847025, 0.0383344, 0.0315598},
-{0.0108958, 0.035647, 0.0330663},
-{-0.0366651, 0.0353042, 0.023032},
-{-0.0340084, 0.0344659, 0.0266224},
-{-0.0270447, 0.0379104, 0.0270529},
-{-0.0210471, 0.0383013, 0.026282},
-{-0.0147317, 0.0384888, 0.0265233},
-{-0.0712786, 0.0733348, 0.0355839},
-{-0.0388887, 0.0346255, 0.0265538},
-{0.00290004, 0.0393205, 0.032168},
-{0.0155389, 0.0350901, 0.0393977},
-{0.0195159, 0.0358111, 0.0367948},
-{-0.0589139, 0.0341314, 0.0264586},
-{-0.052234, 0.0340737, 0.0268887},
-{-0.0447866, 0.0339274, 0.0274346},
-{-0.0310127, 0.0369382, 0.02848},
-{-0.00908756, 0.0390146, 0.0330901},
-{-0.00293287, 0.039209, 0.03365},
-{0.00861952, 0.0346654, 0.0391536},
-{-0.0149144, 0.0388312, 0.0324344},
-{0.00392423, 0.0347398, 0.0399064},
-{-0.0657827, 0.0618455, 0.00187562},
-{-0.0640051, 0.0606097, 0.00361345},
-{-0.0455164, 0.0345095, 0.0326748},
-{-0.0385699, 0.0344168, 0.033204},
-{-0.0342024, 0.0351611, 0.0325685},
-{-0.0270303, 0.0384799, 0.0326469},
-{-0.0209433, 0.0387397, 0.0332273},
-{-0.0520994, 0.0344582, 0.0326775},
-{-0.0313489, 0.0377268, 0.0321213},
-{-0.00219023, 0.0348305, 0.0410082},
-{0.00818206, 0.0355366, 0.0443043},
-{0.014947, 0.0361331, 0.0431407},
-{-0.0642564, 0.0597236, 0.0092932},
-{-0.0584732, 0.0343588, 0.0331559},
-{-0.0145859, 0.0393004, 0.0380317},
-{-0.00937548, 0.0394517, 0.037871},
-{-0.0588297, 0.0579582, 0.0145443},
-{-0.038732, 0.0346956, 0.0400227},
-{-0.0331487, 0.034492, 0.0390527},
-{-0.0201914, 0.0391628, 0.0381696},
-{-0.00878985, 0.0348233, 0.0452949},
-{-0.0031441, 0.0351515, 0.045825},
-{-0.0701619, 0.0622789, 0.00863964},
-{-0.0451191, 0.034688, 0.0396457},
-{-0.0256628, 0.0389081, 0.0373249},
-{-0.0146115, 0.0348173, 0.0458198},
-{-0.0636462, 0.0593677, 0.014889},
-{-0.0531671, 0.0345191, 0.0391729},
-{-0.0595372, 0.034497, 0.0397515},
-{-0.0329555, 0.0349777, 0.045552},
-{-0.0262436, 0.034809, 0.0452831},
-{-0.0215554, 0.0348112, 0.0459347},
-{-0.0633407, 0.0601272, 0.0190813},
-{-0.0471, 0.0351015, 0.0434178},
-{-0.0120723, 0.0353434, 0.0494553},
-{-0.016313, 0.0351836, 0.0504037},
-{-0.0483699, 0.146034, -0.00115148},
-{-0.0264335, 0.156562, -0.00835956},
-{-0.065003, 0.144791, -0.0142909},
-{-0.066228, 0.151547, -0.0394609},
-{-0.0663323, 0.145309, -0.018858},
-{-0.0412403, 0.152108, -0.00674014}
-};
+float bunny[][3] = { { -0.0369122, 0.127512, 0.00276757 },       { -0.0457707, 0.130327, 0.00306785 },
+                                        { -0.0708847, 0.149834, 0.0388672 },     { -0.00331557, 0.130403, 0.0212208 },
+                                        { -0.0211979, 0.1272, 0.00915278 },      { -0.0265255, 0.12592, 0.00874866 },
+                                        { 0.0339261, 0.112038, 0.0269672 },      { 0.0376485, 0.110455, 0.0145481 },
+                                        { -0.0259368, 0.111118, 0.0379115 },     { 0.027952, 0.120939, 0.0215377 },
+                                        { -0.0628308, 0.155987, -0.0150105 },    { 0.0390029, 0.106711, 0.0215202 },
+                                        { 0.0447976, 0.0950477, 0.00866471 },    { -0.0330636, 0.173619, -0.0031267 },
+                                        { -0.0808069, 0.136243, 0.0495014 },     { -0.0705086, 0.12445, 0.0526685 },
+                                        { 0.00874873, 0.131225, 0.0145345 },     { 0.0401015, 0.106711, 0.00874166 },
+                                        { 0.0379483, 0.100145, -0.00827134 },    { -0.0906538, 0.137201, 0.0207305 },
+                                        { -0.0841655, 0.110667, 0.0275273 },     { -0.0705214, 0.156214, 0.0144536 },
+                                        { -0.083872, 0.15212, 0.0282652 },               { 0.00305028, 0.12432, 0.0332425 },
+                                        { 0.00870828, 0.124165, 0.0330348 },     { -0.0328896, 0.12613, 0.00300653 },
+                                        { -0.0506302, 0.143065, 0.0150611 },     { -0.0757863, 0.13637, 0.050172 },
+                                        { -0.0027191, 0.128962, 0.0264678 },     { -0.0460961, 0.125118, 0.0263142 },
+                                        { -0.0785104, 0.0942728, -0.0109192 },   { 0.0216915, 0.125373, 0.0211452 },
+                                        { -0.0888469, 0.124305, 0.00237041 },    { 0.040386, 0.100825, -0.00303043 },
+                                        { -0.0884145, 0.117791, 0.00268555 },    { -0.0319074, 0.177421, -0.00491879 },
+                                        { -0.0765825, 0.143224, 0.0455148 },     { -0.0209748, 0.112544, 0.0388613 },
+                                        { -0.020836, 0.179425, -0.0221622 },     { -0.0377039, 0.167987, -0.0130391 },
+                                        { -0.0331765, 0.12681, 0.00839958 },     { 0.00893926, 0.127114, 0.0292916 },
+                                        { -0.044944, 0.131083, 0.0147963 },      { -0.0266041, 0.12515, 0.00282384 },
+                                        { 0.0144285, 0.12328, 0.0319185 },               { 0.019244, 0.122284, 0.0308314 },
+                                        { -0.0390225, 0.167317, 0.00215527 },    { -0.08808, 0.129976, 0.00206377 },
+                                        { -0.0537203, 0.142608, 0.0266058 },     { 0.043095, 0.0980072, 0.0191617 },
+                                        { 0.0432138, 0.100117, 0.00866473 },     { 0.0415448, 0.0944954, 0.0275695 },
+                                        { -0.0578726, 0.155337, 0.0149245 },     { -0.0231577, 0.157375, -0.0046304 },
+                                        { -0.0683123, 0.145735, 0.0420568 },     { -0.0708351, 0.142847, 0.0451248 },
+                                        { -0.070664, 0.0642894, 0.0209789 },     { -0.0761519, 0.130581, 0.0525324 },
+                                        { -0.0640036, 0.161784, -0.0208118 },    { -0.0706461, 0.155711, 0.00252406 },
+                                        { -0.0924366, 0.118434, 0.0399838 },     { -0.0635349, 0.156052, 0.0148814 },
+                                        { 0.0282675, 0.118192, 0.0274382 },      { 0.0392736, 0.0938857, -0.00915453 },
+                                        { -0.0695973, 0.164844, -0.0174846 },    { -0.00892354, 0.123904, 0.0330319 },
+                                        { 0.0269099, 0.0942476, 0.0444911 },     { -0.0146258, 0.162377, -0.0144398 },
+                                        { -0.0450983, 0.167072, 0.00289327 },    { -0.0761536, 0.172742, -0.0384391 },
+                                        { -0.0858274, 0.105458, 0.00472318 },    { 0.0370431, 0.110443, 0.0207229 },
+                                        { 0.0321593, 0.0994027, 0.0380657 },     { -0.075287, 0.146433, 0.0428582 },
+                                        { -0.0395145, 0.171107, 0.000531747 },   { -0.0839586, 0.11215, 0.00148754 },
+                                        { 0.0446848, 0.0883378, 0.0216285 },     { 0.0161783, 0.127819, 0.0220535 },
+                                        { -0.00251635, 0.0397232, 0.0474087 },   { 0.00303163, 0.0406968, 0.0460422 },
+                                        { -0.0143059, 0.128197, 0.00333856 },    { -0.0526117, 0.155596, 0.0109972 },
+                                        { -0.0332043, 0.17776, -0.00906223 },    { 0.0394391, 0.106654, 0.00306577 },
+                                        { -0.0923799, 0.1249, 0.0327641 },               { 0.0454681, 0.0882959, 0.0146642 },
+                                        { -0.0274495, 0.179802, -0.00925837 },   { -0.072504, 0.146297, 0.0429682 },
+                                        { -0.0579959, 0.129793, 0.0383118 },     { 0.043117, 0.0923689, 0.0251649 },
+                                        { -0.00865718, 0.130323, 0.0149721 },    { -0.0141304, 0.129188, 0.0147431 },
+                                        { -0.0707877, 0.15583, 0.00921954 },     { -0.00952731, 0.127041, 0.0281475 },
+                                        { -0.0646289, 0.153404, 0.0329146 },     { -0.0706939, 0.15347, 0.0328596 },
+                                        { 0.0208126, 0.118434, 0.0336393 },      { -0.0396566, 0.173008, -0.00299705 },
+                                        { -0.0442176, 0.170815, -0.00391429 },   { -0.0582565, 0.0395149, 0.0457796 },
+                                        { -0.0523033, 0.0401501, 0.04623 },      { -0.0760211, 0.161274, -0.0145891 },
+                                        { -0.0693983, 0.163016, -0.0140293 },    { 0.0399663, 0.106491, 0.014952 },
+                                        { 0.041536, 0.0950084, -0.00475737 },    { -0.0470079, 0.163779, 0.00528295 },
+                                        { -0.0402546, 0.161678, 0.00298655 },    { -0.0386569, 0.0389805, 0.0441153 },
+                                        { -0.0704175, 0.166991, -0.0216976 },    { -0.0254201, 0.0886622, 0.0503827 },
+                                        { -0.0886334, 0.137429, 0.00876953 },    { -0.014179, 0.12627, 0.0266417 },
+                                        { -0.0360017, 0.17408, -0.0118959 },     { -0.0886251, 0.0937834, 0.00823534 },
+                                        { -0.0648672, 0.155874, -0.00891497 },   { -0.0704508, 0.137752, -0.00774011 },
+                                        { -0.0750154, 0.166247, -0.0219558 },    { 0.0299465, 0.114869, 0.0300239 },
+                                        { 0.0398138, 0.0998788, 0.0273101 },     { -0.015242, 0.111698, 0.0407424 },
+                                        { -0.0700387, 0.118219, 0.0524379 },     { 0.0149973, 0.112399, 0.0386082 },
+                                        { -0.036487, 0.171225, 0.000545037 },    { -0.0641664, 0.118551, -0.00968333 },
+                                        { -0.071817, 0.166979, -0.0463822 },     { -0.0913559, 0.14534, 0.0246937 },
+                                        { 0.00903703, 0.112569, 0.0396571 },     { 0.0324674, 0.0997396, -0.0141603 },
+                                        { 0.0417911, 0.101845, 0.00188609 },     { 0.00302992, 0.112517, 0.0415434 },
+                                        { -0.0650368, 0.148485, 0.0382561 },     { -0.0706519, 0.13063, 0.0502497 },
+                                        { -0.0144471, 0.128935, 0.00903509 },    { 0.00292575, 0.131541, 0.00912318 },
+                                        { -0.0625682, 0.151125, 0.035875 },      { 0.0349829, 0.113328, 0.0214487 },
+                                        { 0.021327, 0.0385664, 0.0392992 },      { 0.0145125, 0.093771, 0.0501571 },
+                                        { -0.00923752, 0.112849, 0.0413907 },    { 0.0415329, 0.100906, 0.0210277 },
+                                        { 0.0422859, 0.101486, 0.0146614 },      { -0.0773783, 0.112839, -0.00448759 },
+                                        { -0.078035, 0.137641, -0.00517379 },    { 0.00873437, 0.106347, -0.0202193 },
+                                        { 0.0090324, 0.13035, 0.0211569 },               { 0.00301322, 0.130902, 0.0206741 },
+                                        { -0.00286342, 0.13115, 0.0147367 },     { -0.0391578, 0.12569, 0.0207996 },
+                                        { -0.0205725, 0.123523, 0.0265579 },     { -0.0644194, 0.155634, 0.00928477 },
+                                        { -0.0463385, 0.131411, 0.0207671 },     { -0.0532034, 0.0439067, 0.044658 },
+                                        { -0.00297651, 0.131046, 0.00884967 },   { -0.089664, 0.137755, 0.0263925 },
+                                        { -0.00888731, 0.124273, -0.00880284 },  { -0.0460971, 0.0385107, 0.0446891 },
+                                        { -0.0649255, 0.178874, -0.0579325 },    { -0.0329347, 0.124601, 0.0211235 },
+                                        { -0.0831301, 0.149901, 0.0334123 },     { -0.0895652, 0.093948, 0.0149303 },
+                                        { -0.0328901, 0.124518, -0.00282055 },   { -0.0845271, 0.106161, 0.00204328 },
+                                        { -0.0469341, 0.155816, 0.00872921 },    { 0.0206202, 0.123943, 0.0267275 },
+                                        { -0.026256, 0.117499, 0.0321672 },      { -0.021392, 0.118632, 0.0336445 },
+                                        { -0.0195069, 0.116132, 0.0368525 },     { -0.0761618, 0.118382, 0.0520923 },
+                                        { 0.00889281, 0.0395765, 0.0451727 },    { -0.0534736, 0.159548, 0.00753828 },
+                                        { -0.0469464, 0.161226, 0.00680216 },    { -0.0574886, 0.154862, 0.0204748 },
+                                        { 0.0317199, 0.117635, 0.0202007 },      { 0.0378683, 0.105514, -0.00259159 },
+                                        { -0.0811847, 0.137693, -0.00253994 },   { -0.0764348, 0.124515, 0.0528345 },
+                                        { 0.0343816, 0.106104, -0.00900254 },    { 0.0457922, 0.088316, 0.00867097 },
+                                        { -0.0703288, 0.0944195, -0.0159143 },   { -0.0756048, 0.0937947, -0.0135536 },
+                                        { -0.058657, 0.156369, 0.0093256 },      { -0.0637335, 0.153848, 0.00222718 },
+                                        { -0.0777278, 0.0960024, 0.0363437 },    { -0.0868519, 0.136556, 0.00309926 },
+                                        { -0.0455299, 0.0432404, 0.0432162 },    { -0.0402011, 0.045749, 0.0408051 },
+                                        { -0.0654123, 0.160403, -0.0149066 },    { -0.0318898, 0.0387174, 0.0510004 },
+                                        { -0.0267997, 0.0453977, 0.0509311 },    { -0.0271043, 0.0396972, 0.0535379 },
+                                        { -0.0215575, 0.0460868, 0.0517209 },    { -0.0143078, 0.0445295, 0.0504368 },
+                                        { -0.00981594, 0.043264, 0.0493162 },    { -0.00348436, 0.044054, 0.0472086 },
+                                        { 0.009577, 0.0458139, 0.0465877 },      { 0.02048, 0.111086, 0.0379569 },
+                                        { -0.0141831, 0.128547, 0.0200007 },     { -0.0526702, 0.144108, 0.0210347 },
+                                        { -0.0634838, 0.17384, -0.0527131 },     { -0.0366553, 0.171999, -0.0125745 },
+                                        { -0.0525548, 0.131228, 0.0328277 },     { -0.0659567, 0.132023, 0.0442925 },
+                                        { -0.0921726, 0.11832, 0.0267606 },      { 0.0452792, 0.0882737, 0.00268175 },
+                                        { -0.00305651, 0.112889, 0.0417789 },    { -0.0451955, 0.161396, -0.00871567 },
+                                        { -0.0402914, 0.160933, -0.0115368 },    { -0.0521414, 0.0701165, 0.0389584 },
+                                        { -0.0383315, 0.093604, -0.0232581 },    { -0.0690556, 0.137374, 0.046352 },
+                                        { -0.0695996, 0.167401, -0.0516299 },    { -0.00246047, 0.124102, 0.0337609 },
+                                        { -0.0398624, 0.128204, 0.00299348 },    { -0.0753331, 0.149032, 0.0395625 },
+                                        { -0.0701432, 0.160618, -0.00917801 },   { -0.0589378, 0.0440425, 0.0434222 },
+                                        { -0.0207164, 0.126445, 0.00312493 },    { -0.00850666, 0.0467286, 0.0481052 },
+                                        { 0.00300323, 0.0450308, 0.0469911 },    { -0.0802174, 0.148665, 0.0379438 },
+                                        { -0.0819961, 0.130698, 0.0513437 },     { 0.00273088, 0.106333, -0.0209927 },
+                                        { -0.0757273, 0.0885687, -0.0138399 },   { -0.0698477, 0.0882875, -0.0167823 },
+                                        { -0.0668508, 0.159243, -0.0102161 },    { -0.0226988, 0.0885773, 0.0536309 },
+                                        { -0.00281419, 0.0990077, 0.0505614 },   { 0.0452902, 0.0696213, 0.0253974 },
+                                        { -0.0525629, 0.0472823, 0.040482 },     { -0.046959, 0.0466581, 0.0408127 },
+                                        { -0.0691348, 0.156682, -0.00276369 },   { -0.0897599, 0.150073, 0.0220744 },
+                                        { -0.0702883, 0.155637, 0.0263654 },     { -0.0765031, 0.154893, 0.0266005 },
+                                        { -0.00804843, 0.0987379, 0.0505998 },   { 0.0300791, 0.11567, -0.00430465 },
+                                        { -0.0923054, 0.117757, 0.0334441 },     { -0.0331192, 0.0449511, 0.0462474 },
+                                        { -0.0337794, 0.113308, 0.034612 },      { -0.0521291, 0.113769, 0.0349566 },
+                                        { 0.0437636, 0.0825382, -0.0027974 },    { -0.0202819, 0.126016, 0.0210507 },
+                                        { 0.0327872, 0.043925, 0.0295904 },      { -0.0453372, 0.155266, -0.0075525 },
+                                        { -0.0284609, 0.173987, -0.0175958 },    { 0.0268448, 0.0881755, -0.0223077 },
+                                        { -0.0308231, 0.0923023, -0.0246377 },   { -0.0899732, 0.149975, 0.0141115 },
+                                        { 0.0381804, 0.105121, 0.0266947 },      { 0.00842001, 0.12907, 0.0258154 },
+                                        { -0.0266549, 0.0942999, -0.0265555 },   { -0.0279896, 0.0475815, 0.0485532 },
+                                        { -0.0150037, 0.048073, 0.0483203 },     { -0.00298993, 0.0473817, 0.0491102 },
+                                        { 0.00376754, 0.0477551, 0.0502037 },    { 0.00748504, 0.0473851, 0.0493363 },
+                                        { -0.0581651, 0.149751, 0.032858 },      { -0.0720688, 0.136456, 0.0490662 },
+                                        { -0.0810638, 0.0939541, -0.0082617 },   { 0.0380863, 0.0458646, 0.0307423 },
+                                        { -0.0253234, 0.182998, -0.0108168 },    { -0.0230508, 0.183235, -0.0110157 },
+                                        { 0.00323317, 0.129146, 0.0263855 },     { -0.0626125, 0.149788, -0.00343342 },
+                                        { -0.0591471, 0.0466998, 0.0395843 },    { -0.0353862, 0.0471292, 0.0414241 },
+                                        { -0.0194948, 0.0486404, 0.0485565 },    { -0.00849455, 0.0521633, 0.0517688 },
+                                        { -0.00296485, 0.051429, 0.0527827 },    { 0.00279019, 0.0517664, 0.0528352 },
+                                        { 0.00904034, 0.0517165, 0.051222 },     { 0.0443839, 0.0943042, 0.00268377 },
+                                        { -0.0886145, 0.111113, 0.0148415 },     { -0.0885219, 0.144027, 0.0329221 },
+                                        { 0.0440719, 0.0937787, 0.0206165 },     { 0.0436531, 0.0980341, 0.0146596 },
+                                        { -0.0650976, 0.153799, -0.00285808 },   { -0.0517297, 0.0490759, 0.0371355 },
+                                        { -0.0331222, 0.0518259, 0.0385377 },    { -0.0377352, 0.127448, 0.0152358 },
+                                        { -0.00906608, 0.100701, 0.0460122 },    { -0.0410683, 0.128416, 0.0134054 },
+                                        { -0.0712056, 0.158724, -0.00521868 },   { -0.0266313, 0.0501544, 0.044695 },
+                                        { -0.0211065, 0.0519946, 0.0455753 },    { -0.0168667, 0.0505241, 0.0476889 },
+                                        { -0.0147601, 0.0527687, 0.050103 },     { -0.0626395, 0.149972, -0.00897733 },
+                                        { -0.090861, 0.124732, 0.00627835 },     { -0.0255786, 0.0923499, -0.0315595 },
+                                        { -0.0709738, 0.172947, -0.052768 },     { -0.0588974, 0.143232, -0.00327646 },
+                                        { -0.0943643, 0.12436, 0.0216467 },      { 0.0337044, 0.112449, -0.00269877 },
+                                        { -0.0515051, 0.136557, 0.0263185 },     { -0.00886593, 0.121199, 0.0360577 },
+                                        { -0.061729, 0.155665, -0.0259512 },     { -0.0862637, 0.10567, 0.0206042 },
+                                        { -0.0895584, 0.138606, 0.032689 },      { -0.0268168, 0.123904, 0.0208113 },
+                                        { 0.0341937, 0.0515433, 0.033081 },      { 0.0401268, 0.0512743, 0.0322702 },
+                                        { 0.0449306, 0.0526595, 0.0319582 },     { -0.0405348, 0.117168, 0.0319438 },
+                                        { -0.0636902, 0.155546, -0.0390642 },    { 0.0278663, 0.100401, 0.0410064 },
+                                        { -0.0275828, 0.179275, -0.0157605 },    { -0.0758871, 0.0942302, 0.0383961 },
+                                        { 0.0138371, 0.129201, 0.0203961 },      { -0.0152723, 0.0998429, 0.0451638 },
+                                        { -0.00916763, 0.129718, 0.0206646 },    { -0.0512444, 0.0516901, 0.0334801 },
+                                        { -0.0461563, 0.0523184, 0.0379981 },    { -0.0410001, 0.05272, 0.0393793 },
+                                        { -0.0270993, 0.0526642, 0.0393104 },    { 0.0434924, 0.0931097, -0.00154028 },
+                                        { -0.0823819, 0.112683, 0.045427 },      { -0.092066, 0.118055, 0.00909937 },
+                                        { -0.00448884, 0.121713, 0.0362976 },    { 0.0147346, 0.129423, 0.0143146 },
+                                        { -0.0158113, 0.161888, -0.00973584 },   { -0.0778838, 0.149704, -0.00337488 },
+                                        { -0.0865357, 0.12477, -0.00166991 },    { 0.0153656, 0.126058, 0.0275381 },
+                                        { -0.0388913, 0.123761, 0.0249778 },     { -0.0390351, 0.121238, 0.0283673 },
+                                        { -0.0324963, 0.120237, 0.0283344 },     { -0.0149052, 0.12311, 0.0316417 },
+                                        { -0.0582873, 0.117688, 0.0386719 },     { -0.0626536, 0.161861, -0.0264031 },
+                                        { -0.0818147, 0.141639, 0.0444825 },     { 0.0350734, 0.100071, 0.0345975 },
+                                        { 0.0311856, 0.11215, 0.0310216 },               { -0.0335778, 0.11743, 0.031458 },
+                                        { -0.059637, 0.153475, 0.031348 },               { -0.0481256, 0.0536625, 0.0362191 },
+                                        { -0.059026, 0.156388, 0.00269852 },     { -0.0211187, 0.0578754, 0.0461125 },
+                                        { -0.082738, 0.124721, 0.050554 },               { -0.0466997, 0.11363, 0.0348133 },
+                                        { -0.0107262, 0.179662, -0.0277472 },    { 0.0347725, 0.0894441, -0.0170339 },
+                                        { -0.0891825, 0.100351, 0.0148945 },     { 0.0257275, 0.122894, 0.0207337 },
+                                        { -0.0883949, 0.100277, 0.00841226 },    { -0.0649858, 0.155518, 0.0263367 },
+                                        { -0.0768402, 0.154073, 0.00257877 },    { -0.0576877, 0.154146, 0.0262123 },
+                                        { -0.0266966, 0.125729, 0.0145923 },     { -0.076376, 0.155782, 0.0208875 },
+                                        { -0.0763295, 0.167188, -0.039594 },     { -0.0771877, 0.100229, -0.0103313 },
+                                        { -0.0153681, 0.0590839, 0.0519909 },    { -0.010206, 0.0576345, 0.0535443 },
+                                        { -0.00350044, 0.0578672, 0.0543757 },   { 0.00300818, 0.0568916, 0.0538692 },
+                                        { 0.0088308, 0.0580497, 0.0529859 },     { 0.0410915, 0.0820775, -0.00893411 },
+                                        { 0.0395449, 0.0576373, 0.0318985 },     { -0.0762443, 0.139336, 0.0484763 },
+                                        { -0.0324306, 0.120379, -0.00955344 },   { -0.0194451, 0.0881559, 0.0557639 },
+                                        { -0.074787, 0.159471, -0.00898201 },    { -0.0639935, 0.15611, 0.0210031 },
+                                        { -0.0762438, 0.153101, 0.0322442 },     { -0.00876679, 0.128727, 0.025102 },
+                                        { 0.0282216, 0.112237, -0.00983067 },    { -0.0451341, 0.0593225, 0.0387559 },
+                                        { -0.0405005, 0.0579499, 0.040202 },     { -0.033993, 0.0584028, 0.038704 },
+                                        { -0.0272756, 0.0585468, 0.0382285 },    { -0.0248608, 0.122913, 0.0245429 },
+                                        { -0.0825276, 0.154355, 0.0206132 },     { -0.00884271, 0.129403, 0.00305159 },
+                                        { 0.0207587, 0.126654, 0.0147646 },      { -0.0394868, 0.173351, -0.00839443 },
+                                        { -0.028421, 0.114019, 0.0347746 },      { -0.0193575, 0.122009, 0.0306737 },
+                                        { -0.0691626, 0.161675, -0.0514614 },    { -0.0516736, 0.15006, 0.0148119 },
+                                        { -0.0156325, 0.120151, 0.0349054 },     { 0.0467454, 0.0582319, 0.0314404 },
+                                        { -0.0770165, 0.0685425, 0.0147863 },    { -0.00967101, 0.173225, -0.0264945 },
+                                        { -0.0213141, 0.184813, -0.0151112 },    { -0.0766524, 0.0882188, 0.0382876 },
+                                        { -0.0540219, 0.0521463, 0.0110698 },    { -0.0219451, 0.126821, 0.0155536 },
+                                        { -0.0820391, 0.153392, 0.0264506 },     { -0.0213183, 0.124468, -0.00290836 },
+                                        { -0.0268364, 0.123465, -0.00321538 },   { -0.0312035, 0.177796, -0.0133521 },
+                                        { -0.00749945, 0.0598042, 0.0553302 },   { -0.00108951, 0.0601245, 0.0554892 },
+                                        { 0.00280202, 0.0599746, 0.0555283 },    { -0.051797, 0.118119, 0.033678 },
+                                        { 0.00302464, 0.131618, 0.0149353 },     { 0.0446005, 0.0942619, 0.0151198 },
+                                        { -0.0880636, 0.111855, 0.00852285 },    { -0.0704321, 0.144096, -0.0148369 },
+                                        { -0.0820967, 0.0943634, 0.0322765 },    { -0.0269642, 0.120812, 0.0275676 },
+                                        { -0.0540164, 0.149968, 0.0253393 },     { -0.0800337, 0.0995053, -0.00770139 },
+                                        { 0.00922138, 0.12038, 0.0360924 },      { 0.00286056, 0.117968, 0.0387331 },
+                                        { -0.0936229, 0.118494, 0.0206524 },     { -0.0409923, 0.113229, 0.035109 },
+                                        { -0.0822185, 0.154488, 0.0146661 },     { -0.0625956, 0.155202, -0.0329876 },
+                                        { -0.0462511, 0.124621, -0.00898124 },   { -0.0220336, 0.160676, -0.00426008 },
+                                        { -0.065621, 0.172767, -0.0466049 },     { -0.0762614, 0.155884, 0.0148687 },
+                                        { -0.0644988, 0.149044, -0.0265159 },    { -0.0581979, 0.0593456, 0.0210895 },
+                                        { -0.0335439, 0.122618, 0.0254024 },     { -0.0826578, 0.153434, 0.00921403 },
+                                        { -0.049999, 0.132417, 0.0286961 },      { 0.0088217, 0.131096, 0.00864908 },
+                                        { -0.0154842, 0.0644282, 0.0533754 },    { -0.00871951, 0.065015, 0.0556827 },
+                                        { -0.00324815, 0.0640003, 0.0562816 },   { 0.00292601, 0.0643094, 0.0563956 },
+                                        { 0.00738462, 0.0651614, 0.0553402 },    { -0.0143174, 0.116971, 0.037836 },
+                                        { -0.00299223, 0.118083, 0.0390751 },    { -0.00864301, 0.117816, 0.0385662 },
+                                        { -0.0532884, 0.0571719, 0.0206631 },    { -0.0882588, 0.100387, 0.0210097 },
+                                        { -0.0324377, 0.099703, -0.0227313 },    { 0.0425072, 0.0603725, 0.0302275 },
+                                        { 0.0523383, 0.0580401, 0.0290457 },     { 0.0413612, 0.0877503, -0.00929235 },
+                                        { -0.0581547, 0.0620148, 0.0270981 },    { -0.0530328, 0.0590503, 0.0266933 },
+                                        { -0.0477227, 0.135526, 0.0148654 },     { 0.00323512, 0.0983053, 0.0504424 },
+                                        { 0.0150627, 0.119642, 0.034806 },               { -0.0453373, 0.0643061, 0.0391142 },
+                                        { -0.0394097, 0.0644278, 0.0414133 },    { -0.033068, 0.0642666, 0.0396407 },
+                                        { -0.0270237, 0.0644489, 0.0395335 },    { -0.0881604, 0.149479, 0.0268507 },
+                                        { -0.0640727, 0.143434, -0.00894036 },   { 0.00286033, 0.121151, 0.036139 },
+                                        { -0.0827306, 0.138152, 0.0466993 },     { -0.00261511, 0.127006, 0.030132 },
+                                        { 0.0355841, 0.108498, -0.00452523 },    { 0.0219203, 0.114136, 0.0356941 },
+                                        { -0.0379555, 0.161954, -0.0128021 },    { -0.0526362, 0.0643632, 0.0340621 },
+                                        { 0.025874, 0.123374, 0.0143811 },               { -0.0451406, 0.131184, 0.00901599 },
+                                        { -0.075778, 0.155361, -0.00310678 },    { -0.0739145, 0.156437, -0.0274945 },
+                                        { -0.0833056, 0.100778, -0.00354288 },   { -0.0767099, 0.173942, -0.0452732 },
+                                        { 0.00846106, 0.116985, 0.038033 },      { -0.0200899, 0.184788, -0.020546 },
+                                        { -0.046571, 0.120413, 0.0285524 },      { -0.0515313, 0.123718, -0.0088569 },
+                                        { 0.0212116, 0.105804, -0.0171101 },     { -0.0938613, 0.124487, 0.0151416 },
+                                        { 0.0414591, 0.064577, 0.0290352 },      { 0.0466725, 0.0643471, 0.0285539 },
+                                        { 0.0526423, 0.0634018, 0.0283831 },     { -0.0468141, 0.168322, -0.00285433 },
+                                        { -0.0869152, 0.0944156, 0.00293118 },   { -0.0773713, 0.161559, -0.0267238 },
+                                        { -0.0396095, 0.126677, -0.00334699 },   { -0.0271315, 0.0764239, 0.0455715 },
+                                        { -0.0587953, 0.107012, -0.0177177 },    { -0.0748314, 0.11156, -0.00720996 },
+                                        { -0.0642623, 0.0888181, -0.018733 },    { -0.0325172, 0.0881157, -0.0255424 },
+                                        { 0.00325654, 0.0700086, 0.0561047 },    { 0.0103151, 0.0636713, 0.0537558 },
+                                        { 0.0432701, 0.0979967, 0.00267804 },    { -0.0708223, 0.156244, 0.021207 },
+                                        { -0.0584176, 0.0702277, 0.0384322 },    { -0.0703207, 0.112305, -0.00963846 },
+                                        { -0.0581653, 0.0881983, -0.0208369 },   { -0.0443038, 0.0877156, -0.0218942 },
+                                        { -0.0488091, 0.0660127, 0.0373959 },    { 0.00269411, 0.126911, 0.030114 },
+                                        { 0.0239692, 0.12105, 0.0288706 },               { -0.0469203, 0.117468, 0.0314407 },
+                                        { -0.091552, 0.143361, 0.0201623 },      { -0.0907563, 0.143859, 0.0263089 },
+                                        { -0.0495713, 0.144022, 0.00976642 },    { -0.0770934, 0.15583, -0.0147903 },
+                                        { -0.0868322, 0.105634, 0.00887573 },    { -0.082848, 0.131648, -0.00299747 },
+                                        { -0.0384249, 0.106407, -0.0201393 },    { -0.0823953, 0.118841, -0.00336022 },
+                                        { -0.0102333, 0.0876697, -0.0375101 },   { -0.00789361, 0.089842, -0.0363492 },
+                                        { -0.0579097, 0.111769, -0.0161856 },    { 0.0140074, 0.105793, -0.0193841 },
+                                        { -0.00328561, 0.105435, -0.0225198 },   { -0.0409613, 0.070972, 0.0419904 },
+                                        { -0.033501, 0.0710512, 0.0409793 },     { -0.0272732, 0.0701361, 0.0410332 },
+                                        { -0.0161963, 0.127121, 0.0228897 },     { -0.0190644, 0.127936, 0.0133818 },
+                                        { -0.0149926, 0.0694778, 0.0545159 },    { -0.00932719, 0.0707313, 0.0562936 },
+                                        { -0.002994, 0.0710941, 0.0575426 },     { 0.00838831, 0.0714267, 0.0556585 },
+                                        { 0.0102531, 0.0693533, 0.0547665 },     { -0.0323939, 0.153399, -0.00240332 },
+                                        { 0.0435981, 0.0881514, 0.0254203 },     { -0.0586529, 0.124882, -0.00781093 },
+                                        { -0.0204287, 0.107045, -0.022046 },     { -0.0382961, 0.0879422, -0.0229335 },
+                                        { -0.081573, 0.113394, -0.00173083 },    { -0.0380811, 0.154778, -0.00889149 },
+                                        { -0.00212588, 0.0889926, -0.0354677 },  { 0.00904065, 0.100193, -0.0222794 },
+                                        { -0.0467068, 0.0700493, 0.0405769 },    { -0.0779974, 0.151244, 0.0352264 },
+                                        { 0.0149019, 0.116126, 0.0367849 },      { -0.07603, 0.106301, -0.0087688 },
+                                        { -0.0885261, 0.137839, 0.0393964 },     { -0.0703112, 0.131278, -0.00857724 },
+                                        { 0.0419377, 0.0703605, 0.0288832 },     { 0.0514194, 0.0684326, 0.0256968 },
+                                        { -0.0922548, 0.124813, 0.0393757 },     { 0.0135035, 0.128105, 0.0250558 },
+                                        { -0.0704618, 0.125421, -0.00881334 },   { -0.0703931, 0.118731, -0.00840961 },
+                                        { -0.0719685, 0.106305, -0.0114493 },    { -0.0646972, 0.161498, -0.0573125 },
+                                        { 0.0463693, 0.0715128, 0.0216754 },     { -0.0538246, 0.153497, 0.0152346 },
+                                        { -0.0142869, 0.0724666, 0.0554243 },    { -0.0394057, 0.118512, -0.01336 },
+                                        { -0.0280509, 0.0880065, -0.0330858 },   { -0.00957701, 0.168254, -0.0212321 },
+                                        { -0.0445856, 0.167324, -0.00782662 },   { -0.0513101, 0.161594, -0.00355965 },
+                                        { -0.0702356, 0.179304, -0.0569867 },    { -0.0644695, 0.168402, -0.0398946 },
+                                        { -0.0089459, 0.130139, 0.00911776 },    { 0.00219503, 0.0880369, -0.0342201 },
+                                        { -0.0268891, 0.16726, -0.0174204 },     { -0.0525985, 0.155054, -0.00368706 },
+                                        { -0.0761618, 0.131736, -0.00696723 },   { -0.0759576, 0.07099, 0.0265672 },
+                                        { -0.00875341, 0.10588, -0.02285 },      { -0.0519242, 0.1493, -0.00277595 },
+                                        { -0.016371, 0.18465, -0.0214272 },      { -0.020548, 0.0705632, 0.0520411 },
+                                        { -0.0813371, 0.120073, 0.049533 },      { -0.0625087, 0.149934, -0.0150319 },
+                                        { -0.0831098, 0.10651, 0.0273461 },      { -0.011119, 0.163582, -0.018751 },
+                                        { -0.00291057, 0.101147, 0.0456419 },    { -0.0635467, 0.0660523, 0.0318653 },
+                                        { -0.0511979, 0.0873878, -0.0217212 },   { -0.0530335, 0.0740367, 0.0417219 },
+                                        { -0.0465007, 0.0756701, 0.0421325 },    { -0.022314, 0.0760359, 0.0530306 },
+                                        { -0.0151351, 0.0764056, 0.0563566 },    { -0.00900601, 0.0766621, 0.0575852 },
+                                        { -0.00299732, 0.0767339, 0.0584651 },   { 0.00347424, 0.0769755, 0.0565905 },
+                                        { 0.00860763, 0.0767538, 0.0557293 },    { -0.0271239, 0.156216, -0.00302734 },
+                                        { -0.0633091, 0.16738, -0.0580906 },     { -0.0873943, 0.144225, 0.00902371 },
+                                        { -0.0626891, 0.162297, -0.0470925 },    { 0.0370111, 0.110397, 0.00265294 },
+                                        { -0.0744006, 0.144062, -0.00864565 },   { -0.0244124, 0.183841, -0.0135068 },
+                                        { -0.0803381, 0.0715473, 0.0150483 },    { -0.0644528, 0.0761561, 0.040638 },
+                                        { -0.0588413, 0.0753794, 0.0421022 },    { -0.0524294, 0.077372, 0.0433357 },
+                                        { -0.0484981, 0.0769334, 0.043281 },     { -0.0414954, 0.0773856, 0.0429005 },
+                                        { -0.0395008, 0.0754808, 0.0425134 },    { -0.033488, 0.0764759, 0.0414605 },
+                                        { -0.0627838, 0.162163, -0.0530538 },    { 0.0381456, 0.0881056, -0.0138675 },
+                                        { -0.0642837, 0.0396418, 0.039624 },     { -0.0526672, 0.121335, -0.010917 },
+                                        { -0.0738104, 0.162942, -0.037093 },     { -0.0490869, 0.13938, 0.00889895 },
+                                        { -0.0495771, 0.166027, -0.00171113 },   { -0.0709736, 0.161609, -0.0450808 },
+                                        { 0.0251847, 0.12195, 0.0254854 },               { -0.0193615, 0.0781018, 0.0558163 },
+                                        { -0.0265458, 0.120645, -0.00911332 },   { -0.061796, 0.155741, -0.0207923 },
+                                        { -0.082476, 0.110295, 0.0324103 },      { -0.0691674, 0.156314, -0.050857 },
+                                        { -0.0622848, 0.16236, -0.0396288 },     { -0.088248, 0.113803, 0.0264606 },
+                                        { -0.0575392, 0.0787026, 0.0436363 },    { -0.0298439, 0.0782596, 0.0421168 },
+                                        { -0.0677617, 0.0876701, 0.0434928 },    { -0.0921939, 0.131884, 0.015227 },
+                                        { -0.0878987, 0.111742, 0.0209206 },     { -0.049353, 0.139298, 0.0147955 },
+                                        { -0.0327071, 0.173321, -0.0149209 },    { -0.0866298, 0.152851, 0.0149144 },
+                                        { -0.0779646, 0.100025, 0.035185 },      { -0.0935537, 0.118404, 0.0151524 },
+                                        { -0.084908, 0.10801, 0.0228537 },               { -0.0210677, 0.0821213, 0.0562096 },
+                                        { -0.0149957, 0.082187, 0.0572635 },     { -0.00899671, 0.0822178, 0.0576875 },
+                                        { -0.00299966, 0.0822055, 0.0574653 },   { 0.0034748, 0.0817533, 0.0567544 },
+                                        { 0.00824833, 0.082992, 0.0556315 },     { 0.0102414, 0.0812949, 0.0546523 },
+                                        { -0.0398496, 0.123966, -0.00878898 },   { -0.092257, 0.124769, 0.00902091 },
+                                        { -0.0436728, 0.126191, 0.0209533 },     { -0.0820425, 0.105873, -0.00271871 },
+                                        { -0.0663016, 0.0807623, 0.0424437 },    { -0.0639939, 0.0836688, 0.0439754 },
+                                        { -0.058539, 0.0825906, 0.0439671 },     { -0.0521209, 0.0822523, 0.0446262 },
+                                        { -0.0467559, 0.0828569, 0.0439458 },    { -0.0424962, 0.0810729, 0.0423266 },
+                                        { -0.0404903, 0.0830123, 0.0430984 },    { -0.0365108, 0.0825773, 0.0434355 },
+                                        { -0.032204, 0.0824171, 0.0421121 },     { -0.0864005, 0.152981, 0.0204492 },
+                                        { -0.0235661, 0.115415, 0.0353667 },     { -0.0764871, 0.111685, 0.0461598 },
+                                        { -0.0763895, 0.14977, -0.00829972 },    { -0.0754801, 0.161855, -0.0327796 },
+                                        { -0.0285733, 0.0828247, 0.0462702 },    { -0.0862819, 0.100797, 0.0028483 },
+                                        { 0.021088, 0.08242, 0.0504086 },                { -0.0801892, 0.143128, -0.00230055 },
+                                        { 0.00844098, 0.124407, -0.00878569 },   { 0.0147552, 0.0825883, 0.0529115 },
+                                        { -0.061995, 0.161169, -0.032654 },      { -0.0807571, 0.1525, 0.0307996 },
+                                        { -0.00295953, 0.130272, 0.00279699 },   { -0.0153619, 0.0884791, 0.0565599 },
+                                        { -0.00899729, 0.0878977, 0.0570287 },   { -0.00299611, 0.0880658, 0.0568489 },
+                                        { 0.00301457, 0.0885291, 0.0562756 },    { 0.00834267, 0.0873808, 0.0555541 },
+                                        { -0.00897481, 0.0941651, -0.0338408 },  { 0.0314278, 0.11673, 0.0250113 },
+                                        { -0.0760602, 0.155337, 0.0093949 },     { 0.0257808, 0.116776, -0.00728909 },
+                                        { -0.0646577, 0.0882843, 0.0447113 },    { -0.058996, 0.0882997, 0.0449149 },
+                                        { -0.0529958, 0.0883132, 0.0451395 },    { -0.0465421, 0.0881579, 0.0443187 },
+                                        { -0.0404961, 0.0876863, 0.0430941 },    { -0.0331792, 0.0885648, 0.04366 },
+                                        { -0.0280482, 0.0879652, 0.046363 },     { 0.0150626, 0.0881784, 0.0517745 },
+                                        { 0.0205955, 0.087113, 0.0492325 },      { -0.0702712, 0.0823874, 0.0409431 },
+                                        { -0.0296926, 0.0896882, -0.0286839 },   { -0.0236137, 0.179242, -0.0115629 },
+                                        { -0.0809391, 0.100029, 0.0323433 },     { -0.0928336, 0.130683, 0.0207107 },
+                                        { -0.0761771, 0.156201, -0.0204165 },    { 0.0146577, 0.129396, 0.00843576 },
+                                        { 0.0104845, 0.089766, 0.0542005 },      { -0.072579, 0.161253, -0.0389447 },
+                                        { -0.0322741, 0.110391, -0.0184574 },    { -0.0550172, 0.150108, 0.027792 },
+                                        { -0.071635, 0.0883254, 0.0414652 },     { -0.0424904, 0.0895336, 0.0426086 },
+                                        { 0.0207945, 0.0897491, 0.0484315 },     { 0.0273189, 0.118845, -0.00265658 },
+                                        { 0.0285218, 0.121112, 0.0162366 },      { -0.00899735, 0.0930598, 0.0559298 },
+                                        { -0.00291176, 0.118727, -0.0144021 },   { -0.0885191, 0.113233, 0.0327948 },
+                                        { -0.0713744, 0.0938304, 0.0415269 },    { -0.0641029, 0.0935514, 0.0439488 },
+                                        { -0.0584965, 0.0944146, 0.0446213 },    { -0.0515853, 0.0939836, 0.0442383 },
+                                        { -0.0465591, 0.0937901, 0.0436103 },    { -0.0414914, 0.0942416, 0.0425268 },
+                                        { -0.0377723, 0.0933327, 0.0434889 },    { -0.0332864, 0.0945766, 0.0443868 },
+                                        { -0.0263807, 0.094318, 0.0450568 },     { -0.0141606, 0.0929618, 0.0553898 },
+                                        { -0.00319641, 0.0930898, 0.0557853 },   { 0.00150357, 0.0931879, 0.0551544 },
+                                        { 0.00367616, 0.0950752, 0.0535295 },    { 0.00915739, 0.0941794, 0.0519212 },
+                                        { 0.0216553, 0.0937794, 0.0473202 },     { -0.0702968, 0.174481, -0.045888 },
+                                        { -0.0305889, 0.168899, -0.00702359 },   { -0.0528191, 0.162649, 0.00296711 },
+                                        { -0.0890968, 0.0940104, 0.0208024 },    { -0.0626249, 0.173112, -0.0586131 },
+                                        { -0.0443835, 0.105923, -0.0201903 },    { -0.0664958, 0.0951776, 0.0424531 },
+                                        { -0.0324384, 0.126415, 0.0146752 },     { -0.0152469, 0.0961657, 0.0518098 },
+                                        { -0.0097537, 0.0960506, 0.0535818 },    { -0.00304601, 0.0963367, 0.0537791 },
+                                        { 0.01642, 0.0957081, 0.0480381 },               { -0.0876548, 0.105191, 0.0148253 },
+                                        { -0.0699417, 0.0763232, 0.0381496 },    { 0.0358078, 0.0958594, -0.0120328 },
+                                        { 0.0374966, 0.100154, 0.031249 },               { -0.0530195, 0.150059, 0.0207323 },
+                                        { -0.0905911, 0.131765, 0.0328667 },     { -0.0709717, 0.147309, -0.0268389 },
+                                        { -0.0443321, 0.0935075, -0.0222668 },   { -0.0400911, 0.128618, 0.00909496 },
+                                        { -0.0710054, 0.100275, 0.0398128 },     { -0.0653063, 0.100124, 0.0417262 },
+                                        { -0.0589969, 0.0980495, 0.0430328 },    { -0.0529938, 0.0980631, 0.0432952 },
+                                        { -0.0469951, 0.0980659, 0.043235 },     { -0.0408476, 0.100401, 0.0414668 },
+                                        { -0.0323344, 0.0988071, 0.0435216 },    { -0.0259464, 0.0998425, 0.0438947 },
+                                        { -0.0212066, 0.0999849, 0.0444194 },    { 0.00749586, 0.09835, 0.0488255 },
+                                        { 0.0090271, 0.101109, 0.0469975 },      { 0.0153076, 0.100008, 0.0472449 },
+                                        { 0.0208175, 0.100067, 0.0453866 },      { -0.0648326, 0.131509, -0.00838673 },
+                                        { -0.0740297, 0.150832, -0.0323367 },    { -0.0932444, 0.124885, 0.026841 },
+                                        { -0.0633239, 0.169093, -0.0610358 },    { -0.0771158, 0.162488, -0.0202679 },
+                                        { -0.0585669, 0.0647555, 0.0323611 },    { 0.0377689, 0.110383, 0.00969065 },
+                                        { -0.0503559, 0.0935892, -0.0218956 },   { -0.0589961, 0.101543, 0.042437 },
+                                        { -0.0516647, 0.101981, 0.0417488 },     { -0.0469248, 0.101325, 0.0421166 },
+                                        { -0.0352173, 0.101965, 0.0413638 },     { 0.00285015, 0.100935, 0.0464433 },
+                                        { -0.075479, 0.150312, -0.0143808 },     { -0.078936, 0.108126, -0.00525459 },
+                                        { -0.0251472, 0.168981, -0.0187156 },    { -0.071457, 0.113692, 0.0499983 },
+                                        { -0.0747771, 0.0997536, 0.0377868 },    { -0.0902919, 0.137212, 0.0146286 },
+                                        { -0.0264568, 0.105883, 0.0411765 },     { -0.0209966, 0.1044, 0.0429589 },
+                                        { -0.0145208, 0.105597, 0.0430511 },     { -0.00899316, 0.10622, 0.0435541 },
+                                        { -0.00289533, 0.105882, 0.0438861 },    { 0.00245231, 0.105621, 0.0429868 },
+                                        { 0.00945613, 0.104903, 0.0439002 },     { 0.0149913, 0.104769, 0.0443348 },
+                                        { -0.0772186, 0.106139, 0.0350601 },     { -0.0708601, 0.106945, 0.0381598 },
+                                        { -0.0652985, 0.106577, 0.0390805 },     { -0.0583896, 0.105623, 0.0405326 },
+                                        { -0.0529341, 0.106445, 0.0398435 },     { -0.0461638, 0.105797, 0.0404843 },
+                                        { -0.0400204, 0.106789, 0.0388993 },     { -0.03311, 0.106322, 0.0394461 },
+                                        { 0.0193026, 0.10477, 0.0431964 },               { -0.0501412, 0.13774, 0.00286739 },
+                                        { 0.0266104, 0.105911, 0.0384052 },      { 0.0438719, 0.088439, -0.0031027 },
+                                        { -0.0590381, 0.113203, 0.0362299 },     { -0.021499, 0.107851, 0.0414162 },
+                                        { -0.0164951, 0.107881, 0.0420289 },     { 0.00450524, 0.107918, 0.0419336 },
+                                        { 0.00856234, 0.108229, 0.0410531 },     { 0.0149994, 0.10779, 0.0412845 },
+                                        { 0.0213049, 0.106041, 0.0409433 },      { -0.0336665, 0.167843, -0.00338268 },
+                                        { -0.0587789, 0.131705, -0.00671001 },   { -0.0443517, 0.100306, -0.0215281 },
+                                        { -0.0147306, 0.179604, -0.0266222 },    { 0.0159582, 0.108177, -0.0177822 },
+                                        { -0.0638447, 0.138119, -0.00733006 },   { -0.0330953, 0.167861, -0.0155539 },
+                                        { -0.0643684, 0.125359, -0.00876153 },   { -0.032583, 0.161992, -0.0142418 },
+                                        { -0.068568, 0.110392, 0.0392194 },      { -0.0643494, 0.112195, 0.0388907 },
+                                        { -0.0593722, 0.112082, 0.0373875 },     { -0.0529986, 0.110472, 0.0373551 },
+                                        { -0.0468613, 0.11028, 0.0378862 },      { -0.040984, 0.110496, 0.0370883 },
+                                        { -0.0320055, 0.110468, 0.0370438 },     { -0.0074871, 0.110717, 0.042649 },
+                                        { -0.00449218, 0.110714, 0.0426582 },    { 0.0250033, 0.110611, 0.0368459 },
+                                        { 0.025919, 0.0995286, -0.0189206 },     { -0.06973, 0.112153, 0.0457184 },
+                                        { -0.045604, 0.148834, -0.00329924 },    { -0.0653006, 0.0947889, -0.0177657 },
+                                        { -0.0906677, 0.13318, 0.0277848 },      { -0.0331508, 0.094474, -0.0237799 },
+                                        { -0.0575764, 0.0941613, -0.0208023 },   { -0.0200586, 0.0397198, 0.0532237 },
+                                        { -0.0203685, 0.0352888, 0.051184 },     { -0.0764163, 0.125947, -0.00745144 },
+                                        { -0.0205906, 0.167551, -0.0139677 },    { 0.025858, 0.116851, 0.0315289 },
+                                        { -0.0139279, 0.167191, -0.021044 },     { -0.0587481, 0.149802, -0.00133886 },
+                                        { 0.0144191, 0.0395247, 0.0443396 },     { 0.0332953, 0.105473, 0.0329627 },
+                                        { -0.0647461, 0.114313, -0.0115219 },    { -0.0520818, 0.0353771, 0.0449331 },
+                                        { -0.015004, 0.0392095, 0.0513548 },     { -0.0094925, 0.0384962, 0.049554 },
+                                        { -0.0638496, 0.117631, 0.0454477 },     { -0.0573025, 0.136864, 0.033162 },
+                                        { 0.0189101, 0.0400942, 0.0428502 },     { -0.0508192, 0.124393, 0.0332635 },
+                                        { -0.0182623, 0.180885, -0.017743 },     { -0.0651271, 0.150343, -0.0325707 },
+                                        { 0.0332966, 0.0936886, 0.0400216 },     { -0.0463011, 0.149493, 0.00833001 },
+                                        { 0.00260773, 0.0354887, 0.0450013 },    { -0.0780807, 0.10971, 0.0423535 },
+                                        { -0.0542262, 0.124756, 0.0369858 },     { -0.0402584, 0.0361447, 0.0436625 },
+                                        { -0.00317483, 0.0942874, -0.0331049 },  { -0.0151032, 0.179716, -0.0207621 },
+                                        { 0.026141, 0.0403246, 0.0327265 },      { -0.0640247, 0.111376, -0.0136272 },
+                                        { 0.027817, 0.112309, 0.0339118 },               { -0.0586332, 0.142774, 0.0334953 },
+                                        { -0.0146622, 0.167501, -0.0154455 },    { -0.0270893, 0.167298, -0.00866399 },
+                                        { 0.0152056, 0.045813, 0.0442638 },      { 0.0190988, 0.0442996, 0.0429 },
+                                        { 0.0215694, 0.0456112, 0.041209 },      { 0.0257452, 0.0459137, 0.0381185 },
+                                        { 0.0387365, 0.0944447, 0.0327088 },     { 0.0287308, 0.0456722, 0.0347466 },
+                                        { -0.0151805, 0.173809, -0.0213305 },    { -0.0658903, 0.118253, 0.0498126 },
+                                        { -0.0628345, 0.093206, -0.0188544 },    { -0.0643065, 0.142451, 0.0394123 },
+                                        { -0.040079, 0.150283, 0.00280951 },     { -0.026851, 0.173268, -0.00983852 },
+                                        { -0.0207913, 0.173767, -0.0147826 },    { -0.0582334, 0.124238, 0.0403406 },
+                                        { -0.0683337, 0.131545, 0.0479709 },     { -0.0693547, 0.10637, -0.012803 },
+                                        { -0.0428668, 0.157627, 0.0050419 },     { -0.0476449, 0.130368, 0.0258834 },
+                                        { 0.0379451, 0.0817167, -0.0141547 },    { 0.0312298, 0.0470286, 0.0324465 },
+                                        { -0.0662284, 0.138149, 0.042896 },      { -0.0644094, 0.105575, -0.0158634 },
+                                        { 0.0411271, 0.0443713, 0.0285474 },     { -0.0830031, 0.0762361, 0.0150296 },
+                                        { -0.0660167, 0.123488, 0.0501643 },     { -0.0416352, 0.155329, 0.00636435 },
+                                        { -0.0388456, 0.155994, 0.00477206 },    { -0.0551732, 0.116538, 0.0359195 },
+                                        { -0.0600069, 0.134082, 0.0369434 },     { 0.0452816, 0.0453284, 0.0263124 },
+                                        { 0.0513161, 0.0463154, 0.0204963 },     { -0.0106687, 0.172847, -0.0215627 },
+                                        { -0.0147735, 0.18419, -0.0259341 },     { 0.0301064, 0.106776, 0.0358091 },
+                                        { -0.063709, 0.125122, 0.0457451 },      { 0.0473431, 0.0499217, 0.0295077 },
+                                        { 0.0497106, 0.0482066, 0.0259506 },     { 0.0518484, 0.0518415, 0.0267161 },
+                                        { -0.0162732, 0.172938, -0.0174582 },    { 0.0355097, 0.107304, 0.0291151 },
+                                        { -0.0552656, 0.143077, 0.0300537 },     { -0.0637191, 0.136482, 0.0388176 },
+                                        { -0.0199086, 0.161072, -0.00863325 },   { -0.0209172, 0.179282, -0.0148523 },
+                                        { 0.014511, 0.0513519, 0.0474271 },      { -0.0610259, 0.126912, 0.0416133 },
+                                        { 0.0539905, 0.0494141, 0.0219114 },     { 0.00925922, 0.118865, -0.0148674 },
+                                        { -0.0268384, 0.162091, -0.00836699 },   { -0.0367024, 0.163198, -0.00107067 },
+                                        { -0.0336432, 0.155948, 0.00188963 },    { -0.0280966, 0.159587, 0.000483069 },
+                                        { -0.026491, 0.16163, -0.00321758 },     { 0.0206613, 0.0528733, 0.0451655 },
+                                        { 0.0231576, 0.0513069, 0.0414753 },     { 0.0266044, 0.0526516, 0.039853 },
+                                        { 0.0309772, 0.0527823, 0.0371348 },     { 0.0239371, 0.103424, 0.0418106 },
+                                        { 0.0568895, 0.0527484, 0.0209204 },     { -0.0664209, 0.11329, 0.0441331 },
+                                        { -0.0326789, 0.162384, -0.00243762 },   { 0.0145199, 0.0932586, -0.026363 },
+                                        { -0.0543983, 0.119186, 0.0365781 },     { -0.0564272, 0.132376, 0.0357966 },
+                                        { -0.0501636, 0.142911, 0.00230897 },    { -0.043714, 0.147707, 0.0038501 },
+                                        { -0.0291346, 0.177171, -0.00534178 },   { 0.0357304, 0.100363, -0.0111604 },
+                                        { 0.0133943, 0.0541536, 0.0499521 },     { 0.0551089, 0.0545007, 0.0253961 },
+                                        { 0.0291033, 0.0572886, 0.0407089 },     { 0.0585723, 0.0583402, 0.0214893 },
+                                        { -0.0740322, 0.0656952, 0.0144875 },    { -0.0749844, 0.179305, -0.0518221 },
+                                        { 0.0145778, 0.0585769, 0.0501691 },     { 0.0214876, 0.058332, 0.0470549 },
+                                        { 0.0259507, 0.0590004, 0.0437762 },     { 0.032833, 0.0585633, 0.0387158 },
+                                        { 0.0358218, 0.0578374, 0.0350365 },     { 0.0360585, 0.0951301, 0.0364902 },
+                                        { -0.0886806, 0.118283, 0.0459142 },     { 0.0562736, 0.0586365, 0.0253398 },
+                                        { 0.0303311, 0.0951295, 0.0419589 },     { -0.0222315, 0.167389, -0.0110472 },
+                                        { -0.0543257, 0.136577, 0.0307959 },     { -0.0500074, 0.150447, 0.0117579 },
+                                        { -0.0616289, 0.137406, 0.0354744 },     { -0.0319367, 0.159507, 0.00191749 },
+                                        { -0.0634458, 0.132148, 0.0406867 },     { 0.0368678, 0.0921989, 0.0367449 },
+                                        { -0.0728433, 0.156137, -0.0339112 },    { 0.0389872, 0.0640689, 0.0330299 },
+                                        { -0.0636611, 0.1488, -0.0205996 },      { 0.0153938, 0.0648444, 0.0513036 },
+                                        { 0.0213958, 0.0645506, 0.0473078 },     { 0.0265105, 0.0649235, 0.0439721 },
+                                        { 0.0302364, 0.0650657, 0.0415975 },     { 0.0331295, 0.0642221, 0.0397381 },
+                                        { 0.0367885, 0.065027, 0.0366867 },      { 0.0563131, 0.0650782, 0.0252208 },
+                                        { 0.0591364, 0.0644742, 0.0211357 },     { -0.0110683, 0.167098, -0.0167807 },
+                                        { -0.0605202, 0.146205, 0.0366666 },     { 0.0194528, 0.0665736, 0.0491642 },
+                                        { -0.0286777, 0.158132, 0.000508817 },   { 0.0253025, 0.0989569, 0.0434277 },
+                                        { -0.0349979, 0.152158, 8.20736e-05 },   { 0.014665, 0.070627, 0.0528306 },
+                                        { 0.0202908, 0.071041, 0.0498828 },      { 0.0230702, 0.0702991, 0.0473835 },
+                                        { 0.0263693, 0.0706238, 0.0441789 },     { 0.0328306, 0.0707606, 0.0401362 },
+                                        { 0.0368832, 0.070672, 0.0365953 },      { 0.0398878, 0.0705632, 0.0325808 },
+                                        { 0.0579544, 0.0694794, 0.0198345 },     { -0.0641704, 0.063724, 0.0268682 },
+                                        { -0.0919499, 0.114216, 0.0149265 },     { 0.0351624, 0.0819076, -0.0172502 },
+                                        { -0.0862408, 0.119271, -0.00117534 },   { -0.0294401, 0.174958, -0.00579982 },
+                                        { -0.0175288, 0.165418, -0.0114925 },    { -0.0617869, 0.117789, 0.0409144 },
+                                        { 0.0301891, 0.0723658, 0.0418804 },     { -0.0822099, 0.149486, 0.00288044 },
+                                        { -0.0760271, 0.175704, -0.0506937 },    { -0.0652343, 0.0614738, 0.0211346 },
+                                        { -0.0266574, 0.110394, -0.019007 },     { -0.0813538, 0.0779161, 0.0268055 },
+                                        { 0.021417, 0.118723, -0.00893569 },     { 0.0149346, 0.0759297, 0.0536191 },
+                                        { 0.0209886, 0.0761609, 0.0506055 },     { 0.0268396, 0.0762089, 0.0459193 },
+                                        { 0.0336785, 0.0760737, 0.0405166 },     { 0.0373422, 0.0760306, 0.0366776 },
+                                        { 0.0400324, 0.0763062, 0.0328345 },     { 0.0419048, 0.076876, 0.0296092 },
+                                        { 0.0438094, 0.0763805, 0.0258638 },     { -0.0452412, 0.118472, -0.0142046 },
+                                        { 0.0456773, 0.0768089, 0.0208187 },     { -0.050165, 0.137714, 0.0207618 },
+                                        { -0.00327054, 0.111563, -0.0203549 },   { -0.0483236, 0.145111, 0.00757835 },
+                                        { 0.0310833, 0.0775315, 0.0432282 },     { -0.046855, 0.145222, 0.00288431 },
+                                        { -0.0141716, 0.10541, -0.0225802 },     { 0.0470348, 0.0753979, 0.0148736 },
+                                        { -0.0611433, 0.140542, 0.0356184 },     { 0.0272779, 0.0823714, 0.0459243 },
+                                        { 0.0309212, 0.08255, 0.0430252 },               { 0.0343037, 0.0825412, 0.0402907 },
+                                        { 0.0370354, 0.0824663, 0.0369099 },     { -0.0799946, 0.147989, -0.000835337 },
+                                        { -0.0774435, 0.0690153, 0.00961977 },   { 0.0404363, 0.0826995, 0.0326021 },
+                                        { 0.0417479, 0.0827335, 0.0302524 },     { 0.0436887, 0.0825508, 0.0263844 },
+                                        { 0.0454407, 0.0825465, 0.0207137 },     { -0.0822812, 0.116295, 0.0482855 },
+                                        { -0.0844726, 0.0947391, -0.00345192 },  { -0.020271, 0.168003, -0.0193935 },
+                                        { -0.0742716, 0.0668501, 0.0190414 },    { 0.026747, 0.0882417, 0.0458314 },
+                                        { 0.0308722, 0.0882572, 0.0430146 },     { 0.0344922, 0.0883047, 0.0403697 },
+                                        { 0.0372481, 0.0881263, 0.0366393 },     { 0.039927, 0.088094, 0.0326668 },
+                                        { 0.0419027, 0.0877782, 0.0290815 },     { 0.00264738, 0.112302, -0.019871 },
+                                        { -0.0703315, 0.1455, -0.0205576 },      { -0.0749446, 0.137879, -0.00653312 },
+                                        { -0.0266967, 0.114299, -0.0159903 },    { -0.0869924, 0.113518, 0.00410409 },
+                                        { -0.0142186, 0.174013, -0.0259807 },    { -0.0221564, 0.157852, -0.00861651 },
+                                        { -0.011587, 0.164129, -0.0163045 },     { -0.00997381, 0.169338, -0.0247765 },
+                                        { -0.082875, 0.143405, 0.00186692 },     { 0.0203757, 0.0354405, -0.00287175 },
+                                        { 0.0191274, 0.0363337, -0.00917714 },   { 0.0184456, 0.036388, -0.013479 },
+                                        { 0.0149535, 0.0347732, -0.0154937 },    { 0.0221204, 0.0372026, 0.0342324 },
+                                        { 0.039271, 0.0382866, 0.00854708 },     { 0.0397549, 0.0398545, 0.002614 },
+                                        { 0.0221892, 0.0380614, -0.00446361 },   { 0.0179901, 0.0369066, -0.0161835 },
+                                        { 0.0154148, 0.0392444, -0.0212861 },    { 0.0208023, 0.100118, -0.0213392 },
+                                        { 0.0446004, 0.0409064, 0.00927401 },    { 0.0435625, 0.0411355, 0.00427044 },
+                                        { 0.0381381, 0.0411139, -0.00147908 },   { -0.0478807, 0.135207, 0.00885778 },
+                                        { 0.0217274, 0.0404287, -0.00964433 },   { 0.0206744, 0.0405956, -0.0144437 },
+                                        { 0.0192578, 0.0411681, -0.0195074 },    { -0.0885736, 0.112913, 0.0395856 },
+                                        { -0.026793, 0.106457, -0.0218501 },     { 0.0481487, 0.0428585, 0.0145594 },
+                                        { 0.0521212, 0.0461655, 0.0089655 },     { 0.0480438, 0.0430647, 0.00724585 },
+                                        { 0.0460936, 0.0434131, 0.00284357 },    { 0.0285003, 0.100485, -0.0168103 },
+                                        { 0.0269462, 0.0395833, -0.00334578 },   { -0.0907856, 0.117838, 0.00647331 },
+                                        { -0.062721, 0.167567, -0.0470628 },     { -0.0799532, 0.106813, 0.0316838 },
+                                        { 0.0527437, 0.0462125, 0.0139554 },     { 0.0504533, 0.0466263, 0.00264513 },
+                                        { -0.0322581, 0.117324, -0.0133273 },    { 0.0272475, 0.0455966, -0.00927071 },
+                                        { -0.0146455, 0.0942084, -0.0337341 },   { -0.0411545, 0.16722, -0.010818 },
+                                        { -0.0721385, 0.156112, -0.0384102 },    { 0.0456803, 0.0474217, -0.00311192 },
+                                        { 0.0239407, 0.0433254, -0.00969837 },   { 0.021084, 0.0462585, -0.0205303 },
+                                        { -0.0348527, 0.0351549, -0.0307351 },   { -0.0699867, 0.0663066, 0.0259153 },
+                                        { -0.0747071, 0.149891, -0.0201453 },    { -0.0845448, 0.13725, 0.000743181 },
+                                        { 0.0549514, 0.0484178, 0.0163982 },     { 0.0264565, 0.0466261, -0.0141039 },
+                                        { 0.0225276, 0.0444655, -0.0157683 },    { 0.0330538, 0.0938135, -0.0160538 },
+                                        { 0.0526476, 0.0694992, 0.00297306 },    { 0.0528544, 0.0581339, -0.00277966 },
+                                        { -0.0571464, 0.0671799, 0.0361705 },    { -0.0651544, 0.157167, -0.0515491 },
+                                        { -0.0493189, 0.133682, 0.00119868 },    { -0.032962, 0.10595, -0.0206729 },
+                                        { -0.0649538, 0.155656, -0.045631 },     { -0.0390456, 0.150445, -0.00354536 },
+                                        { 0.0574365, 0.051618, 0.0145183 },      { 0.0574129, 0.0522531, 0.00903377 },
+                                        { 0.0536112, 0.0500965, 0.00204174 },    { 0.0512204, 0.0520121, -0.00218354 },
+                                        { 0.0471226, 0.0515811, -0.00481298 },   { 0.033443, 0.047576, -0.0063817 },
+                                        { 0.00280933, 0.118297, -0.0158208 },    { -0.0147841, 0.10125, -0.0238408 },
+                                        { -0.0620037, 0.167422, -0.0527165 },    { 0.0559147, 0.0528382, 0.00339683 },
+                                        { 0.0334801, 0.0518506, -0.00825293 },   { 0.0287814, 0.0501171, -0.0157926 },
+                                        { 0.0256197, 0.0485542, -0.0190548 },    { -0.00863537, 0.118406, -0.0146114 },
+                                        { -0.0148322, 0.117675, -0.014701 },     { -0.0615138, 0.145712, -0.00481276 },
+                                        { 0.0232531, 0.12083, -0.00456186 },     { -0.0401535, 0.0342718, -0.0275149 },
+                                        { 0.0302657, 0.0496868, -0.0107289 },    { 0.0320066, 0.111334, -0.00737407 },
+                                        { -0.0211003, 0.120417, -0.0102482 },    { -0.0204991, 0.117125, -0.0140803 },
+                                        { -0.00910263, 0.0383602, -0.025776 },   { -0.0525144, 0.11229, -0.0171034 },
+                                        { 0.0202353, 0.123713, -0.00247094 },    { -0.0701749, 0.0347541, -0.0017891 },
+                                        { -0.00340266, 0.114844, -0.0176928 },   { 0.0310248, 0.053713, -0.0140522 },
+                                        { 0.0268191, 0.0528482, -0.020339 },     { -0.0147458, 0.120673, -0.0105853 },
+                                        { 0.0270905, 0.106214, -0.0146756 },     { 0.0465541, 0.0697991, 0.00228503 },
+                                        { -0.00300122, 0.100676, -0.0235814 },   { -0.0755874, 0.076212, 0.033468 },
+                                        { 0.059738, 0.0572998, 0.0151736 },      { 0.0595394, 0.0578717, 0.00861672 },
+                                        { 0.0572091, 0.0580526, 0.00253507 },    { -0.0142907, 0.123147, -0.00746744 },
+                                        { 0.0211831, 0.112303, -0.0140834 },     { 0.0347455, 0.0565046, -0.010714 },
+                                        { 0.0249138, 0.0825163, -0.0245877 },    { -0.0382227, 0.114521, -0.016178 },
+                                        { -0.0819485, 0.0761672, 0.0208322 },    { -0.0269557, 0.0392251, -0.0293943 },
+                                        { 0.0377037, 0.0593401, -0.00852013 },   { 0.0330295, 0.0586306, -0.014729 },
+                                        { 0.0218121, 0.0515865, -0.0236492 },    { -0.0204953, 0.0935908, -0.0331675 },
+                                        { -0.0872217, 0.113521, 0.0440666 },     { -0.0271537, 0.0351608, 0.0509267 },
+                                        { -0.0503825, 0.106302, -0.0194598 },    { 0.0266611, 0.0585067, -0.0219134 },
+                                        { 0.00975018, 0.0945932, -0.0280451 },   { -0.0205524, 0.122391, -0.00754739 },
+                                        { -0.0668021, 0.0909191, -0.0174744 },   { -0.0856155, 0.0942099, -0.00109094 },
+                                        { -0.0915274, 0.11444, 0.0204492 },      { -0.0909048, 0.131701, 0.00809159 },
+                                        { 0.0404851, 0.0578886, -0.0051698 },    { 0.0295964, 0.0580473, -0.0178274 },
+                                        { 0.0266986, 0.0941359, -0.0205949 },    { -0.0677104, 0.172869, -0.0572602 },
+                                        { 0.0142001, 0.118043, -0.013917 },      { -0.0698171, 0.0699687, 0.0326375 },
+                                        { 0.0607097, 0.0648802, 0.0151632 },     { 0.0609346, 0.0630505, 0.0131585 },
+                                        { 0.0602205, 0.0643718, 0.00864139 },    { 0.0574055, 0.0638877, 0.00271573 },
+                                        { -0.0797793, 0.103858, -0.00660016 },   { -0.0563867, 0.137359, -0.00421998 },
+                                        { 0.0344512, 0.0638263, -0.0152012 },    { 0.0307139, 0.0605317, -0.0184589 },
+                                        { 0.0185684, 0.121789, -0.00725624 },    { -0.0456617, 0.112414, -0.0169658 },
+                                        { 0.0456177, 0.0644845, -0.00162168 },   { -0.0584268, 0.0349015, 0.0441202 },
+                                        { -0.0747982, 0.0723674, 0.0308514 },    { -0.0699373, 0.0621854, 0.0151778 },
+                                        { -0.052889, 0.136519, -0.00170821 },    { 0.0410205, 0.0644886, -0.00476733 },
+                                        { 0.0388712, 0.0646166, -0.00976797 },   { 0.0514871, 0.0637279, -0.00174794 },
+                                        { -0.0787297, 0.0744551, 0.0267421 },    { -0.0850281, 0.144269, 0.00618082 },
+                                        { 0.0313094, 0.064487, -0.0188936 },     { 0.0267274, 0.0646171, -0.0220842 },
+                                        { 0.0318737, 0.0877439, -0.0192705 },    { -0.0772455, 0.143995, -0.00470939 },
+                                        { 0.0132576, 0.110443, -0.0183541 },     { -0.00289343, 0.124723, -0.00863032 },
+                                        { -0.0342868, 0.038582, 0.0485461 },     { 0.0200397, 0.0876233, -0.0261205 },
+                                        { 0.0585453, 0.0705354, 0.0146976 },     { 0.0581405, 0.0699819, 0.00856199 },
+                                        { 0.056099, 0.069436, 0.00424359 },      { 0.0370479, 0.0665186, -0.0132637 },
+                                        { -0.062561, 0.172971, -0.0616721 },     { -0.0702718, 0.15494, -0.0455472 },
+                                        { -0.0916259, 0.130499, 0.00930481 },    { -0.070021, 0.148229, -0.0328231 },
+                                        { -0.0721274, 0.0680183, 0.0267753 },    { -0.0745337, 0.15067, -0.0264303 },
+                                        { 0.0431087, 0.0713461, -0.002764 },     { 0.0421659, 0.0692525, -0.00466106 },
+                                        { 0.0345404, 0.0699378, -0.0160391 },    { -0.0342368, 0.122912, -0.00708584 },
+                                        { 0.0401518, 0.070932, -0.00951127 },    { 0.0370706, 0.0707408, -0.013301 },
+                                        { 0.0310856, 0.0702175, -0.0192905 },    { 0.0283004, 0.0705453, -0.0222447 },
+                                        { -0.00859023, 0.101699, -0.0237897 },   { -0.0328234, 0.0400139, -0.029875 },
+                                        { -0.0830588, 0.11047, 0.0397334 },      { 0.0142724, 0.123237, -0.00806485 },
+                                        { -0.0760443, 0.108637, 0.0389078 },     { -0.0732762, 0.154939, -0.0321392 },
+                                        { 0.0160324, 0.0889232, -0.0282477 },    { -0.0901677, 0.131361, 0.0394374 },
+                                        { 0.0455828, 0.0768365, 0.00270178 },    { -0.0516717, 0.0553965, 0.014906 },
+                                        { -0.0376545, 0.121002, -0.0109724 },    { 0.0466318, 0.0762885, 0.00910629 },
+                                        { 0.0437303, 0.0769241, -0.00295564 },   { 0.0405043, 0.0766784, -0.0084913 },
+                                        { 0.0369463, 0.0762836, -0.0128837 },    { 0.0349351, 0.0766648, -0.0155944 },
+                                        { 0.0319237, 0.0763904, -0.0194186 },    { 0.0285208, 0.0758075, -0.0225233 },
+                                        { -0.0646857, 0.068809, 0.0348219 },     { -0.00335573, 0.0986136, -0.0269283 },
+                                        { -0.0383606, 0.100112, -0.0217661 },    { -0.0705433, 0.149897, -0.0387319 },
+                                        { -0.0247871, 0.179215, -0.0188356 },    { 0.00339058, 0.0937023, -0.0318365 },
+                                        { -0.09099, 0.142689, 0.0226645 },               { -0.0851088, 0.102115, 0.000391121 },
+                                        { 0.00299202, 0.124707, -0.00864775 },   { -0.0649459, 0.167336, -0.0329944 },
+                                        { 0.045975, 0.0827243, 0.0146716 },      { 0.0461931, 0.0827376, 0.00867911 },
+                                        { 0.0453461, 0.0826602, 0.00269811 },    { 0.032594, 0.082231, -0.0190597 },
+                                        { -0.0707752, 0.142011, -0.00901143 },   { -0.0396694, 0.045239, -0.0210351 },
+                                        { -0.0736488, 0.145787, -0.0131048 },    { -0.0661855, 0.1779, -0.0529018 },
+                                        { -0.0698006, 0.179227, -0.0517285 },    { -0.0719677, 0.177848, -0.0474604 },
+                                        { -0.0131817, 0.0974247, 0.0509808 },    { -0.0760529, 0.177651, -0.0471457 },
+                                        { -0.0875274, 0.149451, 0.00937476 },    { -0.0847504, 0.149536, 0.00652369 },
+                                        { -0.0853843, 0.0980412, -0.000554198 }, { -0.070162, 0.172945, -0.0393132 },
+                                        { -0.0669053, 0.17136, -0.0404187 },     { -0.0915765, 0.114644, 0.0108349 },
+                                        { 0.0311175, 0.116345, -0.00142056 },    { -0.09039, 0.144074, 0.0142555 },
+                                        { 0.0533752, 0.0724173, 0.00805773 },    { 0.0348115, 0.113636, 0.00289967 },
+                                        { 0.0321047, 0.117128, 0.00373672 },     { -0.0558554, 0.16013, 0.00226313 },
+                                        { 0.0284127, 0.12005, 0.00266093 },      { -0.0693417, 0.151526, -0.0443255 },
+                                        { 0.0509143, 0.0733396, 0.0112131 },     { 0.0485286, 0.0726358, 0.00856732 },
+                                        { 0.0251471, 0.122517, 0.00254898 },     { -0.0684168, 0.170157, -0.0319531 },
+                                        { -0.071028, 0.171274, -0.0325886 },     { -0.0765634, 0.155757, -0.00874762 },
+                                        { 0.0525206, 0.0734678, 0.0148876 },     { 0.035521, 0.113454, 0.00908801 },
+                                        { 0.0208324, 0.125627, 0.00327965 },     { -0.0476722, 0.134348, 0.0194434 },
+                                        { -0.0746083, 0.171229, -0.0326516 },    { 0.0322027, 0.117616, 0.0093642 },
+                                        { 0.0162523, 0.127588, 0.00132734 },     { -0.0914669, 0.142805, 0.0167223 },
+                                        { 0.0290775, 0.120474, 0.00686894 },     { 0.0135909, 0.12914, 0.00336546 },
+                                        { -0.0861635, 0.100458, 0.025719 },      { -0.0653051, 0.165945, -0.0269849 },
+                                        { -0.0698492, 0.16889, -0.0268648 },     { -0.07827, 0.167473, -0.032496 },
+                                        { 0.0215557, 0.0945234, -0.0226594 },    { 0.0260612, 0.123082, 0.00873766 },
+                                        { 0.00920342, 0.130081, 0.00248247 },    { -0.0709934, 0.170517, -0.0295248 },
+                                        { -0.0760202, 0.167938, -0.0272636 },    { 0.0525229, 0.0716654, 0.0211203 },
+                                        { 0.0207167, 0.126566, 0.00922145 },     { -0.0746025, 0.0998033, -0.0126456 },
+                                        { -0.0864333, 0.0890874, 0.0257055 },    { 0.0354941, 0.113435, 0.0150848 },
+                                        { 0.0320737, 0.117698, 0.0146262 },      { 0.00294754, 0.130714, 0.00292443 },
+                                        { -0.0256391, 0.0823957, 0.0519489 },    { -0.0666258, 0.165416, -0.0221631 },
+                                        { -0.0804177, 0.153092, 0.00488677 },    { -0.0645623, 0.0350017, 0.0151892 },
+                                        { -0.0627936, 0.0352479, 0.02012 },      { -0.0642932, 0.0349381, 0.0264604 },
+                                        { -0.0642421, 0.0397497, 0.0267659 },    { -0.0652419, 0.0352202, 0.0324357 },
+                                        { -0.06432, 0.0352261, 0.0387914 },      { -0.0869014, 0.0944088, 0.0260869 },
+                                        { -0.026376, 0.100403, -0.0237519 },     { -0.0704394, 0.0348288, 0.00888692 },
+                                        { -0.0696375, 0.039673, 0.0091864 },     { -0.0678064, 0.035728, 0.013362 },
+                                        { -0.0778433, 0.0819732, 0.0354617 },    { -0.0809318, 0.0827942, 0.0325 },
+                                        { -0.0712316, 0.038974, 0.00275642 },    { -0.0616101, 0.0379618, 0.0219344 },
+                                        { -0.0653778, 0.0407054, 0.0323415 },    { -0.0612949, 0.040108, 0.0438783 },
+                                        { -0.0748891, 0.0826916, 0.0381154 },    { -0.0841641, 0.133769, 0.0486564 },
+                                        { -0.0849106, 0.0945271, 0.0290479 },    { -0.082994, 0.144712, 0.0404065 },
+                                        { -0.0265479, 0.117619, -0.0132781 },    { -0.0679678, 0.0383221, 0.0123903 },
+                                        { -0.0639259, 0.0401146, 0.0151101 },    { -0.0588527, 0.0407802, 0.0202136 },
+                                        { -0.0869621, 0.135589, 0.0440584 },     { -0.038827, 0.0398484, 0.042564 },
+                                        { -0.0253238, 0.0773437, 0.0501603 },    { 0.00864855, 0.111878, -0.0192252 },
+                                        { -0.0625014, 0.04424, 0.0388616 },      { -0.088493, 0.125258, 0.0461673 },
+                                        { 0.0150785, 0.10107, -0.0220372 },      { -0.0810533, 0.0876325, 0.0334622 },
+                                        { -0.0636602, 0.0439221, 0.0322355 },    { -0.0823757, 0.12585, -0.00459555 },
+                                        { -0.0374554, 0.042873, 0.0429512 },     { -0.031328, 0.0432863, 0.0501185 },
+                                        { -0.0841802, 0.0875016, 0.0285815 },    { -0.0690099, 0.0427216, 0.00298087 },
+                                        { -0.0690323, 0.0427133, 0.00739115 },   { -0.0642007, 0.0449178, 0.00895163 },
+                                        { -0.0630005, 0.0427497, 0.0133004 },    { -0.0580777, 0.0444032, 0.0143596 },
+                                        { -0.087476, 0.130712, 0.0458544 },      { -0.0837712, 0.0999337, 0.029339 },
+                                        { -0.083719, 0.0822846, 0.0270932 },     { -0.0209183, 0.0934772, 0.0512134 },
+                                        { -0.0868983, 0.142651, 0.0383505 },     { -0.0588984, 0.0467651, 0.00989959 },
+                                        { -0.0529144, 0.0464475, 0.0158024 },    { -0.0881654, 0.0882094, 0.0209192 },
+                                        { -0.0494075, 0.165901, 0.000731671 },   { -0.0586114, 0.0473978, 0.0337061 },
+                                        { -0.05614, 0.0517476, 0.00835186 },     { -0.0865231, 0.148073, 0.0321271 },
+                                        { -0.0308497, 0.0493297, 0.0429654 },    { -0.0769102, 0.114994, 0.0501188 },
+                                        { -0.0209065, 0.0959579, 0.0474195 },    { -0.0509947, 0.0509637, 0.0150799 },
+                                        { 0.00842415, 0.0889657, -0.0320537 },   { -0.0240561, 0.0544386, 0.0416973 },
+                                        { -0.0510392, 0.0524223, 0.0203213 },    { -0.0526208, 0.0518271, 0.027021 },
+                                        { -0.0504022, 0.0591186, 0.0326891 },    { -0.0478821, 0.0590694, 0.0363134 },
+                                        { -0.0239128, 0.0586553, 0.0421308 },    { -0.0759314, 0.119228, -0.00697007 },
+                                        { -0.0183181, 0.0604564, 0.0506182 },    { -0.0298441, 0.0972531, -0.0235715 },
+                                        { -0.0241926, 0.0628773, 0.0422936 },    { -0.0223998, 0.06467, 0.045979 },
+                                        { -0.0192899, 0.0641483, 0.0503928 },    { -0.0260109, 0.172925, -0.0191453 },
+                                        { -0.0265331, 0.161574, -0.0144318 },    { -0.0558556, 0.15572, -0.00121016 },
+                                        { -0.0599028, 0.136466, -0.0064456 },    { -0.063538, 0.071665, 0.0379463 },
+                                        { -0.0200417, 0.0869862, -0.0378876 },   { -0.0557176, 0.105745, -0.0186241 },
+                                        { -0.0530691, 0.143914, -0.00100898 },   { -0.0256688, 0.0704637, 0.0438935 },
+                                        { -0.0235577, 0.0693774, 0.0470203 },    { -0.0525759, 0.127247, -0.00521525 },
+                                        { -0.0787859, 0.131858, -0.00545913 },   { -0.0580212, 0.120088, -0.0102747 },
+                                        { -0.0396294, 0.110441, -0.0186258 },    { -0.0210282, 0.173113, -0.0214922 },
+                                        { -0.0547593, 0.0563289, 0.0107147 },    { -0.0435534, 0.0345758, -0.024752 },
+                                        { -0.0449833, 0.0346921, -0.0207483 },   { -0.0443576, 0.0390403, -0.0217491 },
+                                        { -0.0462855, 0.0345037, -0.0153112 },   { -0.046619, 0.0396457, -0.0141457 },
+                                        { -0.00904923, 0.0343826, -0.0246429 },  { 0.00311748, 0.100303, -0.0227929 },
+                                        { -0.0690809, 0.0392217, -0.00181724 },  { -0.0920289, 0.131041, 0.0262349 },
+                                        { -0.043414, 0.0372487, -0.0253064 },    { 0.0280974, 0.0818294, -0.0220931 },
+                                        { -0.067702, 0.169446, -0.0560134 },     { -0.0915377, 0.129674, 0.0312365 },
+                                        { -0.0663086, 0.0411162, -0.00443149 },  { -0.0731255, 0.151935, -0.0368879 },
+                                        { -0.0390145, 0.0394889, -0.027598 },    { -0.0637372, 0.0437827, -0.00264533 },
+                                        { -0.0605427, 0.0425565, 0.0246975 },    { -0.0857603, 0.130763, -0.000714461 },
+                                        { -0.0520472, 0.0403573, -0.0107411 },   { -0.0568522, 0.0434504, 0.0224413 },
+                                        { -0.043239, 0.0429342, -0.0193166 },    { -0.0438787, 0.0441322, -0.0144222 },
+                                        { -0.0457505, 0.046486, -0.0105694 },    { -0.0645938, 0.0456897, 0.00313082 },
+                                        { -0.0525978, 0.0464843, 0.0207116 },    { -0.0572578, 0.0459489, 0.026887 },
+                                        { -0.0618962, 0.0443648, 0.0286813 },    { -0.0331467, 0.0453179, -0.0267282 },
+                                        { -0.0377669, 0.0443547, -0.0252099 },   { -0.0320922, 0.114425, -0.0162304 },
+                                        { -0.0578027, 0.0470669, -0.0032674 },   { -0.0914954, 0.147994, 0.0205137 },
+                                        { -0.0400067, 0.0471536, -0.0151042 },   { 0.00454895, 0.121869, -0.0124797 },
+                                        { 0.0151282, 0.112708, -0.0165496 },     { -0.0525787, 0.0463291, -0.00775444 },
+                                        { -0.0599276, 0.0475112, 0.00267117 },   { -0.0726458, 0.147126, -0.0218625 },
+                                        { -0.0740924, 0.168686, -0.0440312 },    { -0.057494, 0.0515426, 0.00319413 },
+                                        { -0.0536918, 0.0483048, 0.0264945 },    { -0.0147156, 0.114453, -0.0172255 },
+                                        { -0.0335191, 0.0480424, -0.021246 },    { 0.019461, 0.0924333, -0.0244344 },
+                                        { 0.0169402, 0.0952065, -0.0238278 },    { 0.0201047, 0.104156, -0.0188197 },
+                                        { -0.0319642, 0.0516657, -0.0152509 },   { -0.0368448, 0.0488256, -0.0131071 },
+                                        { -0.0391265, 0.0518909, -0.0109467 },   { -0.00892221, 0.111576, -0.0202733 },
+                                        { -0.0515659, 0.0515158, -0.00751393 },  { -0.0557028, 0.05294, -0.00268598 },
+                                        { -0.0293421, 0.0526398, -0.0213991 },   { -0.0314453, 0.0496351, -0.0193539 },
+                                        { 0.0322381, 0.10409, -0.0128482 },      { -0.0261025, 0.0525801, -0.0264669 },
+                                        { -0.0583031, 0.116733, -0.0130038 },    { -0.014851, 0.111599, -0.0191484 },
+                                        { -0.0521348, 0.118189, -0.0137451 },    { -0.0517493, 0.0582798, -0.00896954 },
+                                        { -0.0561982, 0.0582462, -0.00310645 },  { -0.0587989, 0.0586119, 0.00276734 },
+                                        { -0.0585564, 0.0578416, 0.00857596 },   { 0.019026, 0.11614, -0.0131686 },
+                                        { -0.0211893, 0.111662, -0.0190883 },    { -0.0239176, 0.0561149, -0.030057 },
+                                        { -0.0272603, 0.058548, -0.027478 },     { -0.0295766, 0.0582799, -0.0217551 },
+                                        { -0.0320928, 0.0589382, -0.0147618 },   { 0.0073938, 0.121789, -0.0126555 },
+                                        { -0.0251946, 0.0595227, -0.0308632 },   { -0.0307167, 0.06013, -0.0194181 },
+                                        { -0.0650113, 0.0632174, -0.00293095 },  { -0.0696479, 0.065751, -0.00198101 },
+                                        { -0.0699926, 0.0635013, 0.00374106 },   { -0.0799435, 0.0724812, 0.0191514 },
+                                        { -0.0676844, 0.160922, -0.0559942 },    { -0.0215435, 0.0636559, -0.0350431 },
+                                        { -0.0258325, 0.0648252, -0.0322087 },   { -0.028982, 0.0636438, -0.0274997 },
+                                        { -0.0304226, 0.0629368, -0.0224261 },   { -0.0319042, 0.0651819, -0.0201942 },
+                                        { -0.0332741, 0.0636337, -0.0160032 },   { -0.0205547, 0.034111, -0.026401 },
+                                        { -0.0743367, 0.0658286, 0.00833126 },   { 0.016103, 0.120745, -0.0103843 },
+                                        { -0.0770212, 0.0700544, 0.00316631 },   { -0.0748219, 0.06693, 0.00451345 },
+                                        { -0.0306317, 0.0657524, -0.025453 },    { -0.0711433, 0.0687078, -0.00390291 },
+                                        { -0.0762625, 0.0716316, -0.00295918 },  { -0.0802204, 0.0713935, 0.00991267 },
+                                        { -0.0913413, 0.148143, 0.0161458 },     { -0.0273736, 0.0700052, -0.0335323 },
+                                        { -0.0300274, 0.0692073, -0.0289677 },   { -0.0316277, 0.0711218, -0.0266514 },
+                                        { -0.0330629, 0.0699765, -0.0212743 },   { -0.0353642, 0.0705896, -0.0177097 },
+                                        { -0.0587004, 0.0391044, -0.0090027 },   { -0.0697696, 0.0703857, -0.00808666 },
+                                        { -0.0804832, 0.0726462, 0.00472466 },   { 0.0151616, 0.126104, -0.00266395 },
+                                        { -0.0745721, 0.072883, -0.00757069 },   { -0.0823908, 0.076277, 0.00270117 },
+                                        { -0.0912831, 0.133698, 0.0142161 },     { 0.00371049, 0.0968817, -0.0280931 },
+                                        { -0.0761392, 0.0766258, -0.00859487 },  { -0.0784749, 0.0748827, -0.00523624 },
+                                        { -0.0806781, 0.0771902, -0.00290803 },  { -0.0834622, 0.0765209, 0.00927112 },
+                                        { 0.00983826, 0.11402, -0.0178612 },     { 0.00210649, 0.0981565, -0.0261244 },
+                                        { -0.0285085, 0.0757575, -0.0348118 },   { -0.0330874, 0.0761249, -0.0270661 },
+                                        { -0.0346568, 0.0757906, -0.0215029 },   { 0.0231104, 0.0892807, -0.0240236 },
+                                        { -0.0312132, 0.0771357, -0.0320416 },   { -0.0700425, 0.0763633, -0.0141464 },
+                                        { -0.0861137, 0.0814707, 0.00908143 },   { -0.086319, 0.08152, 0.0149936 },
+                                        { -0.0208042, 0.0963182, -0.0270563 },   { -0.0211078, 0.114391, -0.0171285 },
+                                        { -0.0746162, 0.0828529, -0.0139325 },   { -0.077295, 0.081216, -0.0100568 },
+                                        { -0.0800127, 0.0821605, -0.00722237 },  { -0.0826334, 0.0820868, -0.00324616 },
+                                        { -0.0844667, 0.0817669, 0.00249573 },   { -0.0860445, 0.0832591, 0.0203255 },
+                                        { -0.084816, 0.0816746, 0.0219849 },     { 0.0545549, 0.0661692, 0.000765649 },
+                                        { -0.0331604, 0.0828369, -0.0270493 },   { -0.0358028, 0.0829047, -0.0227723 },
+                                        { -0.0861942, 0.0842505, 0.00298565 },   { -0.0287072, 0.0827267, -0.0349537 },
+                                        { -0.0311601, 0.0822387, -0.0315627 },   { -0.085403, 0.141865, 0.00516647 },
+                                        { -0.0785169, 0.0885628, -0.0107607 },   { -0.0807046, 0.0887676, -0.00826584 },
+                                        { -0.0843972, 0.0878743, -0.00349923 },  { -0.0855708, 0.0882073, -0.00109946 },
+                                        { -0.0876157, 0.0881286, 0.00369184 },   { -0.0885339, 0.0876942, 0.00897158 },
+                                        { -0.0885791, 0.0877213, 0.0149616 },    { -0.0643854, 0.0348576, -0.00775085 },
+                                        { -0.0512932, 0.034227, -0.0129013 },    { -0.0266839, 0.0458556, -0.027274 },
+                                        { -0.0146368, 0.0981541, -0.0264318 },   { -0.0213468, 0.10077, -0.0239588 },
+                                        { 0.020932, 0.0825954, -0.0267347 },     { 0.00759225, 0.0928541, -0.0309237 },
+                                        { -0.0144478, 0.0879274, -0.0380297 },   { -0.00859724, 0.11451, -0.0173132 },
+                                        { 0.0264818, 0.109935, -0.0126182 },     { -0.0145855, 0.0385179, -0.0267991 },
+                                        { -0.0330054, 0.0337044, -0.0272991 },   { -0.0267872, 0.0340475, -0.0271901 },
+                                        { -0.00849157, 0.0985859, -0.0270535 },  { -0.0110954, 0.120824, -0.0120135 },
+                                        { 0.0367379, 0.0925992, -0.0129888 },    { -0.0571635, 0.0435755, -0.00717607 },
+                                        { -0.0193328, 0.0979251, -0.024792 },    { -0.0203798, 0.0385467, -0.0283088 },
+                                        { -0.0587681, 0.0337133, -0.00871891 },  { -0.0517919, 0.100655, -0.0213258 },
+                                        { 0.00702627, 0.0978418, -0.0246055 },   { -0.0148892, 0.126068, -0.00252126 },
+                                        { 0.0307578, 0.092446, -0.0188519 },     { 0.0211049, 0.0578126, -0.0266116 },
+                                        { -0.0169237, 0.0970481, -0.0278718 },   { 0.0460004, 0.0581866, -0.00508589 },
+                                        { -0.00944331, 0.0822271, -0.0381067 },  { -0.0635881, 0.0392124, -0.00717766 },
+                                        { 0.00864227, 0.0386371, -0.0233053 },   { 0.0252935, 0.0769557, -0.0248407 },
+                                        { -0.0229653, 0.0895159, -0.036199 },    { -0.0523791, 0.0341193, -0.00994653 },
+                                        { 0.0211693, 0.0643935, -0.0268578 },    { -0.0515867, 0.13164, -0.0028092 },
+                                        { -0.0149669, 0.0345529, -0.0254273 },   { -0.0161167, 0.127288, 0.00169291 },
+                                        { -0.0469232, 0.128515, -0.00163965 },   { -0.00961381, 0.127158, -0.00378809 },
+                                        { -0.0074566, 0.128562, -0.00130751 },   { -0.00304493, 0.128909, -0.00174857 },
+                                        { 0.0028379, 0.129022, -0.00194723 },    { 0.00903363, 0.128674, -0.00165013 },
+                                        { -0.0561607, 0.131588, -0.00571429 },   { -0.0457551, 0.127167, -0.00484962 },
+                                        { -0.00304746, 0.127678, -0.00456004 },  { 0.00303811, 0.12768, -0.00442 },
+                                        { 0.0101526, 0.126812, -0.00466464 },    { -0.0553259, 0.126836, -0.00601308 },
+                                        { 0.00799473, 0.034846, -0.0206913 },    { 0.0027179, 0.0342191, -0.0204737 },
+                                        { -0.00295804, 0.0342418, -0.0216222 },  { 0.0134674, 0.0353221, -0.0196961 },
+                                        { 0.00440963, 0.0383063, -0.0240776 },   { 0.00140752, 0.0383474, -0.0246147 },
+                                        { -0.00309177, 0.0383877, -0.0251866 },  { -0.0575023, 0.100661, -0.0195211 },
+                                        { -0.0485739, 0.15316, -0.00547278 },    { -0.0646573, 0.0334831, -0.00296009 },
+                                        { -0.0640796, 0.100426, -0.0173936 },    { -0.0704415, 0.100139, -0.0146037 },
+                                        { -0.0326376, 0.155806, -0.00949884 },   { 0.0336094, 0.0373624, 0.00273412 },
+                                        { 0.0320943, 0.0397885, -0.00195136 },   { 0.0158502, 0.0449602, -0.0237212 },
+                                        { 0.00889467, 0.0426449, -0.0242659 },   { 0.00312499, 0.0452721, -0.026588 },
+                                        { -0.00298345, 0.044686, -0.0272222 },   { -0.00912346, 0.0448524, -0.0280671 },
+                                        { -0.0145351, 0.0443266, -0.0277771 },   { -0.0209223, 0.0460913, -0.0281918 },
+                                        { 0.034052, 0.0448434, -0.00540113 },    { -0.0312646, 0.158257, -0.01223 },
+                                        { 0.0401509, 0.0448981, -0.00354586 },   { 0.0143253, 0.0473484, -0.0251513 },
+                                        { 0.00937888, 0.0466526, -0.0261685 },   { -0.0766531, 0.0695423, 0.0207982 },
+                                        { 0.0087246, 0.0517916, -0.0291615 },    { 0.00299372, 0.0506927, -0.0298557 },
+                                        { -0.00164566, 0.0489436, -0.0304144 },  { -0.00321397, 0.0522596, -0.0314075 },
+                                        { -0.00915341, 0.0509217, -0.0318681 },  { -0.0146018, 0.0513752, -0.0319045 },
+                                        { -0.0161558, 0.0488543, -0.0303763 },   { -0.0205843, 0.0508011, -0.0296435 },
+                                        { 0.0405252, 0.0518855, -0.00654453 },   { 0.0149309, 0.0520772, -0.0273859 },
+                                        { 0.041884, 0.0490868, -0.00604367 },    { 0.019962, 0.0529908, -0.0261219 },
+                                        { -0.0198501, 0.0534234, -0.0312267 },   { -0.0336273, 0.0527187, -0.0106243 },
+                                        { -0.0461112, 0.0529158, -0.0101664 },   { -0.0204, 0.161875, -0.014658 },
+                                        { 0.0449924, 0.0530898, -0.00614891 },   { 0.00733679, 0.0546532, -0.0305038 },
+                                        { 0.00283568, 0.0546532, -0.0307468 },   { -0.00302245, 0.0577, -0.0331477 },
+                                        { -0.00914668, 0.0576676, -0.0341165 },  { -0.01517, 0.058199, -0.0349877 },
+                                        { -0.0202707, 0.0581031, -0.0333681 },   { 0.0140844, 0.057965, -0.028983 },
+                                        { 0.0103301, 0.0588553, -0.0299472 },    { 0.00732823, 0.0588898, -0.0306117 },
+                                        { 0.0027369, 0.0590151, -0.0321928 },    { -0.0337187, 0.0579742, -0.0115824 },
+                                        { -0.0390711, 0.0582467, -0.0115033 },   { -0.0460474, 0.0579124, -0.0115174 },
+                                        { -0.00961439, 0.0642168, -0.0358564 },  { -0.044157, 0.0599825, -0.0123877 },
+                                        { 0.015251, 0.0645803, -0.029567 },      { 0.00839294, 0.0649214, -0.0316957 },
+                                        { 0.00325858, 0.0643529, -0.0332439 },   { -0.00361257, 0.0645861, -0.034907 },
+                                        { -0.0144709, 0.065006, -0.0371603 },    { -0.0366623, 0.060679, -0.0122791 },
+                                        { -0.0526404, 0.0636402, -0.0101297 },   { -0.0381866, 0.0648919, -0.0142073 },
+                                        { -0.0452495, 0.0647856, -0.0139819 },   { -0.0599262, 0.0622966, -0.00429285 },
+                                        { -0.0778641, 0.117463, -0.00576778 },   { -0.0187447, 0.0664151, -0.0374779 },
+                                        { -0.0577616, 0.0644884, -0.00779097 },  { -0.0625778, 0.0655353, -0.00741131 },
+                                        { 0.0251088, 0.0710945, -0.0248604 },    { 0.021457, 0.0702729, -0.0273415 },
+                                        { 0.0166747, 0.0701586, -0.0297203 },    { 0.0132745, 0.0702643, -0.0312074 },
+                                        { 0.00867525, 0.0703509, -0.0324278 },   { 0.00229643, 0.0708694, -0.0343123 },
+                                        { -0.0030646, 0.070381, -0.0353565 },    { -0.00773679, 0.0691749, -0.0362051 },
+                                        { -0.0101988, 0.0715122, -0.0373778 },   { -0.0147454, 0.0704429, -0.0382943 },
+                                        { -0.0203984, 0.0706516, -0.038158 },    { -0.0240967, 0.0693418, -0.0362521 },
+                                        { -0.0605175, 0.0673597, -0.0108259 },   { -0.0387293, 0.0706355, -0.0168457 },
+                                        { -0.0451347, 0.0705064, -0.0164504 },   { -0.0523435, 0.0697862, -0.0145984 },
+                                        { -0.0591515, 0.0702891, -0.0147203 },   { -0.0652515, 0.0688492, -0.00993982 },
+                                        { -0.0247614, 0.0719777, -0.0368317 },   { -0.0637884, 0.0712697, -0.0138535 },
+                                        { 0.0211454, 0.0769268, -0.0268772 },    { 0.0162128, 0.0765268, -0.0293784 },
+                                        { 0.0133247, 0.0760196, -0.0306715 },    { 0.00907695, 0.076038, -0.0330382 },
+                                        { 0.00245085, 0.0760857, -0.0351615 },   { -0.00176321, 0.0762288, -0.0360688 },
+                                        { -0.00476487, 0.076286, -0.0369742 },   { -0.00962992, 0.0765936, -0.0378651 },
+                                        { -0.0144481, 0.0764118, -0.0385775 },   { -0.021453, 0.0763574, -0.038668 },
+                                        { -0.024977, 0.0762484, -0.0374518 },    { -0.0377453, 0.0766164, -0.0189124 },
+                                        { -0.0397395, 0.0746623, -0.0180255 },   { -0.0437423, 0.0765905, -0.0187922 },
+                                        { -0.0466377, 0.0744845, -0.0173668 },   { -0.0518623, 0.0745812, -0.0175084 },
+                                        { -0.0589866, 0.0745368, -0.01766 },     { -0.0644081, 0.0756279, -0.0167529 },
+                                        { -0.0721295, 0.0740256, -0.0105719 },   { -0.0615233, 0.0354132, 0.043881 },
+                                        { -0.0524971, 0.0769872, -0.0189536 },   { -0.0587482, 0.0767445, -0.0187462 },
+                                        { 0.013102, 0.0809953, -0.0307917 },     { 0.00892296, 0.0820652, -0.0325478 },
+                                        { 0.0022917, 0.0820297, -0.0349279 },    { -0.00177837, 0.0804805, -0.0364471 },
+                                        { -0.00379684, 0.0824193, -0.037328 },   { -0.0142988, 0.0820384, -0.0390211 },
+                                        { -0.0207708, 0.0823862, -0.0387335 },   { -0.0248089, 0.0818968, -0.0377031 },
+                                        { -0.0735819, 0.0777026, -0.0122023 },   { 0.015425, 0.0831288, -0.0295207 },
+                                        { -0.0383994, 0.0817919, -0.0209596 },   { -0.0451184, 0.0815526, -0.020434 },
+                                        { -0.051814, 0.0818472, -0.0211348 },    { -0.0583689, 0.0812724, -0.0202975 },
+                                        { -0.063949, 0.082768, -0.0188935 },     { -0.0662709, 0.080065, -0.0177832 },
+                                        { -0.0695594, 0.0830593, -0.0170582 },   { -0.00481814, 0.086841, -0.0367951 },
+                                        { -0.0248206, 0.0867524, -0.0367639 },   { 0.0132046, 0.0871602, -0.0305473 },
+                                        { -0.0360837, 0.0867076, -0.023791 },    { -0.00877843, 0.0340556, -0.0204927 },
+                                        { -0.0207128, 0.0342382, -0.0208728 },   { -0.0147915, 0.0341096, -0.0207616 },
+                                        { -0.0265767, 0.0342963, -0.0210989 },   { 0.00282685, 0.0351053, -0.0158136 },
+                                        { 0.00885967, 0.034471, -0.0147487 },    { -0.0390848, 0.0337228, -0.0202617 },
+                                        { -0.0326656, 0.0345334, -0.0201874 },   { -0.00224535, 0.0351539, -0.0166234 },
+                                        { -0.0149096, 0.0357313, -0.0180956 },   { -0.0114808, 0.0353662, -0.0177045 },
+                                        { -0.00921575, 0.0380183, -0.0149732 },  { -0.00282494, 0.0382292, -0.0140636 },
+                                        { 0.00285919, 0.0377324, -0.0134715 },   { 0.0159109, 0.0347098, -0.00882204 },
+                                        { -0.0306839, 0.036693, -0.0184598 },    { -0.0265216, 0.0367471, -0.0188177 },
+                                        { -0.0218341, 0.0369718, -0.0184303 },   { -0.0203027, 0.0382765, -0.0152577 },
+                                        { -0.0152596, 0.0382328, -0.0156428 },   { 0.00738356, 0.0366172, -0.0125003 },
+                                        { 0.00992361, 0.0351979, -0.00924624 },  { 0.00702596, 0.0378387, -0.00879015 },
+                                        { -0.0396958, 0.0342843, -0.014578 },    { -0.0329517, 0.0382154, -0.014678 },
+                                        { -0.0263862, 0.0385778, -0.0153644 },   { 0.00320835, 0.0389424, -0.00953857 },
+                                        { -0.0364387, 0.0357946, -0.0155844 },   { -0.00301526, 0.0391061, -0.00886496 },
+                                        { 0.00831664, 0.0348156, -0.00321961 },  { 0.0145039, 0.0343685, -0.0028433 },
+                                        { -0.0365752, 0.0370276, -0.0136534 },   { -0.0146234, 0.0388055, -0.00887465 },
+                                        { -0.00886749, 0.0389394, -0.00890173 }, { -0.0451032, 0.0336721, -0.00848668 },
+                                        { -0.040313, 0.0350801, -0.00861758 },   { -0.0206235, 0.0386, -0.00878063 },
+                                        { 0.00267879, 0.038424, -0.00319748 },   { 0.015044, 0.0350517, 0.00289039 },
+                                        { 0.0201479, 0.0347806, 0.00348327 },    { 0.027119, 0.0353514, 0.00366834 },
+                                        { 0.0280785, 0.0365531, 0.000826759 },   { -0.0376066, 0.0375692, -0.00942418 },
+                                        { -0.0332748, 0.0384549, -0.00855692 },  { -0.0264541, 0.0384497, -0.00886193 },
+                                        { -0.00299262, 0.0389582, -0.00292437 }, { 0.00451408, 0.0356078, -0.00103635 },
+                                        { 0.00881079, 0.0350428, 0.00356828 },   { 0.0314184, 0.0360255, 0.00457907 },
+                                        { -0.00888202, 0.0387884, -0.00299409 }, { 0.00271787, 0.0349091, 0.00339755 },
+                                        { -0.041199, 0.0341471, -0.00327644 },   { -0.0205479, 0.0384259, -0.00283766 },
+                                        { -0.0146618, 0.0385908, -0.00288739 },  { 0.00103528, 0.0375917, 0.000952222 },
+                                        { 0.0215747, 0.0354906, 0.0086194 },     { 0.0264794, 0.0346514, 0.00870654 },
+                                        { 0.0322391, 0.0355412, 0.00882378 },    { -0.0521057, 0.0334794, -0.00318207 },
+                                        { -0.0455078, 0.0336572, -0.00225818 },  { -0.0334104, 0.0383259, -0.00292317 },
+                                        { -0.0265122, 0.0383343, -0.00296504 },  { -0.00224847, 0.0383354, 0.00320971 },
+                                        { -0.0589386, 0.0334143, -0.00291301 },  { -0.00874044, 0.0385976, 0.00291227 },
+                                        { 0.00273457, 0.0342734, 0.0088248 },    { 0.00621941, 0.0351341, 0.00654928 },
+                                        { -0.080018, 0.109279, 0.0373655 },      { -0.0393178, 0.0336443, 0.00354096 },
+                                        { -0.0213111, 0.0382973, 0.00334866 },   { -0.0146196, 0.0384265, 0.00290922 },
+                                        { -0.00353554, 0.0379644, 0.00874752 },  { 0.0276681, 0.0349662, 0.0149532 },
+                                        { 0.03282, 0.0359255, 0.0147037 },               { 0.0389763, 0.0383079, 0.0145025 },
+                                        { -0.0523961, 0.0335249, 0.00326874 },   { -0.0462346, 0.0335696, 0.00267776 },
+                                        { -0.0277984, 0.0382296, 0.00286126 },   { -0.000947006, 0.0357374, 0.0103469 },
+                                        { 0.0222276, 0.0358262, 0.0160256 },     { 0.0448051, 0.0411192, 0.0150961 },
+                                        { -0.0581064, 0.033504, 0.00272997 },    { -0.0352323, 0.0337248, 0.00491425 },
+                                        { -0.0312985, 0.0381858, 0.00167702 },   { -0.0088641, 0.03847, 0.00876261 },
+                                        { 0.0028919, 0.0342894, 0.0147059 },     { -0.0703332, 0.0340583, 0.00286723 },
+                                        { -0.0648245, 0.0334924, 0.00301734 },   { -0.0387963, 0.034763, 0.00935652 },
+                                        { -0.0332327, 0.0337932, 0.00943608 },   { -0.0203456, 0.0382265, 0.00836296 },
+                                        { -0.0152156, 0.0383161, 0.00935801 },   { -0.000385714, 0.0351459, 0.0134171 },
+                                        { 0.00663645, 0.0342324, 0.0159688 },    { 0.0268074, 0.0356469, 0.0204126 },
+                                        { 0.0309391, 0.0362152, 0.0189937 },     { 0.0334119, 0.0376179, 0.0210082 },
+                                        { -0.0515734, 0.0338904, 0.00817232 },   { -0.0454999, 0.0352808, 0.00804865 },
+                                        { -0.0263229, 0.0380313, 0.00871732 },   { -0.0031858, 0.0377098, 0.014513 },
+                                        { 0.0211051, 0.0351552, 0.0207004 },     { 0.0391983, 0.0395969, 0.0205879 },
+                                        { 0.0441778, 0.0418755, 0.0204802 },     { -0.0580282, 0.0335624, 0.00918162 },
+                                        { -0.00922404, 0.0383488, 0.0150261 },   { 0.00313746, 0.0352426, 0.0204176 },
+                                        { 0.00877508, 0.0346179, 0.020856 },     { 0.0468489, 0.0434226, 0.0210936 },
+                                        { -0.0648031, 0.0337402, 0.00884817 },   { -0.0338156, 0.0345063, 0.0150293 },
+                                        { -0.0149173, 0.0382498, 0.0147214 },    { 0.0146344, 0.0345628, 0.0222588 },
+                                        { -0.0365655, 0.0357926, 0.0130139 },    { -0.0262153, 0.0376693, 0.0148666 },
+                                        { -0.0205165, 0.0381248, 0.0146779 },    { -0.00229335, 0.0382456, 0.020565 },
+                                        { 0.014723, 0.0347707, 0.0263935 },      { 0.0210245, 0.0353476, 0.0265418 },
+                                        { 0.0250756, 0.0364517, 0.0246847 },     { 0.0273584, 0.0381522, 0.0267127 },
+                                        { 0.0321164, 0.0401984, 0.026762 },      { -0.053829, 0.0335431, 0.0139547 },
+                                        { 0.00114114, 0.037661, 0.0223414 },     { 0.00915473, 0.0353589, 0.0262457 },
+                                        { 0.0380552, 0.0412819, 0.02589 },               { -0.0588034, 0.0336951, 0.0146283 },
+                                        { -0.0339319, 0.0346253, 0.0202274 },    { -0.0152545, 0.0382629, 0.0204704 },
+                                        { -0.00888844, 0.0384087, 0.0207206 },   { 0.00307272, 0.0384964, 0.0264151 },
+                                        { -0.0261643, 0.0378491, 0.0205422 },    { -0.0205429, 0.0381473, 0.0213758 },
+                                        { -0.0538188, 0.0335608, 0.0210581 },    { -0.00301594, 0.03875, 0.0263901 },
+                                        { 0.00756209, 0.0380712, 0.0285007 },    { 0.0143741, 0.0348327, 0.0331833 },
+                                        { 0.0198279, 0.03555, 0.0321213 },               { 0.0236875, 0.0373106, 0.0299772 },
+                                        { -0.0588476, 0.033906, 0.020465 },      { -0.00882687, 0.0386047, 0.0265705 },
+                                        { 0.00847025, 0.0383344, 0.0315598 },    { 0.0108958, 0.035647, 0.0330663 },
+                                        { -0.0366651, 0.0353042, 0.023032 },     { -0.0340084, 0.0344659, 0.0266224 },
+                                        { -0.0270447, 0.0379104, 0.0270529 },    { -0.0210471, 0.0383013, 0.026282 },
+                                        { -0.0147317, 0.0384888, 0.0265233 },    { -0.0712786, 0.0733348, 0.0355839 },
+                                        { -0.0388887, 0.0346255, 0.0265538 },    { 0.00290004, 0.0393205, 0.032168 },
+                                        { 0.0155389, 0.0350901, 0.0393977 },     { 0.0195159, 0.0358111, 0.0367948 },
+                                        { -0.0589139, 0.0341314, 0.0264586 },    { -0.052234, 0.0340737, 0.0268887 },
+                                        { -0.0447866, 0.0339274, 0.0274346 },    { -0.0310127, 0.0369382, 0.02848 },
+                                        { -0.00908756, 0.0390146, 0.0330901 },   { -0.00293287, 0.039209, 0.03365 },
+                                        { 0.00861952, 0.0346654, 0.0391536 },    { -0.0149144, 0.0388312, 0.0324344 },
+                                        { 0.00392423, 0.0347398, 0.0399064 },    { -0.0657827, 0.0618455, 0.00187562 },
+                                        { -0.0640051, 0.0606097, 0.00361345 },   { -0.0455164, 0.0345095, 0.0326748 },
+                                        { -0.0385699, 0.0344168, 0.033204 },     { -0.0342024, 0.0351611, 0.0325685 },
+                                        { -0.0270303, 0.0384799, 0.0326469 },    { -0.0209433, 0.0387397, 0.0332273 },
+                                        { -0.0520994, 0.0344582, 0.0326775 },    { -0.0313489, 0.0377268, 0.0321213 },
+                                        { -0.00219023, 0.0348305, 0.0410082 },   { 0.00818206, 0.0355366, 0.0443043 },
+                                        { 0.014947, 0.0361331, 0.0431407 },      { -0.0642564, 0.0597236, 0.0092932 },
+                                        { -0.0584732, 0.0343588, 0.0331559 },    { -0.0145859, 0.0393004, 0.0380317 },
+                                        { -0.00937548, 0.0394517, 0.037871 },    { -0.0588297, 0.0579582, 0.0145443 },
+                                        { -0.038732, 0.0346956, 0.0400227 },     { -0.0331487, 0.034492, 0.0390527 },
+                                        { -0.0201914, 0.0391628, 0.0381696 },    { -0.00878985, 0.0348233, 0.0452949 },
+                                        { -0.0031441, 0.0351515, 0.045825 },     { -0.0701619, 0.0622789, 0.00863964 },
+                                        { -0.0451191, 0.034688, 0.0396457 },     { -0.0256628, 0.0389081, 0.0373249 },
+                                        { -0.0146115, 0.0348173, 0.0458198 },    { -0.0636462, 0.0593677, 0.014889 },
+                                        { -0.0531671, 0.0345191, 0.0391729 },    { -0.0595372, 0.034497, 0.0397515 },
+                                        { -0.0329555, 0.0349777, 0.045552 },     { -0.0262436, 0.034809, 0.0452831 },
+                                        { -0.0215554, 0.0348112, 0.0459347 },    { -0.0633407, 0.0601272, 0.0190813 },
+                                        { -0.0471, 0.0351015, 0.0434178 },               { -0.0120723, 0.0353434, 0.0494553 },
+                                        { -0.016313, 0.0351836, 0.0504037 },     { -0.0483699, 0.146034, -0.00115148 },
+                                        { -0.0264335, 0.156562, -0.00835956 },   { -0.065003, 0.144791, -0.0142909 },
+                                        { -0.066228, 0.151547, -0.0394609 },     { -0.0663323, 0.145309, -0.018858 },
+                                        { -0.0412403, 0.152108, -0.00674014 } };
index 6879038..e5e466f 100644 (file)
@@ -26,27 +26,26 @@ using std::endl;
 
 static cv::Mat image;
 
-class ImageServiceImpl final : public NLImageService::Service {
-
+class ImageServiceImpl final : public NLImageService::Service
+{
 public:
-
-       Status DrawImage(ServerContext* context, const NLImageDrawRequest* request, ::Empty* reply) {
+       Status DrawImage(ServerContext *context, const NLImageDrawRequest *request, ::Empty *reply)
+       {
                NLImage image_message = (*request).image();
 
                unsigned long length = image_message.data().length();
-               byte *imgData = (byte*)malloc(sizeof(image_message.data()[0])*image_message.data().length());
+               byte *imgData = (byte *) malloc(sizeof(image_message.data()[0]) * image_message.data().length());
                memcpy(imgData, image_message.data().c_str(), image_message.data().size());
-               std::vector<uchar> jpeg(imgData, imgData+length);
+               std::vector<uchar> jpeg(imgData, imgData + length);
                image = cv::imdecode(jpeg, cv::IMREAD_COLOR);
 
                return Status::OK;
        }
 };
 
-
-void runServer(const char* url) {
-
-       std::cout << "Runserver function with "<< url << std::endl;
+void runServer(const char *url)
+{
+       std::cout << "Runserver function with " << url << std::endl;
 
        std::string server_address(url);
        ImageServiceImpl service;
@@ -61,16 +60,16 @@ void runServer(const char* url) {
 
        image = cv::imread("img/intro.png");
        cv::namedWindow(WIN_NAME, cv::WINDOW_NORMAL);
-       cv::moveWindow(WIN_NAME, 0,0);
-       cv::resizeWindow(WIN_NAME, 1280,720);
-       while(1) {
+       cv::moveWindow(WIN_NAME, 0, 0);
+       cv::resizeWindow(WIN_NAME, 1280, 720);
+       while (1) {
                cv::imshow(WIN_NAME, image);
                cv::waitKey(1);
        }
 }
 
-
-int main(int argc, char *argv[]) {
+int main(int argc, char *argv[])
+{
        if (argc != 2) {
                std::cout << "server <ip:port>" << std::endl;
                return 0;
old mode 100755 (executable)
new mode 100644 (file)
index e6610c2..42c152a
@@ -42,8 +42,7 @@ static const char doc[] = "[visualizer]\vmediavision visualizer test\n\
 
 static const char args_doc[] = "2D|3D SOURCE";
 
-struct arguments
-{
+struct arguments {
        int type;
        std::string url;
 };
@@ -57,10 +56,10 @@ void fill_buffer_2d(unsigned char *data, unsigned int r, unsigned int g, unsigne
        int i = 0;
 
        for (i = 0; i < IMAGE_WIDTH * IMAGE_HEIGHT; i++) {
-               data[i*4] = r;
-               data[i*4+1] = g;
-               data[i*4+2] = b;
-               data[i*4+3] = 255;
+               data[i * 4] = r;
+               data[i * 4 + 1] = g;
+               data[i * 4 + 2] = b;
+               data[i * 4 + 3] = 255;
        }
 }
 
@@ -73,7 +72,7 @@ void perform_visualize_2d(struct arguments *arguments, unsigned int r, unsigned
        unsigned long buffer_size = IMAGE_WIDTH * IMAGE_WIDTH * RGBA888;
        int err = MEDIA_VISION_ERROR_NONE;
 
-       data_buffer = new(std::nothrow)unsigned char[buffer_size];
+       data_buffer = new (std::nothrow) unsigned char[buffer_size];
        fill_buffer_2d(data_buffer, r, g, b);
 
        err = mv_create_source(&source);
@@ -82,8 +81,8 @@ void perform_visualize_2d(struct arguments *arguments, unsigned int r, unsigned
                goto out;
        }
 
-       err = mv_source_fill_by_buffer(source, data_buffer, buffer_size,
-                       IMAGE_WIDTH, IMAGE_HEIGHT, MEDIA_VISION_COLORSPACE_RGBA);
+       err = mv_source_fill_by_buffer(source, data_buffer, buffer_size, IMAGE_WIDTH, IMAGE_HEIGHT,
+                                                                  MEDIA_VISION_COLORSPACE_RGBA);
        if (MEDIA_VISION_ERROR_NONE != err) {
                LOGE("Errors were occurred during filling the source!!! code : %i", err);
                goto out;
@@ -93,7 +92,7 @@ void perform_visualize_2d(struct arguments *arguments, unsigned int r, unsigned
 
 out:
        if (data_buffer != NULL) {
-               delete [] data_buffer;
+               delete[] data_buffer;
                data_buffer = NULL;
        }
 
@@ -116,14 +115,14 @@ void perform_visualize_3d(struct arguments *arguments)
 
        if (!is_raw_initialized) {
                is_raw_initialized = true;
-           int i = 0;
+               int i = 0;
                int x, y;
                int idx;
 
-               depth = (float *)malloc(DEPTH_WIDTH * DEPTH_HEIGHT * 4);
+               depth = (float *) malloc(DEPTH_WIDTH * DEPTH_HEIGHT * 4);
                for (i = 0; i < POINTS_BUNNY; i++) {
-                       x = (int)((bunny[i][0] + 0.0944) * 1000.0);
-                       y = (int)((0.1848 - bunny[i][1]) * 1000.0);
+                       x = (int) ((bunny[i][0] + 0.0944) * 1000.0);
+                       y = (int) ((0.1848 - bunny[i][1]) * 1000.0);
                        idx = y * DEPTH_WIDTH + x;
                        depth[idx] = (0.0585 - bunny[i][2]) * 5.0;
                }
@@ -133,10 +132,10 @@ void perform_visualize_3d(struct arguments *arguments)
                        goto out;
                }
                unsigned long buffer_size = DEPTH_WIDTH * DEPTH_HEIGHT * 4;
-               data_buffer_3d = (unsigned char*)malloc(buffer_size);
+               data_buffer_3d = (unsigned char *) malloc(buffer_size);
                memset(data_buffer_3d, 255, buffer_size);
-               err = mv_source_fill_by_buffer(source, data_buffer_3d, buffer_size,
-                                               DEPTH_WIDTH, DEPTH_HEIGHT, MEDIA_VISION_COLORSPACE_RGB888);
+               err = mv_source_fill_by_buffer(source, data_buffer_3d, buffer_size, DEPTH_WIDTH, DEPTH_HEIGHT,
+                                                                          MEDIA_VISION_COLORSPACE_RGB888);
                if (MEDIA_VISION_ERROR_NONE != err) {
                        LOGE("Errors were occurred during filling the source!!! code : %i", err);
                        goto out;
@@ -144,12 +143,12 @@ void perform_visualize_3d(struct arguments *arguments)
        }
 
        if (source != NULL && depth != NULL)
-               while(1)
+               while (1)
                        mv_util_visualizer_3d(source, depth, 140, 25);
 
 out:
        if (data_buffer_3d != NULL) {
-               delete [] data_buffer_3d;
+               delete[] data_buffer_3d;
                data_buffer_3d = NULL;
        }
 
@@ -165,7 +164,7 @@ out:
 
 static error_t parse_opt(int key, char *arg, struct argp_state *state)
 {
-       struct arguments *arguments = (struct arguments *)state->input;
+       struct arguments *arguments = (struct arguments *) state->input;
 
        switch (key) {
        case ARGP_KEY_NO_ARGS:
@@ -199,15 +198,15 @@ int main(int argc, char *argv[])
        int i = 0;
 
        struct arguments arguments;
-       argp_parse (&argp, argc, argv, 0, 0, &arguments);
+       argp_parse(&argp, argc, argv, 0, 0, &arguments);
 
        std::chrono::system_clock::time_point StartTime = std::chrono::system_clock::now();
        if (arguments.type == 0) {
                std::cout << "visualize_2d localhost" << std::endl;
                for (i = 0; i < 6; i++)
-                       perform_visualize_2d(&arguments, 0, 0 , 0, NULL); // dummy black screen
+                       perform_visualize_2d(&arguments, 0, 0, 0, NULL); // dummy black screen
                for (i = 0; i < 6; i++)
-                       perform_visualize_2d(&arguments, 255, 0 , 0, NULL); // red
+                       perform_visualize_2d(&arguments, 255, 0, 0, NULL); // red
                for (i = 0; i < 6; i++)
                        perform_visualize_2d(&arguments, 0, 255, 0, NULL); // green
                for (i = 0; i < 6; i++)
@@ -226,7 +225,8 @@ int main(int argc, char *argv[])
                for (i = 0; i < 6; i++)
                        perform_visualize_2d(&arguments, 0, 0, 255, arguments.url.c_str()); // blue
        }
-       std::chrono::milliseconds ms = std::chrono::duration_cast<std::chrono::milliseconds>(std::chrono::system_clock::now() - StartTime);
+       std::chrono::milliseconds ms =
+                       std::chrono::duration_cast<std::chrono::milliseconds>(std::chrono::system_clock::now() - StartTime);
        std::cout << "total : " << ms.count() << "ms" << std::endl;
 
        LOGI("Media Vision visualizer-Testsuite is closed.");