MythTV  master
Classes | Typedefs | Functions | Variables
ifs.cpp File Reference
#include <array>
#include <cmath>
#include <cstdio>
#include <cstdlib>
#include "ifs.h"
#include "goom_core.h"
#include "goom_tools.h"
Include dependency graph for ifs.cpp:

Go to the source code of this file.

Classes

struct  Similitude_Struct
 
struct  Fractal_Struct
 

Typedefs

using DBL = double
 
using F_PT = float
 
using SIMI = struct Similitude_Struct
 
using FRACTAL = struct Fractal_Struct
 
using SimiData = std::array< SIMI, 5 *MAX_SIMI >
 

Functions

static long LRAND ()
 
static int NRAND (int n)
 
static F_PT DBL_To_F_PT (DBL x)
 
static DBL Gauss_Rand (DBL c, DBL A, DBL S)
 
static DBL Half_Gauss_Rand (DBL c, DBL A, DBL S)
 
static void Random_Simis (FRACTAL *F, SimiData &simi_set, int offset, int count)
 
static void free_ifs_buffers (FRACTAL *Fractal)
 
static void free_ifs (FRACTAL *Fractal)
 
void init_ifs (int width, int height)
 
static void Transform (SIMI *Simi, F_PT xo, F_PT yo, F_PT *x, F_PT *y)
 
static void Trace (FRACTAL *F, F_PT xo, F_PT yo)
 
static void Draw_Fractal (void)
 
IFSPointdraw_ifs (int *nbPoints)
 
void release_ifs ()
 

Variables

static constexpr double MAXRAND { 2147483648.0 }
 
static constexpr uint8_t FIX { 12 }
 
static constexpr uint16_t UNIT { 1<<FIX }
 
static constexpr size_t MAX_SIMI { 6 }
 
static constexpr int8_t MAX_DEPTH_2 { 10 }
 
static constexpr int8_t MAX_DEPTH_3 { 6 }
 
static constexpr int8_t MAX_DEPTH_4 { 4 }
 
static constexpr int8_t MAX_DEPTH_5 { 2 }
 
static FRACTALRoot = (FRACTAL *) nullptr
 
static FRACTALCur_F
 
IFSPointBuf
 
static int Cur_Pt
 

Typedef Documentation

◆ DBL

using DBL = double

Definition at line 54 of file ifs.cpp.

◆ F_PT

using F_PT = float

Definition at line 55 of file ifs.cpp.

◆ SIMI

using SIMI = struct Similitude_Struct

Definition at line 71 of file ifs.cpp.

◆ FRACTAL

using FRACTAL = struct Fractal_Struct

Definition at line 72 of file ifs.cpp.

◆ SimiData

using SimiData = std::array<SIMI,5 * MAX_SIMI>

Definition at line 84 of file ifs.cpp.

Function Documentation

◆ LRAND()

static long LRAND ( )
inlinestatic

Definition at line 48 of file ifs.cpp.

Referenced by Gauss_Rand(), Half_Gauss_Rand(), and NRAND().

◆ NRAND()

static int NRAND ( int  n)
inlinestatic

Definition at line 49 of file ifs.cpp.

Referenced by Gauss_Rand(), and init_ifs().

◆ DBL_To_F_PT()

static F_PT DBL_To_F_PT ( DBL  x)
inlinestatic

Definition at line 68 of file ifs.cpp.

Referenced by Draw_Fractal().

◆ Gauss_Rand()

static DBL Gauss_Rand ( DBL  c,
DBL  A,
DBL  S 
)
static

Definition at line 111 of file ifs.cpp.

Referenced by Random_Simis().

◆ Half_Gauss_Rand()

static DBL Half_Gauss_Rand ( DBL  c,
DBL  A,
DBL  S 
)
static

Definition at line 121 of file ifs.cpp.

Referenced by Random_Simis().

◆ Random_Simis()

static void Random_Simis ( FRACTAL F,
SimiData simi_set,
int  offset,
int  count 
)
static

Definition at line 129 of file ifs.cpp.

Referenced by draw_ifs(), and init_ifs().

◆ free_ifs_buffers()

static void free_ifs_buffers ( FRACTAL Fractal)
static

Definition at line 144 of file ifs.cpp.

Referenced by free_ifs(), and init_ifs().

◆ free_ifs()

static void free_ifs ( FRACTAL Fractal)
static

Definition at line 158 of file ifs.cpp.

Referenced by init_ifs(), and release_ifs().

◆ init_ifs()

void init_ifs ( int  width,
int  height 
)

Definition at line 166 of file ifs.cpp.

Referenced by goom_init(), and goom_set_resolution().

◆ Transform()

static void Transform ( SIMI Simi,
F_PT  xo,
F_PT  yo,
F_PT x,
F_PT y 
)
inlinestatic

Definition at line 290 of file ifs.cpp.

Referenced by Draw_Fractal(), MythComboBufferVulkan::PushData(), and Trace().

◆ Trace()

static void Trace ( FRACTAL F,
F_PT  xo,
F_PT  yo 
)
static

Definition at line 311 of file ifs.cpp.

Referenced by Draw_Fractal().

◆ Draw_Fractal()

static void Draw_Fractal ( void  )
static

Definition at line 335 of file ifs.cpp.

Referenced by draw_ifs().

◆ draw_ifs()

IFSPoint* draw_ifs ( int *  nbPoints)

Definition at line 411 of file ifs.cpp.

Referenced by ifs_update().

◆ release_ifs()

void release_ifs ( )

Definition at line 485 of file ifs.cpp.

Referenced by goom_close().

Variable Documentation

◆ MAXRAND

constexpr double MAXRAND { 2147483648.0 }
staticconstexpr

Definition at line 50 of file ifs.cpp.

Referenced by Gauss_Rand(), and Half_Gauss_Rand().

◆ FIX

constexpr uint8_t FIX { 12 }
staticconstexpr

Definition at line 59 of file ifs.cpp.

◆ UNIT

constexpr uint16_t UNIT { 1<<FIX }
staticconstexpr

Definition at line 60 of file ifs.cpp.

Referenced by DBL_To_F_PT(), Trace(), and Transform().

◆ MAX_SIMI

constexpr size_t MAX_SIMI { 6 }
staticconstexpr

Definition at line 61 of file ifs.cpp.

Referenced by init_ifs().

◆ MAX_DEPTH_2

constexpr int8_t MAX_DEPTH_2 { 10 }
staticconstexpr

Definition at line 63 of file ifs.cpp.

Referenced by init_ifs().

◆ MAX_DEPTH_3

constexpr int8_t MAX_DEPTH_3 { 6 }
staticconstexpr

Definition at line 64 of file ifs.cpp.

Referenced by init_ifs().

◆ MAX_DEPTH_4

constexpr int8_t MAX_DEPTH_4 { 4 }
staticconstexpr

Definition at line 65 of file ifs.cpp.

Referenced by init_ifs().

◆ MAX_DEPTH_5

constexpr int8_t MAX_DEPTH_5 { 2 }
staticconstexpr

Definition at line 66 of file ifs.cpp.

Referenced by init_ifs().

◆ Root

FRACTAL* Root = (FRACTAL *) nullptr
static

Definition at line 102 of file ifs.cpp.

Referenced by Draw_Fractal(), draw_ifs(), init_ifs(), MythTVMenu::ProcessIncludes(), and release_ifs().

◆ Cur_F

FRACTAL * Cur_F
static

Definition at line 102 of file ifs.cpp.

Referenced by Draw_Fractal(), and Trace().

◆ Buf

IFSPoint* Buf

◆ Cur_Pt

int Cur_Pt
static

Definition at line 106 of file ifs.cpp.

Referenced by Draw_Fractal(), draw_ifs(), and Trace().