CC-Fractal-Suite
COP2_Pickover.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_Pickover : public COP2_Generator
21 {
23  COP2_Pickover(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 
54  virtual bool updateParmsFlags() override;
55 
56  virtual ~COP2_Pickover();
57 };
58 
63 struct COP2_PickoverData : public COP2_ContextData
64 {
65  FractalSpace space;
66  Pickover fractal;
67 
69  fpreal32 calculate_reference(
70  COMPLEX fractalCoords, WORLDPIXELCOORDS worldPixel);
71 
74 
75  COP2_PickoverData() = default;
76  virtual ~COP2_PickoverData();
77 };
78 }
virtual OP_ERROR generateTile(COP2_Context &context, TIL_TileList *tilelist)
Generates the image.
Definition: COP2_Pickover.cpp:94
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 bool updateParmsFlags() override
Used to hide/unhide parameters.
Definition: COP2_Pickover.cpp:165
Header declaring the Mandelbrot and Pickover fractal classes.
std::complex< fpreal64 > COMPLEX
Double precision complex numbers, as defined by the HDK.
Definition: typedefs.h:25
Small object storing both the Fractal and the Transformation space info.
Definition: COP2_Pickover.h:63
static CH_LocalVariable myVariableList[]
Empty.
Definition: COP2_Pickover.h:36
Header that manages the transformations of fractals, and convertion from picture-plane (WORLDPIXEL) s...
static PRM_Template myTemplateList[]
Populated heavily from macros from FractalNode.h.
Definition: COP2_Pickover.h:27
virtual TIL_Sequence * cookSequenceInfo(OP_ERROR &error)
Determine Frame Range, Image Composition, and other Sequence Info.
Definition: COP2_Pickover.cpp:50
WORLDPIXELCOORDS world_point
The pixel-space location of the pickover point position.
Definition: COP2_Pickover.h:73
static OP_TemplatePair myTemplatePair
Assign Template Pair of node to generator.
Definition: COP2_Pickover.h:30
Object that stores and manipulates the overall &#39;offset&#39; between the transformation space...
Definition: FractalSpace.h:56
Definition: COP2_Buddhabrot.h:17
Class that implements the &#39;Pickover Stalk&#39; fractal.
Definition: Mandelbrot.h:53
Pickover Operator class.
Definition: COP2_Pickover.h:20
static OP_VariablePair myVariablePair
Assign empty variable pairing.
Definition: COP2_Pickover.h:33
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_Pickover.cpp:59
std::pair< int, int > WORLDPIXELCOORDS
Integer pixel coordinate data type.
Definition: typedefs.h:27