13 class wxGraphicsContext;
52 return !(*
this == other);
62 const std::string& name)
const = 0;
177 return (
position - state.offset) / state.zoom;
181 state.activated = vis;
193 void paintCurves(wxGraphicsContext* gc,
const Rgba& background,
const VisNode& node);
195 void paintNode(wxGraphicsContext* gc,
const Rgba& background,
const VisNode& node);
197 wxColour getSlotColor(
const NodeSlot& slot,
const Rgba& background);
199 void onPaint(wxPaintEvent& evt);
201 void onMouseMotion(wxMouseEvent& evt);
203 void onMouseWheel(wxMouseEvent& evt);
205 void onLeftDown(wxMouseEvent& evt);
207 void onLeftUp(wxMouseEvent& evt);
209 void onRightUp(wxMouseEvent& evt);
211 void onDoubleClick(wxMouseEvent& evt);
234 wxPropertyGrid* grid;
276 void updateProperties();
278 void updateEnabled(wxPropertyGrid* grid);
uint32_t Size
Integral type used to index arrays (by default).
#define NAMESPACE_SPH_END
const NothingType NOTHING
Key-value associative container.
Generic dynamically allocated resizable storage.
Provides functionality for reading and writing configuration files.
virtual void startRun(SharedPtr< INode > node, const RunSettings &settings, const std::string &name) const =0
virtual void markUnsaved(bool addToUndo) const =0
Building block of a simulation hierarchy.
Size getSlotCnt() const
Returns the number of provider slots of this node.
void setNodeMgr(SharedPtr< NodeManager > mgr)
float zoom
Zoom of the panel.
VisNode * selected
Node currently selected by mouse (clicked, dragged, etc.)
Pixel transform(const Pixel position) const
VisNode * activated
Last double-clicked node.
void invalidateMousePosition()
NodeEditor(NodeWindow *parent, SharedPtr< INodeManagerCallbacks > callbacks)
void save(Config &config)
Pixel offset
Translation of the panel.
void load(Config &config)
void activate(VisNode *vis)
Optional< Pixel > mousePosition
Optional< NodeSlot > connectingSlot
Source slot when connecting.
const NodeMap & getNodes() const
Array< SharedPtr< JobNode > > getRootNodes() const
void startRun(JobNode &node)
void load(Config &config)
void startBatch(JobNode &node)
UniqueNameManager makeUniqueNameManager() const
VirtualSettings getGlobalSettings()
void addNodes(JobNode &node)
VisNode * getSelectedNode(const Pixel position)
void deleteNode(JobNode &node)
void startScript(const Path &file)
void layoutNodes(JobNode &node, const Pixel position)
NodeManager(NodeEditor *editor, SharedPtr< INodeManagerCallbacks > callbacks)
RenderPane * createRenderPreview(wxWindow *parent, JobNode &node)
NodeSlot getSlotAtPosition(const Pixel position)
void cloneHierarchy(JobNode &node)
VisNode * addNode(const SharedPtr< JobNode > &node)
void save(Config &config)
void deleteTree(JobNode &node)
void selectNode(const JobNode &node)
SharedPtr< JobNode > createNode(AutoPtr< IJob > &&job)
void addNode(const SharedPtr< JobNode > &node)
void load(Config &config)
UniqueNameManager makeUniqueNameManager() const
void addNodes(JobNode &node)
void showPanel(const PanelId id)
void save(Config &config)
NodeWindow(wxWindow *parent, SharedPtr< INodeManagerCallbacks > callbacks)
void createRenderPreview(JobNode &node)
void startScript(const Path &file)
Object representing a path on a filesystem.
Holds a map of virtual entries, associated with a unique name.
const EmptySettingsTag EMPTY_SETTINGS
Simple 2D vector with integer coordinates. Provides conversion from and to wxPoint.
Vector position(const Float a, const Float e, const Float u)
Computes the position on the elliptic trajectory.
bool operator!=(const NodeSlot &other) const
RawPtr< const VisNode > vis
bool operator==(const NodeSlot &other) const
static constexpr Size RESULT_SLOT
Base class for all polymorphic objects.
VisNode(RawPtr< JobNode > node, Pixel position)
static constexpr Size SIZE_X