CC-Fractal-Suite
COP2_Mandelbrot.h
Go to the documentation of this file.
1 
5 #pragma once
6 
7  // Local
8 #include "FractalSpace.h"
9 #include "Mandelbrot.h"
10 #include "FractalNode.h"
11 
12 // HDK
13 #include <COP2/COP2_Generator.h>
14 
15 
16 namespace CC
17 {
20 class COP2_Mandelbrot : public COP2_Generator
21 {
23  COP2_Mandelbrot(OP_Network* parent, const char* name, OP_Operator* entry);
24 
25 public:
27  static PRM_Template myTemplateList[];
28 
30  static OP_TemplatePair myTemplatePair;
31 
33  static OP_VariablePair myVariablePair;
34 
36  static CH_LocalVariable myVariableList[];
37 
39  virtual TIL_Sequence* cookSequenceInfo(OP_ERROR& error);
40 
42  friend class OP;
43 
44 protected:
46  virtual COP2_ContextData* newContextData(const TIL_Plane*, int,
47  fpreal32 t, int xres, int yres, int thread, int max_threads);
48 
50  virtual OP_ERROR generateTile(
51  COP2_Context& context, TIL_TileList* tilelist);
52 
53  virtual ~COP2_Mandelbrot();
54 };
55 
58 {
59  SMOOTH,
60  RAW
61 };
62 
67 struct COP2_MandelbrotData : public COP2_ContextData
68 {
69  FractalSpace space;
70  Mandelbrot fractal;
71  MandelbrotMode mode{ MandelbrotMode::SMOOTH };
72  bool fit{ true };
74  COP2_MandelbrotData() = default;
75  virtual ~COP2_MandelbrotData();
76 };
77 }
OP is meant to remove the need to write public &#39;myConstructor&#39; methods in every class like the exampl...
Definition: FractalNode.h:359
Header-only include that generically declares a ton of static variables and Parm Template Macros for ...
virtual ~COP2_Mandelbrot()
Destructor.
Definition: COP2_Mandelbrot.cpp:193
Header declaring the Mandelbrot and Pickover fractal classes.
Returns the image as logarithmically smoothed.
Definition: COP2_Mandelbrot.h:60
MandelbrotMode
Enumerates the different valid return types a Mandelbrot can have.
Definition: COP2_Mandelbrot.h:57
Header that manages the transformations of fractals, and convertion from picture-plane (WORLDPIXEL) s...
virtual COP2_ContextData * newContextData(const TIL_Plane *, int, fpreal32 t, int xres, int yres, int thread, int max_threads)
Evaluate Parms and Stash Data for Cooking in a contextData object.
Definition: COP2_Mandelbrot.cpp:87
static PRM_Template myTemplateList[]
Populated heavily from macros from FractalNode.h.
Definition: COP2_Mandelbrot.h:27
Small object storing both the Fractal and the Transformation space info.
Definition: COP2_Mandelbrot.h:67
Mandelbrot Operator class.
Definition: COP2_Mandelbrot.h:20
Class implementing the Mandelbrot fractal.
Definition: Mandelbrot.h:26
Object that stores and manipulates the overall &#39;offset&#39; between the transformation space...
Definition: FractalSpace.h:56
static OP_TemplatePair myTemplatePair
Assign Template Pair of node to generator.
Definition: COP2_Mandelbrot.h:30
Definition: COP2_Buddhabrot.h:17
static CH_LocalVariable myVariableList[]
Empty.
Definition: COP2_Mandelbrot.h:36
static OP_VariablePair myVariablePair
Assign empty variable pairing.
Definition: COP2_Mandelbrot.h:33
virtual OP_ERROR generateTile(COP2_Context &context, TIL_TileList *tilelist)
Generates the image.
Definition: COP2_Mandelbrot.cpp:124
virtual TIL_Sequence * cookSequenceInfo(OP_ERROR &error)
Determine Frame Range, Image Composition, and other Sequence Info.
Definition: COP2_Mandelbrot.cpp:77