From 22c32ae8649e8540198942b33d4bab72c4ea7238 Mon Sep 17 00:00:00 2001
From: Christian C <cc@localhost>
Date: Sun, 23 Mar 2025 15:34:48 -0700
Subject: Userspace types

---
 lib/seg/mask_data.c | 82 ++++++++++++++++++++++++++---------------------------
 lib/seg/util.c      | 12 ++++----
 2 files changed, 47 insertions(+), 47 deletions(-)

(limited to 'lib/seg')

diff --git a/lib/seg/mask_data.c b/lib/seg/mask_data.c
index dc3a811..52a3ac4 100644
--- a/lib/seg/mask_data.c
+++ b/lib/seg/mask_data.c
@@ -4,9 +4,9 @@
 #include <stdio.h>
 
 // Allocate Mask Data for Label
-struct MaskData* create_mask_data(ImageMaskData_t label)
+MaskData* create_mask_data(ImageMaskData_t label)
 {
-  struct MaskData *data = (struct MaskData*)malloc(sizeof(struct MaskData));
+  MaskData *data = (MaskData*)malloc(sizeof(MaskData));
   data->label = label;
   data->area = 0;
   data->perimeter = 0;
@@ -14,15 +14,15 @@ struct MaskData* create_mask_data(ImageMaskData_t label)
 }
 
 // Compare mask data labels
-bool_t compare_labels(struct MaskData* left, struct MaskData* right)
+bool_t compare_labels(MaskData* left, MaskData* right)
 {
   return left->label < right->label;
 }
 
 // Create AVL Mask node
-struct AVLNode* create_avl_mask_node(struct MaskData* data)
+AVLNode* create_avl_mask_node(MaskData* data)
 {
-  struct AVLNode* node = (struct AVLNode*)malloc(sizeof(struct AVLNode));
+  AVLNode* node = (AVLNode*)malloc(sizeof(AVLNode));
   if (node == NULL) {
     return NULL;
   }
@@ -35,31 +35,31 @@ struct AVLNode* create_avl_mask_node(struct MaskData* data)
 }
 
 // Insert MaskData into the AVL Tree
-struct Result insert_mask(struct AVLNode* node, struct MaskData* data)
+Result insert_mask(AVLNode* node, MaskData* data)
 {
-  struct Result result;
+  Result result;
   // 1. Standard BST insertion
   if (node == NULL) {
-    return (struct Result) {create_avl_mask_node(data), TRUE};
+    return (Result) {create_avl_mask_node(data), TRUE};
   }
 
-  struct MaskData *node_data = (struct MaskData*)node->data;
+  MaskData *node_data = (MaskData*)node->data;
   if (node->compare(data, node_data)) {
     result = insert_mask(node->left, data);
     if (!result.success) {
       fprintf(stderr, "Failed to insert!");
       return result;
     }
-    node->left = (struct AVLNode*)result.data;
+    node->left = (AVLNode*)result.data;
   } else if (node->compare(node->data, data)) {
     result = insert_mask(node->right, data);
     if (!result.success) {
       fprintf(stderr, "Failed to insert!");
       return result;
     }
-    node->right = (struct AVLNode*)result.data;
+    node->right = (AVLNode*)result.data;
   } else {
-    return (struct Result) {node, FALSE};
+    return (Result) {node, FALSE};
   }
 
   // 2. Update height of the ancestor node
@@ -71,53 +71,53 @@ struct Result insert_mask(struct AVLNode* node, struct MaskData* data)
 
   // LeftLeft
   if ((balance > 1) && node->compare(data, node->left->data)) {
-    return (struct Result) {right_rotate(node), TRUE};
+    return (Result) {right_rotate(node), TRUE};
   }
   // RightRight
   if ((balance < -1) && node->compare(node->right->data, data)) {
-    return (struct Result) {left_rotate(node), TRUE};
+    return (Result) {left_rotate(node), TRUE};
   }
   // LeftRight
   if ((balance > 1) && node->compare(node->left->data, data)) {
-    return (struct Result) {right_rotate(node), TRUE};
+    return (Result) {right_rotate(node), TRUE};
   }
   // RightLeft
   if ((balance < -1) && node->compare(data,node->right->data)) {
-    return (struct Result) {left_rotate(node), TRUE};
+    return (Result) {left_rotate(node), TRUE};
   }
-  return (struct Result) {node, TRUE};
+  return (Result) {node, TRUE};
 }
 
 // Allocate a label's Mask data in a tree
 //  If it already exists, skip the allocation
-struct AVLNode* insert_mask_alloc(struct AVLNode* node, ImageMaskData_t label)
+AVLNode* insert_mask_alloc(AVLNode* node, ImageMaskData_t label)
 {
-  struct MaskData* data = create_mask_data(label);
-  struct Result result = insert_mask(node, data);
+  MaskData* data = create_mask_data(label);
+  Result result = insert_mask(node, data);
   if (!result.success) {
     free(data);
   }
-  return (struct AVLNode*)result.data;
+  return (AVLNode*)result.data;
 }
 
 // Print AVL Node Mask Data Label
-void print_label(struct AVLNode* root)
+void print_label(AVLNode* root)
 {
   if (root != NULL) {
     print_label(root->left);
-    struct MaskData* data = root->data;
+    MaskData* data = root->data;
     printf("%d: (%zu, %zu) ", data->label, data->area, data->perimeter);
     print_label(root->right);
   }
 }
 
 // Increase the label's area
-bool_t increase_label_area(struct AVLNode* root, ImageMaskData_t label)
+bool_t increase_label_area(AVLNode* root, ImageMaskData_t label)
 {
   if (root == NULL) {
     return FALSE;
   }
-  struct MaskData* data = (struct MaskData*)root->data;
+  MaskData* data = (MaskData*)root->data;
   if (data->label == label) {
     data->area++;
   }
@@ -131,12 +131,12 @@ bool_t increase_label_area(struct AVLNode* root, ImageMaskData_t label)
 }
 
 // Increase the label's perimeter
-bool_t increase_label_perimeter(struct AVLNode* root, ImageMaskData_t label)
+bool_t increase_label_perimeter(AVLNode* root, ImageMaskData_t label)
 {
   if (root == NULL) {
     return FALSE;
   }
-  struct MaskData* data = (struct MaskData*)root->data;
+  MaskData* data = (MaskData*)root->data;
   if (data->label == label) {
     data->perimeter++;
   }
@@ -151,9 +151,9 @@ bool_t increase_label_perimeter(struct AVLNode* root, ImageMaskData_t label)
 
 // Increase the label's area
 //  Create an AVL node if it doesn't exist
-struct AVLNode* increase_label_area_alloc(struct AVLNode* root, ImageMaskData_t label)
+AVLNode* increase_label_area_alloc(AVLNode* root, ImageMaskData_t label)
 {
-  struct AVLNode* new_root = root;
+  AVLNode* new_root = root;
   bool_t success = increase_label_area(new_root, label);
   if (success == FALSE) {
     new_root = insert_mask_alloc(new_root, label);
@@ -164,9 +164,9 @@ struct AVLNode* increase_label_area_alloc(struct AVLNode* root, ImageMaskData_t
 
 // Increase the label's perimeter
 //  Create an AVL node if it doesn't exist
-struct AVLNode* increase_label_perimeter_alloc(struct AVLNode* root, ImageMaskData_t label)
+AVLNode* increase_label_perimeter_alloc(AVLNode* root, ImageMaskData_t label)
 {
-  struct AVLNode* new_root = root;
+  AVLNode* new_root = root;
   bool_t success = increase_label_perimeter(new_root, label);
   if (success == FALSE) {
     new_root = insert_mask_alloc(new_root, label);
@@ -182,7 +182,7 @@ bool_t compare_image_mask_data_t(ImageMaskData_t* s1, ImageMaskData_t* s2)
 }
 
 // In-order traversal print pointer
-void print_in_order_image_mask_data_t(struct AVLNode* root)
+void print_in_order_image_mask_data_t(AVLNode* root)
 {
   if (root != NULL) {
     print_in_order_image_mask_data_t(root->left);
@@ -192,7 +192,7 @@ void print_in_order_image_mask_data_t(struct AVLNode* root)
 }
 
 // Check if ImageMaskData_t in AVLTree with ImageMaskData_t* data
-bool_t in_image_mask_data_t_tree(struct AVLNode* root, ImageMaskData_t value)
+bool_t in_image_mask_data_t_tree(AVLNode* root, ImageMaskData_t value)
 {
   if (root == NULL) {
     return FALSE;
@@ -208,15 +208,15 @@ bool_t in_image_mask_data_t_tree(struct AVLNode* root, ImageMaskData_t value)
 
 // Filter out small masks
 //  Assumption: Contiguous labeling
-struct AVLNode* get_small_labels(struct AVLNode* removal_tree, struct AVLNode* label_tree, size_t min_area, size_t min_perimeter)
+AVLNode* get_small_labels(AVLNode* removal_tree, AVLNode* label_tree, size_t min_area, size_t min_perimeter)
 {
-  struct AVLNode* return_tree = removal_tree;
+  AVLNode* return_tree = removal_tree;
   if (label_tree != NULL) {
     return_tree = get_small_labels(return_tree, label_tree->left, min_area, min_perimeter);
-    struct MaskData* node_data = (struct MaskData*)label_tree->data;
+    MaskData* node_data = (MaskData*)label_tree->data;
     if ((node_data->area < min_area) || (node_data->perimeter < min_perimeter)) {
       // Insert
-      struct Result result = avl_insert(return_tree, &node_data->label, (bool_t (*)(void*,void*))compare_image_mask_data_t);
+      Result result = avl_insert(return_tree, &node_data->label, (bool_t (*)(void*,void*))compare_image_mask_data_t);
       if (result.success) {
 	return_tree = result.data;
       }
@@ -227,9 +227,9 @@ struct AVLNode* get_small_labels(struct AVLNode* removal_tree, struct AVLNode* l
 }
 
 // Get mask label data
-struct AVLNode* get_mask_data(ImageMaskData_t* masks, uint32_t width, uint32_t height)
+AVLNode* get_mask_data(ImageMaskData_t* masks, uint32_t width, uint32_t height)
 {
-  struct AVLNode* root = NULL;
+  AVLNode* root = NULL;
   for (size_t y = 0; y < height; y++) {
     for (size_t x = 0; x < width; x++) {
       size_t coord = x + y*width;
@@ -247,8 +247,8 @@ struct AVLNode* get_mask_data(ImageMaskData_t* masks, uint32_t width, uint32_t h
 // Filter out small masks in mask
 void filter_small_masks(ImageMaskData_t* masks, uint32_t width, uint32_t height, size_t min_area, size_t min_perimeter)
 {
-  struct AVLNode* root = get_mask_data(masks, width, height);
-  struct AVLNode* small_label_tree = NULL;
+  AVLNode* root = get_mask_data(masks, width, height);
+  AVLNode* small_label_tree = NULL;
   small_label_tree = get_small_labels(NULL, root, min_area, min_perimeter);
   for (size_t y = 0; y < height; y++) {
     for (size_t x = 0; x < width; x++) {
diff --git a/lib/seg/util.c b/lib/seg/util.c
index 2952952..6eee1a2 100644
--- a/lib/seg/util.c
+++ b/lib/seg/util.c
@@ -202,7 +202,7 @@ void closeup(ImageMaskData_t** mask, uint32_t width, uint32_t height, size_t num
 // Combine Label Masks
 // For all empty spaces in the destination, put the extra label if it exists
 // Allocates an array if destination is unallocated
-struct ImageMask* combine_masks(struct ImageMask *destination, struct ImageMask *extra_labels)
+ImageMask* combine_masks(ImageMask *destination, ImageMask *extra_labels)
 {
   if (destination == NULL) {
     destination = create_image_mask(extra_labels->width, extra_labels->height);
@@ -220,7 +220,7 @@ struct ImageMask* combine_masks(struct ImageMask *destination, struct ImageMask
 // Process Tif File to Labels
 //  width, height will be overwritten with image dimensions
 //  starting_label_p will be incremented for each label found in the image
-struct ImageMask* tif_to_labels(char* tif_file_name, uint32_t *width, uint32_t *height, ImageMaskData_t *starting_label_p)
+ImageMask* tif_to_labels(char* tif_file_name, uint32_t *width, uint32_t *height, ImageMaskData_t *starting_label_p)
 {
   TIFFSetWarningHandler(TiffDummyHandler);
   //-TIFF-IMAGE-OPEN-------------------------------
@@ -268,7 +268,7 @@ struct ImageMask* tif_to_labels(char* tif_file_name, uint32_t *width, uint32_t *
 
   //-FLOOD-FILL-SEGMENTATION-----------------------
   //-CONTIGUOUS-REGION-FINDING---------------------
-  struct ImageMask *im_data = create_image_mask((size_t)*width, (size_t)*height);
+  ImageMask *im_data = create_image_mask((size_t)*width, (size_t)*height);
   if (im_data == NULL) {
     fprintf(stderr, "Memory allocation error\n");
     free(image_data);
@@ -316,13 +316,13 @@ struct ImageMask* tif_to_labels(char* tif_file_name, uint32_t *width, uint32_t *
 }
 
 // Convert mask to bitmap
-struct bitmap_t* image_mask_data_to_bitmap(ImageMaskData_t* buffer, uint32_t width, uint32_t height)
+Bitmap* image_mask_data_to_bitmap(ImageMaskData_t* buffer, uint32_t width, uint32_t height)
 {
-  struct pixel_t* out_buffer = (struct pixel_t*)calloc(width*height, sizeof(struct pixel_t));
+  Pixel* out_buffer = (Pixel*)calloc(width*height, sizeof(Pixel));
   if (out_buffer == NULL) {
     return NULL;
   }
-  struct bitmap_t* bitmap = (struct bitmap_t*)malloc(sizeof(struct bitmap_t));
+  Bitmap* bitmap = (Bitmap*)malloc(sizeof(Bitmap));
   if (bitmap == NULL) {
     free(out_buffer);
     return NULL;
-- 
cgit v1.2.1