Files
Nomi/source/nomi.h

98 lines
1.9 KiB
C

/*##############################################################################
* project: nomi
* file: nomi.h
*
* This file handles all of the nomi spesific action like creating and handling
* Trunks and branches. As well as the data nessary for that it to run properly.
*
* Auther: PreacherDHM
* Date: 10/30/2025
*##############################################################################
*/
#ifndef NOMI_H
#define NOMI_H
#include "tart.h"
#define BRNACH 0x01
#define TRUNK 0x00
#define MAX_CHILDREN 5
#define MAX_BRANCHES 30
#include <stdio.h>
typedef unsigned int branchId;
typedef struct {
double x;
double y;
} nomi_vec2;
typedef struct {
nomi_vec2 start;
nomi_vec2 c0;
nomi_vec2 c1;
nomi_vec2 end;
} nomi_curve;
// All of the different notes
typedef struct {
char* text; // This is the data that is in that branch
branchId children[MAX_CHILDREN]; // holds the branchIds of its children
void* parent; // points the the branches parent
char type; // holds the type as in if this struct is a branch or a trunk
nomi_vec2 startPos; // the starting position of the branch
nomi_curve curve;
branchId id; // This holds the branch id.
} branch;
// The Root of the tree structure
typedef struct {
branch branches[MAX_BRANCHES];
const char* title;
char* text;
} trunk;
/*
* This will Init Nomi
*/
void NomiInit();
/*
* This will create the truk of the note.
* */
trunk* CreateTrunk();
/*
* This is a test
* */
void CreaetBranch(trunk* trunk);
/*
* Locate Branch
* */
branch* LocateBranch();
/*
* Draw Branch
*/
void DrawBranch(branch* branch, struct tart_window* w, tart_byte b);
/*
* Create Nomi File
*
* name: the name of the file that will be created.
*/
FILE CreateNomiFile(const char* name);
/*
* Save Nomi File
*
* file: the pointer to the nomi file.
*/
void SaveNomiFile(FILE* file);
#endif // NOMI_H