cmdfx 0.3.2
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{
22int getWidth(char** array) {
23 return getCharArrayWidth(array);
24}
25int getWidth(char*** array) {
26 return getStringArrayWidth(array);
27}
28int getHeight(char** array) {
29 return getCharArrayHeight(array);
30}
31int getHeight(char*** array) {
32 return getStringArrayHeight(array);
33}
34char** createCopy(char** array) {
35 return createCharArrayCopy(array);
36}
37char*** createCopy(char*** array) {
38 return createStringArrayCopy(array);
39}
40int isSameSize(char** array1, char** array2) {
41 return areCharArraysSameSize(array1, array2);
42}
43int isSameSize(char*** array1, char*** array2) {
44 return areStringArraysSameSize(array1, array2);
45}
46int compare(char** array1, char** array2) {
47 return compareCharArrays(array1, array2);
48}
49int compare(char*** array1, char*** array2) {
50 return compareStringArrays(array1, array2);
51}
52int print(char** array) {
53 return printCharArray(array);
54}
55int print(char*** array) {
56 return printStringArray(array);
57}
58
64char** to2DArray(std::vector<std::string> string) {
65 char** array = Char2DBuilder_create(string.size(), string[0].size());
66 for (int i = 0; i < string.size(); i++) {
67 for (int j = 0; j < string[i].size(); j++) {
68 array[i][j] = string[i][j];
69 }
70 }
71
72 return array;
73}
74
80char*** to3DArray(std::vector<std::vector<std::string>> string) {
81 char*** array = String2DBuilder_create(string.size(), string[0].size());
82 for (int i = 0; i < string.size(); i++) {
83 for (int j = 0; j < string[i].size(); j++) {
84 array[i][j] = const_cast<char*>(string[i][j].c_str());
85 }
86 }
87
88 return array;
89}
90
95namespace Builder
96{
97char** createCharArray(int width, int height) {
98 return Char2DBuilder_create(width, height);
99}
100char** createCharArrayFilled(int width, int height, char c) {
101 return Char2DBuilder_createFilled(width, height, c);
102}
103char*** createStringArray(int width, int height) {
104 return String2DBuilder_create(width, height);
105}
106char*** createStringArrayFilled(int width, int height, const std::string& c) {
108 width, height, const_cast<char*>(c.c_str())
109 );
110}
111char*** createStringArrayFilled(int width, int height, char* c) {
112 return String2DBuilder_createFilled(width, height, c);
113}
114int set(char** array, int x, int y, char c) {
115 return Char2DBuilder_setChar(array, x, y, c);
116}
117int set(char*** array, int x, int y, const std::string& c) {
118 return String2DBuilder_setString(array, x, y, const_cast<char*>(c.c_str()));
119}
120int set(char*** array, int x, int y, char* c) {
121 return String2DBuilder_setString(array, x, y, c);
122}
123int hLine(char** array, int x, int y, int length, char c) {
124 return Char2DBuilder_hLine(array, x, y, length, c);
125}
126int hLine(char*** array, int x, int y, int length, const std::string& c) {
128 array, x, y, length, const_cast<char*>(c.c_str())
129 );
130}
131int hLine(char*** array, int x, int y, int length, char* c) {
132 return String2DBuilder_hLine(array, x, y, length, c);
133}
134int vLine(char** array, int x, int y, int length, char c) {
135 return Char2DBuilder_vLine(array, x, y, length, c);
136}
137int vLine(char*** array, int x, int y, int length, const std::string& c) {
139 array, x, y, length, const_cast<char*>(c.c_str())
140 );
141}
142int vLine(char*** array, int x, int y, int length, char* c) {
143 return String2DBuilder_vLine(array, x, y, length, c);
144}
145int rect(char** array, int x, int y, int width, int height, char c) {
146 return Char2DBuilder_rect(array, x, y, width, height, c);
147}
148int rect(
149 char*** array, int x, int y, int width, int height, const std::string& c
150) {
152 array, x, y, width, height, const_cast<char*>(c.c_str())
153 );
154}
155int rect(char*** array, int x, int y, int width, int height, char* c) {
156 return String2DBuilder_rect(array, x, y, width, height, c);
157}
158int fillRect(char** array, int x, int y, int width, int height, char c) {
159 return Char2DBuilder_fillRect(array, x, y, width, height, c);
160}
161int fillRect(
162 char*** array, int x, int y, int width, int height, const std::string& c
163) {
165 array, x, y, width, height, const_cast<char*>(c.c_str())
166 );
167}
168int fillRect(char*** array, int x, int y, int width, int height, char* c) {
169 return String2DBuilder_fillRect(array, x, y, width, height, c);
170}
171int circle(char** array, int x, int y, int radius, char c) {
172 return Char2DBuilder_circle(array, x, y, radius, c);
173}
174int circle(char*** array, int x, int y, int radius, const std::string& c) {
176 array, x, y, radius, const_cast<char*>(c.c_str())
177 );
178}
179int circle(char*** array, int x, int y, int radius, char* c) {
180 return String2DBuilder_circle(array, x, y, radius, c);
181}
182int fillCircle(char** array, int x, int y, int radius, char c) {
183 return Char2DBuilder_fillCircle(array, x, y, radius, c);
184}
185int fillCircle(char*** array, int x, int y, int radius, const std::string& c) {
187 array, x, y, radius, const_cast<char*>(c.c_str())
188 );
189}
190int fillCircle(char*** array, int x, int y, int radius, char* c) {
191 return String2DBuilder_fillCircle(array, x, y, radius, c);
192}
193int ellipse(char** array, int x, int y, int xradius, int yradius, char c) {
194 return Char2DBuilder_ellipse(array, x, y, xradius, yradius, c);
195}
196int ellipse(
197 char*** array, int x, int y, int xradius, int yradius, const std::string& c
198) {
200 array, x, y, xradius, yradius, const_cast<char*>(c.c_str())
201 );
202}
203int ellipse(char*** array, int x, int y, int xradius, int yradius, char* c) {
204 return String2DBuilder_ellipse(array, x, y, xradius, yradius, c);
205}
206int fillEllipse(char** array, int x, int y, int xradius, int yradius, char c) {
207 return Char2DBuilder_fillEllipse(array, x, y, xradius, yradius, c);
208}
209int fillEllipse(
210 char*** array, int x, int y, int xradius, int yradius, const std::string& c
211) {
213 array, x, y, xradius, yradius, const_cast<char*>(c.c_str())
214 );
215}
216int fillEllipse(
217 char*** array, int x, int y, int xradius, int yradius, char* c
218) {
219 return String2DBuilder_fillEllipse(array, x, y, xradius, yradius, c);
220}
221int fill(char** array, char c) {
222 return Char2DBuilder_fill(array, c);
223}
224int fill(char*** array, const std::string& c) {
225 return String2DBuilder_fill(array, const_cast<char*>(c.c_str()));
226}
227int fill(char*** array, char* c) {
228 return String2DBuilder_fill(array, c);
229}
230int line(char** array, int x1, int y1, int x2, int y2, char c) {
231 return Char2DBuilder_line(array, x1, y1, x2, y2, c);
232}
233int line(char*** array, int x1, int y1, int x2, int y2, const std::string& c) {
235 array, x1, y1, x2, y2, const_cast<char*>(c.c_str())
236 );
237}
238int line(char*** array, int x1, int y1, int x2, int y2, char* c) {
239 return String2DBuilder_line(array, x1, y1, x2, y2, c);
240}
241int polygon(char** array, int x, int y, int sides, int points, char c) {
242 return Char2DBuilder_polygon(array, x, y, sides, points, c);
243}
244int polygon(
245 char*** array, int x, int y, int sides, int points, const std::string& c
246) {
248 array, x, y, sides, points, const_cast<char*>(c.c_str())
249 );
250}
251int polygon(char*** array, int x, int y, int sides, int points, char* c) {
252 return String2DBuilder_polygon(array, x, y, sides, points, c);
253}
254int fillPolygon(char** array, int x, int y, int sides, int points, char c) {
255 return Char2DBuilder_fillPolygon(array, x, y, sides, points, c);
256}
257int fillPolygon(
258 char*** array, int x, int y, int sides, int points, const std::string& c
259) {
261 array, x, y, sides, points, const_cast<char*>(c.c_str())
262 );
263}
264int fillPolygon(char*** array, int x, int y, int sides, int points, char* c) {
265 return String2DBuilder_fillPolygon(array, x, y, sides, points, c);
266}
267int text(char** array, int x, int y, const std::string& text) {
268 return Char2DBuilder_text(array, x, y, const_cast<char*>(text.c_str()));
269}
270
271int resize(char** array, int width, int height) {
272 return Char2DBuilder_resize(array, width, height);
273}
274int resizeWithPadding(char** array, int width, int height, char padding) {
275 return Char2DBuilder_resizeWithPadding(array, width, height, padding);
276}
277int center(char** array) {
278 return Char2DBuilder_center(array);
279}
280int resizeAndCenter(char** array, int width, int height) {
281 return Char2DBuilder_resizeAndCenter(array, width, height);
282}
283int rotate(char** array, double radians) {
284 return Char2DBuilder_rotate(array, radians);
285}
286int rotate(char*** array, double radians) {
287 return String2DBuilder_rotate(array, radians);
288}
289double getRotationAngle(char** array) {
290 return Char2DBuilder_getRotationAngle(array);
291}
292int hFlip(char** array) {
293 return Char2DBuilder_hFlip(array);
294}
295int hFlip(char*** array) {
296 return String2DBuilder_hFlip(array);
297}
298int vFlip(char** array) {
299 return Char2DBuilder_vFlip(array);
300}
301int vFlip(char*** array) {
302 return String2DBuilder_vFlip(array);
303}
304char** transpose(char** array) {
305 return Char2DBuilder_transpose(array);
306}
307char*** transpose(char*** array) {
308 return String2DBuilder_transpose(array);
309}
310int replaceAll(char** array, char find, char replace) {
311 return Char2DBuilder_replaceAll(array, find, replace);
312}
313int replaceAll(
314 char*** array, const std::string& find, const std::string& replace
315) {
317 array, const_cast<char*>(find.c_str()),
318 const_cast<char*>(replace.c_str())
319 );
320}
321int replaceAll(char*** array, char* find, char* replace) {
322 return String2DBuilder_replaceAll(array, find, replace);
323}
324char** scale(char** array, double scale) {
325 return Char2DBuilder_scale(array, scale);
326}
327
328int gradient(
329 char** array, int x, int y, int width, int height, char start, char end,
330 enum CmdFX_GradientDirection direction
331) {
333 array, x, y, width, height, start, end, direction
334 );
335}
336
337int gradientForeground(
338 char*** array, int x, int y, int width, int height, int start, int end,
339 enum CmdFX_GradientDirection direction
340) {
342 array, x, y, width, height, start, end, direction
343 );
344}
345int gradientForegroundFull(
346 char*** array, int start, int end, enum CmdFX_GradientDirection direction
347) {
348 return String2DBuilder_gradientForegroundFull(array, start, end, direction);
349}
350int gradientBackground(
351 char*** array, int x, int y, int width, int height, int start, int end,
352 enum CmdFX_GradientDirection direction
353) {
355 array, x, y, width, height, start, end, direction
356 );
357}
358int gradientBackgroundFull(
359 char*** array, int start, int end, enum CmdFX_GradientDirection direction
360) {
361 return String2DBuilder_gradientBackgroundFull(array, start, end, direction);
362}
363int multiGradientForeground(
364 char*** array, int x, int y, int width, int height, int numColors,
365 int* colors, enum CmdFX_GradientDirection direction
366) {
368 array, x, y, width, height, numColors, colors, direction
369 );
370}
371int multiGradientForegroundFull(
372 char*** array, int numColors, int* colors,
373 enum CmdFX_GradientDirection direction
374) {
376 array, numColors, colors, direction
377 );
378}
379int multiGradientBackground(
380 char*** array, int x, int y, int width, int height, int numColors,
381 int* colors, enum CmdFX_GradientDirection direction
382) {
384 array, x, y, width, height, numColors, colors, direction
385 );
386}
387int multiGradientBackgroundFull(
388 char*** array, int numColors, int* colors,
389 enum CmdFX_GradientDirection direction
390) {
392 array, numColors, colors, direction
393 );
394}
395int multiGradientsForeground(
396 char*** array, int x, int y, int width, int height, int numColors,
397 int* colors, double* percentages, enum CmdFX_GradientDirection direction
398) {
400 array, x, y, width, height, numColors, colors, percentages, direction
401 );
402}
403int multiGradientsForegroundFull(
404 char*** array, int numColors, int* colors, double* percentages,
405 enum CmdFX_GradientDirection direction
406) {
408 array, numColors, colors, percentages, direction
409 );
410}
411int multiGradientsBackground(
412 char*** array, int x, int y, int width, int height, int numColors,
413 int* colors, double* percentages, enum CmdFX_GradientDirection direction
414) {
416 array, x, y, width, height, numColors, colors, percentages, direction
417 );
418}
419int multiGradientsBackgroundFull(
420 char*** array, int numColors, int* colors, double* percentages,
421 enum CmdFX_GradientDirection direction
422) {
424 array, numColors, colors, percentages, direction
425 );
426}
427}; // namespace Builder
428} // namespace CmdFX
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:477
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:96
Primary namespace for CmdFX.
Definition cmdfx.hpp:26
char ** to2DArray(std::vector< std::string > string)
Converts a 1D vector of strings to a 2D array of characters.
Definition builder.hpp:64
char *** to3DArray(std::vector< std::vector< std::string > > string)
Converts a 2D vector of strings to a 3D array of characters.
Definition builder.hpp:80