PetGraphycs beta1.0
Uma simples biblioteca gráfica de terminal em C
Loading...
Searching...
No Matches
graphycs.h File Reference
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <stdbool.h>
#include <conio.h>
#include <stdint.h>
#include <ctype.h>
#include <limits.h>

Go to the source code of this file.

Data Structures

struct  Color
 Estrutura de cores no padrão RGB. More...
struct  Vector2
 Estrutura para coordenadas 2D (x, y). More...
struct  Pixel
 Estrutura que representa um Pixel na tela. More...
struct  Pixel_Node
 Nodo da pilha dinâmica de pixeis. More...
struct  Pixel_Stack
 Estrutura que representa a pilha de pixeis de cada posição da tela. Cada coordenada empilha pixeis e renderiza o do topo. More...
struct  Screen
 Estrutura da tela sob a qual os objetos serão renderizados. More...
struct  Animation
 Representa uma animação específica de um ObjetoComplexo. More...
struct  AnimationManager
 Gerencia múltiplas animações de um ObjetoComplexo. More...
struct  Objeto
 Representa um objeto gráfico estático (um único frame). More...
struct  ObjetoComplexo
 Representa um objeto com múltiplos frames e animações (ex: personagens de jogos). More...

Macros

#define COLOR_BLACK   (Color){0, 0, 0}
 Cor preta (RGB: 0, 0, 0).
#define COLOR_RED   (Color){255, 0, 0}
 Cor vermelha (RGB: 255, 0, 0).
#define COLOR_GREEN   (Color){0, 255, 0}
 Cor verde (RGB: 0, 255, 0).
#define COLOR_YELLOW   (Color){255, 255, 0}
 Cor amarela (RGB: 255, 255, 0).
#define COLOR_BLUE   (Color){0, 0, 255}
 Cor azul (RGB: 0, 0, 255).
#define COLOR_PURPLE   (Color){128, 0, 128}
 Cor roxa (RGB: 128, 0, 128).
#define COLOR_CYAN   (Color){0, 255, 255}
 Cor ciano (RGB: 0, 255, 255).
#define COLOR_WHITE   (Color){255, 255, 255}
 Cor branca (RGB: 255, 255, 255).
#define VETOR_NULO   (Vector2){0, 0}
 Vetor nulo (0, 0).
#define VETOR_CIMA   (Vector2){0, -1}
 Vetor unitário para cima (0, -1).
#define VETOR_BAIXO   (Vector2){0, 1}
 Vetor unitário para baixo (0, 1).
#define VETOR_ESQUERDA   (Vector2){-1, 0}
 Vetor unitário para esquerda (-1, 0).
#define VETOR_DIREITA   (Vector2){1, 0}
 Vetor unitário para direita (1, 0).

Typedefs

typedef struct Pixel_Node Pixel_Node
 Nodo da pilha dinâmica de pixeis.

Functions

char ler_teclado ()
 Lê o input do teclado sem interromper a execução do programa.
Screencriar_tela (Vector2 tamanho, Color fundo)
 Cria o objeto de tela que será renderizado.
void mover_tela (Screen *s, Vector2 direction)
void preencher_background (Screen *s, Color cor)
 Preenche toda a tela com uma cor de fundo.
void render (Screen *s, bool reset)
 Renderiza o conteúdo da tela no console.
void moveCursor (Vector2 v)
 Move o cursor de renderização para a posição dada.
Color criar_cor (int r, int g, int b)
 Retorna uma nova cor dados os componentes RGB.
Color aplicar_filtro (Color original, Color filtro)
 Põe uma cor de filtro em cima de outra cor para alterar sua matiz.
Vector2 new_Vector2 (int x, int y)
 Retorna um novo vetor dados x e y.
Vector2 produto_vetor_escalar (Vector2 vet, float escalar)
 Calcula o produto de um vetor por um escalar inteiro.
Vector2 vector_sum (Vector2 v1, Vector2 v2)
 Soma dois vetores.
Vector2 vector_subtr (Vector2 v1, Vector2 v2)
 Subtrai dois vetores.
Vector2 reverse_vector (Vector2 v)
 Inverte os componentes de um vetor.
Vector2 get_abs_Pixel_pos (Objeto *obj, int index)
 Retorna a posição absoluta do index-ésimo píxel do vetor de pixeis dentro do Objeto.
Vector2 get_complexo_abs_Pixel_pos (ObjetoComplexo *obj, int frame, int index)
 Retorna a posição absoluta do index-ésimo píxel do vetor de pixeis do frame-ésimo frame dentro do Objeto Complexo.
Vector2 centro_do_objeto (Objeto *obj)
 Retorna as coordenadas relativas do centro geométrico do objeto.
Vector2 centro_objeto_complexo (ObjetoComplexo *obj)
 Retorna as coordenadas relativas do centro geométrico do objeto complexo, considerando a totalidade dos frames.
Vector2 centro_da_tela (Screen *s)
 Retorna as coordenadas relativas do centro geométrico da tela.
Pixel criar_Pixel (Color cor, Vector2 pos)
 Cria um Pixel com cor e posição especificadas.
Pixel desempilhar_Pixel (Pixel_Stack *stack)
 Desempilha o pixel do topo da pilha de pixeis.
Pixel deletar_Pixel (Screen *s, Vector2 pos)
 Remove o pixel do topo da pilha na tela em posição dada.
Objetocriar_objeto_custom (Pixel *info, int qtd_Pixel, bool normalizar)
 Cria um objeto customizado a partir de uma lista de pixels.
Objetorecortar_objeto (Objeto *obj, Vector2 inicio, Vector2 fim)
 Recorta parte de um objeto dentro de um retângulo definido.
Objetocriar_retangulo_monocromatico (Color cor, Vector2 tamanho)
 Gera um objeto retangular monocromático preenchido.
Objetocriar_obj_eixos_debug (Screen *s)
 Cria um objeto de eixos cartesianos brancos para debug.
Objetomerge_objeto (Objeto *prioridade, Objeto *novo, Vector2 pivot)
 Une dois objetos em um só a partir de um pivot.
Objetocriar_piskel_obj (const uint32_t frame_data[], int width, int height)
 Cria um objeto a partir de dados de um frame do Piskel.
ObjetoComplexocriar_objeto_complexo_piskel (int qtd_frames, int width, int height, const uint32_t obj_data[qtd_frames][width *height])
 Cria um objeto complexo a partir de matriz do Piskel.
ObjetoComplexocriar_objeto_complexo_via_lista (Objeto **obj_origem, int qtd_objetos)
 Cria um objeto complexo a partir de lista de objetos (frames).
Animation criar_anim (int *frame_list, int qtd_frames, char nome[])
 Cria uma animação encapsulando índices de frames.
void setup_animations (ObjetoComplexo *obj, Animation anims[], int qtd_anims)
 Configura o gerenciador de animações (AnimationManager) de um objeto complexo.
Pixel get_pixel_em (Screen *s, Vector2 pos)
 retorna o pixel que está no topo da pilha na posição relativa à tela dada
bool vetor_valido_na_tela (Screen *s, Vector2 vet)
 Retorna true se vetor está dentro dos limites da tela.
bool compare_vector (Vector2 v1, Vector2 v2)
 Compara igualdade entre dois vetores.
bool obj_contem_Pixel_em (Objeto *obj, Vector2 pos)
 Verifica se objeto simples contém pixel em posição relativa dada.
int * obj_complexo_contem_Pixel_em (ObjetoComplexo *obj, Vector2 pos, int *out_qtd_de_frames)
 Verifica em quais frames de um objeto complexo há pixel em posição.
void setar_animation_via_index (ObjetoComplexo *obj, int anim_index)
 Seleciona a animação atual de um objeto complexo por índice.
void setar_animation_via_nome (ObjetoComplexo *obj, char nome[])
 Seleciona a animação atual de um objeto complexo por nome.
void animar_objeto_complexo (Screen *s, ObjetoComplexo *obj)
 Executa o passo de animação do objeto complexo na tela.
void setar_frame_obj_complexo (Screen *s, ObjetoComplexo *obj, int frame)
 Define manualmente o frame atual de um objeto complexo.
void aplicar_filtro_obj (Objeto *obj, Color filtro)
 Aplica um filtro de cor ao objeto simples.
void aplicar_filtro_obj_complexo (ObjetoComplexo *obj, Color filtro)
 Aplica um filtro de cor ao objeto complexo.
void espelhar_objeto (Screen *s, Objeto *obj, bool horizontalmente)
 Espelha um objeto simples horizontalmente ou verticalmente.
void espelhar_objeto_complexo (Screen *s, ObjetoComplexo *obj, bool horizontalmente)
 Espelha todos os frames de um objeto complexo horizontalmente ou verticalmente.
void rotacionar_objeto (Objeto *obj, Vector2 pivot, float graus)
 Rotaciona um objeto simples em torno de um pivô.
void rotacionar_objeto_complexo (ObjetoComplexo *obj, Vector2 pivot, float graus)
 Rotaciona um objeto complexo em torno de um pivô.
void normalizar_objeto (Objeto *obj)
 Normaliza objeto simples para ter pivô no canto superior esquerdo.
void centralizar_objeto (Objeto *obj)
 Centraliza o pivô do objeto simples no centro geométrico.
void alterar_pivot_obj (Objeto *obj, Vector2 new_pivot)
 Altera o pivô de um objeto simples.
void alterar_pivot_frame (ObjetoComplexo *obj, int frame, Vector2 novo_pivot)
 Altera o pivô de um frame específico em objeto complexo.
void desenhar_objeto (Screen *s, Objeto *obj)
 Desenha um objeto simples na tela em sua posição.
void desenhar_objeto_complexo (Screen *s, ObjetoComplexo *obj)
 Desenha um objeto complexo na tela em sua posição.
void esconder_objeto (Screen *s, Objeto *obj)
 Esconde um objeto simples removendo seus pixels na tela.
void esconder_objeto_complexo (Screen *s, ObjetoComplexo *obj)
 Esconde um objeto complexo removendo seus pixels na tela.
void excluir_objeto (Objeto *obj)
 Exclui completamente um objeto simples da memória.
void excluir_objeto_complexo (ObjetoComplexo *obj)
 Exclui completamente um objeto complexo da memória.
void excluir_tela (Screen *s)
 Exclui completamente uma tela da memória.
void teleportar_objeto (Screen *s, Objeto *obj, Vector2 pos_final)
 Teleporta um objeto simples para posição final absoluta.
void teleportar_objeto_complexo (Screen *s, ObjetoComplexo *obj, Vector2 pos_final)
 Teleporta um objeto complexo para posição final absoluta.
void mover_objeto (Screen *s, Objeto *obj, Vector2 direction)
 Move um objeto simples de acordo com vetor de deslocamento.
void mover_objeto_complexo (Screen *s, ObjetoComplexo *obj, Vector2 direction)
 Move um objeto complexo de acordo com vetor de deslocamento.