cmdfx 0.2.1
Lightweight game engine for your terminal
Loading...
Searching...
No Matches
builder.hpp
Go to the documentation of this file.
1
11#pragma once
12
13extern "C" {
14 #include "cmdfx/core/builder.h"
15}
16
17#include <string>
18#include <vector>
19
20namespace CmdFX {
21 int getWidth(char** array) { return getCharArrayWidth(array); }
22 int getWidth(char*** array) { return getStringArrayWidth(array); }
23 int getHeight(char** array) { return getCharArrayHeight(array); }
24 int getHeight(char*** array) { return getStringArrayHeight(array); }
25 char** createCopy(char** array) { return createCharArrayCopy(array); }
26 char*** createCopy(char*** array) { return createStringArrayCopy(array); }
27 int isSameSize(char** array1, char** array2) { return areCharArraysSameSize(array1, array2); }
28 int isSameSize(char*** array1, char*** array2) { return areStringArraysSameSize(array1, array2); }
29 int compare(char** array1, char** array2) { return compareCharArrays(array1, array2); }
30 int compare(char*** array1, char*** array2) { return compareStringArrays(array1, array2); }
31 int print(char** array) { return printCharArray(array); }
32 int print(char*** array) { return printStringArray(array); }
33
39 char** to2DArray(std::vector<std::string> string) {
40 char** array = Builder::createCharArray(string.size(), string[0].size());
41 for (int i = 0; i < string.size(); i++) {
42 for (int j = 0; j < string[i].size(); j++) {
43 array[i][j] = string[i][j];
44 }
45 }
46
47 return array;
48 }
49
55 char*** to3DArray(std::vector<std::vector<std::string>> string) {
56 char*** array = Builder::createStringArray(string.size(), string[0].size());
57 for (int i = 0; i < string.size(); i++) {
58 for (int j = 0; j < string[i].size(); j++) {
59 array[i][j] = const_cast<char*>(string[i][j].c_str());
60 }
61 }
62
63 return array;
64 }
65
70 namespace Builder {
71 char** createCharArray(int width, int height) { return Char2DBuilder_create(width, height); }
72 char** createCharArrayFilled(int width, int height, char c) { return Char2DBuilder_createFilled(width, height, c); }
73 char*** createStringArray(int width, int height) { return String2DBuilder_create(width, height); }
74 char*** createStringArrayFilled(int width, int height, const std::string& c) { return String2DBuilder_createFilled(width, height, const_cast<char*>(c.c_str())); }
75 char*** createStringArrayFilled(int width, int height, char* c) { return String2DBuilder_createFilled(width, height, c); }
76 int set(char** array, int x, int y, char c) { return Char2DBuilder_setChar(array, x, y, c); }
77 int set(char*** array, int x, int y, const std::string& c) { return String2DBuilder_setString(array, x, y, const_cast<char*>(c.c_str())); }
78 int set(char*** array, int x, int y, char* c) { return String2DBuilder_setString(array, x, y, c); }
79 int hLine(char** array, int x, int y, int length, char c) { return Char2DBuilder_hLine(array, x, y, length, c); }
80 int hLine(char*** array, int x, int y, int length, const std::string& c) { return String2DBuilder_hLine(array, x, y, length, const_cast<char*>(c.c_str())); }
81 int hLine(char*** array, int x, int y, int length, char* c) { return String2DBuilder_hLine(array, x, y, length, c); }
82 int vLine(char** array, int x, int y, int length, char c) { return Char2DBuilder_vLine(array, x, y, length, c); }
83 int vLine(char*** array, int x, int y, int length, const std::string& c) { return String2DBuilder_vLine(array, x, y, length, const_cast<char*>(c.c_str())); }
84 int vLine(char*** array, int x, int y, int length, char* c) { return String2DBuilder_vLine(array, x, y, length, c); }
85 int rect(char** array, int x, int y, int width, int height, char c) { return Char2DBuilder_rect(array, x, y, width, height, c); }
86 int rect(char*** array, int x, int y, int width, int height, const std::string& c) { return String2DBuilder_rect(array, x, y, width, height, const_cast<char*>(c.c_str())); }
87 int rect(char*** array, int x, int y, int width, int height, char* c) { return String2DBuilder_rect(array, x, y, width, height, c); }
88 int fillRect(char** array, int x, int y, int width, int height, char c) { return Char2DBuilder_fillRect(array, x, y, width, height, c); }
89 int fillRect(char*** array, int x, int y, int width, int height, const std::string& c) { return String2DBuilder_fillRect(array, x, y, width, height, const_cast<char*>(c.c_str())); }
90 int fillRect(char*** array, int x, int y, int width, int height, char* c) { return String2DBuilder_fillRect(array, x, y, width, height, c); }
91 int circle(char** array, int x, int y, int radius, char c) { return Char2DBuilder_circle(array, x, y, radius, c); }
92 int circle(char*** array, int x, int y, int radius, const std::string& c) { return String2DBuilder_circle(array, x, y, radius, const_cast<char*>(c.c_str())); }
93 int circle(char*** array, int x, int y, int radius, char* c) { return String2DBuilder_circle(array, x, y, radius, c); }
94 int fillCircle(char** array, int x, int y, int radius, char c) { return Char2DBuilder_fillCircle(array, x, y, radius, c); }
95 int fillCircle(char*** array, int x, int y, int radius, const std::string& c) { return String2DBuilder_fillCircle(array, x, y, radius, const_cast<char*>(c.c_str())); }
96 int fillCircle(char*** array, int x, int y, int radius, char* c) { return String2DBuilder_fillCircle(array, x, y, radius, c); }
97 int ellipse(char** array, int x, int y, int xradius, int yradius, char c) { return Char2DBuilder_ellipse(array, x, y, xradius, yradius, c); }
98 int ellipse(char*** array, int x, int y, int xradius, int yradius, const std::string& c) { return String2DBuilder_ellipse(array, x, y, xradius, yradius, const_cast<char*>(c.c_str())); }
99 int ellipse(char*** array, int x, int y, int xradius, int yradius, char* c) { return String2DBuilder_ellipse(array, x, y, xradius, yradius, c); }
100 int fillEllipse(char** array, int x, int y, int xradius, int yradius, char c) { return Char2DBuilder_fillEllipse(array, x, y, xradius, yradius, c); }
101 int fillEllipse(char*** array, int x, int y, int xradius, int yradius, const std::string& c) { return String2DBuilder_fillEllipse(array, x, y, xradius, yradius, const_cast<char*>(c.c_str())); }
102 int fillEllipse(char*** array, int x, int y, int xradius, int yradius, char* c) { return String2DBuilder_fillEllipse(array, x, y, xradius, yradius, c); }
103 int fill(char** array, char c) { return Char2DBuilder_fill(array, c); }
104 int fill(char*** array, const std::string& c) { return String2DBuilder_fill(array, const_cast<char*>(c.c_str())); }
105 int fill(char*** array, char* c) { return String2DBuilder_fill(array, c); }
106 int line(char** array, int x1, int y1, int x2, int y2, char c) { return Char2DBuilder_line(array, x1, y1, x2, y2, c); }
107 int line(char*** array, int x1, int y1, int x2, int y2, const std::string& c) { return String2DBuilder_line(array, x1, y1, x2, y2, const_cast<char*>(c.c_str())); }
108 int line(char*** array, int x1, int y1, int x2, int y2, char* c) { return String2DBuilder_line(array, x1, y1, x2, y2, c); }
109 int polygon(char** array, int x, int y, int sides, int points, char c) { return Char2DBuilder_polygon(array, x, y, sides, points, c); }
110 int polygon(char*** array, int x, int y, int sides, int points, const std::string& c) { return String2DBuilder_polygon(array, x, y, sides, points, const_cast<char*>(c.c_str())); }
111 int polygon(char*** array, int x, int y, int sides, int points, char* c) { return String2DBuilder_polygon(array, x, y, sides, points, c); }
112 int fillPolygon(char** array, int x, int y, int sides, int points, char c) { return Char2DBuilder_fillPolygon(array, x, y, sides, points, c); }
113 int fillPolygon(char*** array, int x, int y, int sides, int points, const std::string& c) { return String2DBuilder_fillPolygon(array, x, y, sides, points, const_cast<char*>(c.c_str())); }
114 int fillPolygon(char*** array, int x, int y, int sides, int points, char* c) { return String2DBuilder_fillPolygon(array, x, y, sides, points, c); }
115 int text(char** array, int x, int y, const std::string& text) { return Char2DBuilder_text(array, x, y, const_cast<char*>(text.c_str())); }
116
117 int resize(char** array, int width, int height) { return Char2DBuilder_resize(array, width, height); }
118 int resizeWithPadding(char** array, int width, int height, char padding) { return Char2DBuilder_resizeWithPadding(array, width, height, padding); }
119 int center(char** array) { return Char2DBuilder_center(array); }
120 int resizeAndCenter(char** array, int width, int height) { return Char2DBuilder_resizeAndCenter(array, width, height); }
121 int rotate(char** array, double radians) { return Char2DBuilder_rotate(array, radians); }
122 int rotate(char*** array, double radians) { return String2DBuilder_rotate(array, radians); }
123 double getRotationAngle(char** array) { return Char2DBuilder_getRotationAngle(array); }
124 int hFlip(char** array) { return Char2DBuilder_hFlip(array); }
125 int hFlip(char*** array) { return String2DBuilder_hFlip(array); }
126 int vFlip(char** array) { return Char2DBuilder_vFlip(array); }
127 int vFlip(char*** array) { return String2DBuilder_vFlip(array); }
128 char** transpose(char** array) { return Char2DBuilder_transpose(array); }
129 char*** transpose(char*** array) { return String2DBuilder_transpose(array); }
130 int replaceAll(char** array, char find, char replace) { return Char2DBuilder_replaceAll(array, find, replace); }
131 int replaceAll(char*** array, const std::string& find, const std::string& replace) { return String2DBuilder_replaceAll(array, const_cast<char*>(find.c_str()), const_cast<char*>(replace.c_str())); }
132 int replaceAll(char*** array, char* find, char* replace) { return String2DBuilder_replaceAll(array, find, replace); }
133 char** scale(char** array, double scale) { return Char2DBuilder_scale(array, scale); }
134
135 int gradient(char** array, int x, int y, int width, int height, char start, char end, enum CmdFX_GradientDirection direction) {
136 return Char2DBuilder_gradient(array, x, y, width, height, start, end, direction);
137 }
138
139 int gradientForeground(char*** array, int x, int y, int width, int height, int start, int end, enum CmdFX_GradientDirection direction) {
140 return String2DBuilder_gradientForeground(array, x, y, width, height, start, end, direction);
141 }
142 int gradientForegroundFull(char*** array, int start, int end, enum CmdFX_GradientDirection direction) {
143 return String2DBuilder_gradientForegroundFull(array, start, end, direction);
144 }
145 int gradientBackground(char*** array, int x, int y, int width, int height, int start, int end, enum CmdFX_GradientDirection direction) {
146 return String2DBuilder_gradientBackground(array, x, y, width, height, start, end, direction);
147 }
148 int gradientBackgroundFull(char*** array, int start, int end, enum CmdFX_GradientDirection direction) {
149 return String2DBuilder_gradientBackgroundFull(array, start, end, direction);
150 }
151 int multiGradientForeground(char*** array, int x, int y, int width, int height, int numColors, int* colors, enum CmdFX_GradientDirection direction) {
152 return String2DBuilder_multiGradientForeground(array, x, y, width, height, numColors, colors, direction);
153 }
154 int multiGradientForegroundFull(char*** array, int numColors, int* colors, enum CmdFX_GradientDirection direction) {
155 return String2DBuilder_multiGradientForegroundFull(array, numColors, colors, direction);
156 }
157 int multiGradientBackground(char*** array, int x, int y, int width, int height, int numColors, int* colors, enum CmdFX_GradientDirection direction) {
158 return String2DBuilder_multiGradientBackground(array, x, y, width, height, numColors, colors, direction);
159 }
160 int multiGradientBackgroundFull(char*** array, int numColors, int* colors, enum CmdFX_GradientDirection direction) {
161 return String2DBuilder_multiGradientBackgroundFull(array, numColors, colors, direction);
162 }
163 int multiGradientsForeground(char*** array, int x, int y, int width, int height, int numColors, int* colors, double* percentages, enum CmdFX_GradientDirection direction) {
164 return String2DBuilder_multiGradientsForeground(array, x, y, width, height, numColors, colors, percentages, direction);
165 }
166 int multiGradientsForegroundFull(char*** array, int numColors, int* colors, double* percentages, enum CmdFX_GradientDirection direction) {
167 return String2DBuilder_multiGradientsForegroundFull(array, numColors, colors, percentages, direction);
168 }
169 int multiGradientsBackground(char*** array, int x, int y, int width, int height, int numColors, int* colors, double* percentages, enum CmdFX_GradientDirection direction) {
170 return String2DBuilder_multiGradientsBackground(array, x, y, width, height, numColors, colors, percentages, direction);
171 }
172 int multiGradientsBackgroundFull(char*** array, int numColors, int* colors, double* percentages, enum CmdFX_GradientDirection direction) {
173 return String2DBuilder_multiGradientsBackgroundFull(array, numColors, colors, percentages, direction);
174 }
175 };
176}
Builder API for building 2D Character Arrays.
int String2DBuilder_gradientBackgroundFull(char ***array, int start, int end, enum CmdFX_GradientDirection direction)
Sets a background gradient in a 2D String Array.
int Char2DBuilder_vFlip(char **array)
Flips a 2D Character Array vertically.
CmdFX_GradientDirection
Represents a color gradient that can be applied .
Definition builder.h:453
int String2DBuilder_multiGradientBackgroundFull(char ***array, int numColors, int *colors, enum CmdFX_GradientDirection direction)
Sets a background gradient in a 2D String Array.
int String2DBuilder_hLine(char ***array, int x, int y, int width, char *c)
Draws a horizontal line in a 2D String Array.
int Char2DBuilder_gradient(char **array, int x, int y, int width, int height, char start, char end, enum CmdFX_GradientDirection direction)
Creates a gradient in a 2D Character Array.
int String2DBuilder_rotate(char ***array, double radians)
Rotates a 2D String Array.
char ** Char2DBuilder_scale(char **array, double scale)
Scales a 2D Character Array.
int areCharArraysSameSize(char **array1, char **array2)
Checks if two 2D Character Arrays are the same size.
int Char2DBuilder_fillPolygon(char **array, int x, int y, int sides, int radius, char c)
Fills a polygon in a 2D Character Array.
int Char2DBuilder_circle(char **array, int x, int y, int radius, char c)
Draws a circle in a 2D Character Array.
int String2DBuilder_fillEllipse(char ***array, int x, int y, int xradius, int yradius, char *c)
Fills an ellipse in a 2D String Array.
int Char2DBuilder_fillCircle(char **array, int x, int y, int radius, char c)
Fills a circle in a 2D Character Array.
int String2DBuilder_line(char ***array, int x1, int y1, int x2, int y2, char *c)
Draws a line in a 2D String Array.
int String2DBuilder_replaceAll(char ***array, char *find, char *replace)
Replaces all instances of an String in a 2D String Array.
int String2DBuilder_fill(char ***array, char *c)
Fills the entire 2D String Array.
int String2DBuilder_circle(char ***array, int x, int y, int radius, char *c)
Draws a circle in a 2D String Array.
int String2DBuilder_polygon(char ***array, int x, int y, int sides, int radius, char *c)
Draws a polygon in a 2D String Array.
int areStringArraysSameSize(char ***array1, char ***array2)
Checks if two 2D String Arrays are the same size.
int String2DBuilder_vFlip(char ***array)
Flips a 2D String Array vertically.
int String2DBuilder_gradientBackground(char ***array, int x, int y, int width, int height, int start, int end, enum CmdFX_GradientDirection direction)
Sets a background gradient in a 2D String Array.
int String2DBuilder_multiGradientForegroundFull(char ***array, int numColors, int *colors, enum CmdFX_GradientDirection direction)
Sets a foreground gradient in a 2D String Array.
int String2DBuilder_ellipse(char ***array, int x, int y, int xradius, int yradius, char *c)
Draws an ellipse in a 2D String Array.
int String2DBuilder_setString(char ***array, int x, int y, char *c)
Sets a string in a 2D String Array.
int Char2DBuilder_hFlip(char **array)
Flips a 2D Character Array horizontally.
int Char2DBuilder_fillRect(char **array, int x, int y, int width, int height, char c)
Fills a rectangle in a 2D Character Array.
int Char2DBuilder_rotate(char **array, double radians)
Rotates a 2D Character Array.
int String2DBuilder_fillRect(char ***array, int x, int y, int width, int height, char *c)
Fills a rectangle in a 2D String Array.
int String2DBuilder_multiGradientsForegroundFull(char ***array, int numColors, int *colors, double *percentages, enum CmdFX_GradientDirection direction)
Sets a foreground gradient in a 2D String Array.
int String2DBuilder_fillPolygon(char ***array, int x, int y, int sides, int radius, char *c)
Fills a polygon in a 2D String Array.
int compareStringArrays(char ***array1, char ***array2)
Compares two 2D String Arrays.
int printCharArray(char **array)
Prints a 2D Character Array.
int String2DBuilder_vLine(char ***array, int x, int y, int height, char *c)
Draws a vertical line in a 2D String Array.
int Char2DBuilder_replaceAll(char **array, char find, char replace)
Replaces all instances of a character in a 2D Character Array.
char ** Char2DBuilder_createFilled(int width, int height, char c)
Creates a 2D Character Array with a specific width and height, filled with a specific character.
int Char2DBuilder_polygon(char **array, int x, int y, int sides, int radius, char c)
Draws a polygon in a 2D Character Array.
int String2DBuilder_multiGradientsBackground(char ***array, int x, int y, int width, int height, int numColors, int *colors, double *percentages, enum CmdFX_GradientDirection direction)
Sets a background gradient in a 2D String Array.
int Char2DBuilder_setChar(char **array, int x, int y, char c)
Sets a character in a 2D Character Array.
int String2DBuilder_rect(char ***array, int x, int y, int width, int height, char *c)
Draws a rectangle in a 2D String Array.
char ** Char2DBuilder_create(int width, int height)
Creates a 2D Character Array with a specific width and height.
int printStringArray(char ***array)
Prints a 2D String Array.
int Char2DBuilder_line(char **array, int x1, int y1, int x2, int y2, char c)
Draws a line in a 2D Character Array.
int getStringArrayHeight(char ***array)
Gets the height of a 2D String Array.
int Char2DBuilder_ellipse(char **array, int x, int y, int xradius, int yradius, char c)
Draws an ellipse in a 2D Character Array.
int String2DBuilder_multiGradientsForeground(char ***array, int x, int y, int width, int height, int numColors, int *colors, double *percentages, enum CmdFX_GradientDirection direction)
Sets a foreground gradient in a 2D String Array.
int Char2DBuilder_vLine(char **array, int x, int y, int height, char c)
Draws a vertical line in a 2D Character Array.
int String2DBuilder_multiGradientsBackgroundFull(char ***array, int numColors, int *colors, double *percentages, enum CmdFX_GradientDirection direction)
Sets a background gradient in a 2D String Array.
int Char2DBuilder_fill(char **array, char c)
Fills the entire 2D Character Array.
char *** String2DBuilder_createFilled(int width, int height, char *c)
Creates a 2D String Array with a specific width and height, filled with a specific string.
char *** createStringArrayCopy(char ***array)
Creates a copy of a 2D String Array.
double Char2DBuilder_getRotationAngle(char **array)
Gets the rotation angle of a 2D Character Array.
int String2DBuilder_gradientForeground(char ***array, int x, int y, int width, int height, int start, int end, enum CmdFX_GradientDirection direction)
Sets a foreground gradient in a 2D String Array.
char ** Char2DBuilder_transpose(char **array)
Transposes a 2D Character Array.
int String2DBuilder_gradientForegroundFull(char ***array, int start, int end, enum CmdFX_GradientDirection direction)
Sets a background gradient in a 2D String Array.
int Char2DBuilder_resize(char **array, int width, int height)
Resizes a 2D Character Array to a specific width and height.
int getStringArrayWidth(char ***array)
Gets the width of a 2D String Array.
int String2DBuilder_multiGradientBackground(char ***array, int x, int y, int width, int height, int numColors, int *colors, enum CmdFX_GradientDirection direction)
Sets a background gradient in a 2D String Array.
char *** String2DBuilder_create(int width, int height)
Creates a 2D String Array with a specific width and height.
int getCharArrayWidth(char **array)
Gets the width of a 2D Character Array.
int String2DBuilder_fillCircle(char ***array, int x, int y, int radius, char *c)
Fills a circle in a 2D String Array.
int Char2DBuilder_rect(char **array, int x, int y, int width, int height, char c)
Draws a rectangle in a 2D Character Array.
int compareCharArrays(char **array1, char **array2)
Compares two 2D Character Arrays.
int String2DBuilder_multiGradientForeground(char ***array, int x, int y, int width, int height, int numColors, int *colors, enum CmdFX_GradientDirection direction)
Sets a foreground gradient in a 2D String Array.
int Char2DBuilder_resizeAndCenter(char **array, int width, int height)
Resizes and centers a 2D Character Array.
char *** String2DBuilder_transpose(char ***array)
Transposes a 2D String Array.
int Char2DBuilder_hLine(char **array, int x, int y, int width, char c)
Draws a horizontal line in a 2D Character Array.
int Char2DBuilder_text(char **array, int x, int y, char *text)
Writes text in a 2D Character Array.
int getCharArrayHeight(char **array)
Gets the height of a 2D Character Array.
char ** createCharArrayCopy(char **array)
Creates a copy of a 2D Character Array.
int Char2DBuilder_fillEllipse(char **array, int x, int y, int xradius, int yradius, char c)
Fills an ellipse in a 2D Character Array.
int Char2DBuilder_center(char **array)
Centers a 2D Character Array.
int Char2DBuilder_resizeWithPadding(char **array, int width, int height, char padding)
Resizes a 2D Character Array to a specific width and height with padding.
int String2DBuilder_hFlip(char ***array)
Flips a 2D String Array horizontally.
C++ wrapper for the CmdFX Builder API.
Definition builder.hpp:70
Primary namespace for CmdFX.
Definition cmdfx.hpp:22
char ** to2DArray(std::vector< std::string > string)
Converts a 1D vector of strings to a 2D array of characters.
Definition builder.hpp:39
char *** to3DArray(std::vector< std::vector< std::string > > string)
Converts a 2D vector of strings to a 3D array of characters.
Definition builder.hpp:55