mirror of
https://github.com/brunoherbelin/vimix.git
synced 2025-12-05 23:40:02 +01:00
variables non-POD should not be 'static' outside a class. Always use and init variables. Delete useless classes.
89 lines
2.2 KiB
C++
89 lines
2.2 KiB
C++
#ifndef VISITOR_H
|
|
#define VISITOR_H
|
|
|
|
#include <string>
|
|
|
|
// Forward declare different kind of Node
|
|
class Node;
|
|
class Group;
|
|
class Switch;
|
|
class Primitive;
|
|
class Scene;
|
|
class Surface;
|
|
class ImageSurface;
|
|
class FrameBufferSurface;
|
|
class LineStrip;
|
|
class LineSquare;
|
|
class LineCircle;
|
|
class Mesh;
|
|
class Frame;
|
|
class Handles;
|
|
class Symbol;
|
|
class Disk;
|
|
class Stream;
|
|
class MediaPlayer;
|
|
class Shader;
|
|
class ImageShader;
|
|
class MaskShader;
|
|
class ImageProcessingShader;
|
|
class Source;
|
|
class MediaSource;
|
|
class PatternSource;
|
|
class DeviceSource;
|
|
class GenericStreamSource;
|
|
class SessionFileSource;
|
|
class SessionGroupSource;
|
|
class RenderSource;
|
|
class CloneSource;
|
|
class NetworkSource;
|
|
class MixingGroup;
|
|
class MultiFileSource;
|
|
|
|
// Declares the interface for the visitors
|
|
class Visitor {
|
|
|
|
public:
|
|
// Need to declare overloads for basic kind of Nodes to visit
|
|
virtual void visit (Scene&) = 0;
|
|
virtual void visit (Node&) = 0;
|
|
virtual void visit (Primitive&) = 0;
|
|
virtual void visit (Group&) = 0;
|
|
virtual void visit (Switch&) = 0;
|
|
|
|
// not mandatory for all others
|
|
virtual void visit (Surface&) {}
|
|
virtual void visit (ImageSurface&) {}
|
|
virtual void visit (FrameBufferSurface&) {}
|
|
virtual void visit (LineStrip&) {}
|
|
virtual void visit (LineSquare&) {}
|
|
virtual void visit (Mesh&) {}
|
|
virtual void visit (Frame&) {}
|
|
virtual void visit (Handles&) {}
|
|
virtual void visit (Symbol&) {}
|
|
virtual void visit (Disk&) {}
|
|
virtual void visit (Shader&) {}
|
|
virtual void visit (ImageShader&) {}
|
|
virtual void visit (MaskShader&) {}
|
|
virtual void visit (ImageProcessingShader&) {}
|
|
|
|
// utility
|
|
virtual void visit (Stream&) {}
|
|
virtual void visit (MediaPlayer&) {}
|
|
virtual void visit (MixingGroup&) {}
|
|
virtual void visit (Source&) {}
|
|
virtual void visit (MediaSource&) {}
|
|
virtual void visit (NetworkSource&) {}
|
|
virtual void visit (GenericStreamSource&) {}
|
|
virtual void visit (DeviceSource&) {}
|
|
virtual void visit (PatternSource&) {}
|
|
virtual void visit (SessionFileSource&) {}
|
|
virtual void visit (SessionGroupSource&) {}
|
|
virtual void visit (RenderSource&) {}
|
|
virtual void visit (CloneSource&) {}
|
|
virtual void visit (MultiFileSource&) {}
|
|
|
|
};
|
|
|
|
|
|
#endif // VISITOR_H
|