API — ICoreBlocks/ICoreStudio/StudioObjects/ICoreModelViews/Link
The public contract of 8 header(s) under src/ICoreBlocks/ICoreStudio/StudioObjects/ICoreModelViews/Link — 8 class/struct definition(s), 123 declaration(s). Each section shows the header's banner and its public (and protected-virtual) surface exactly as the file writes it.
| Header | Defines | Declarations | Bases |
|---|---|---|---|
ICoreLinkBranchHead.h | ICoreLinkBranchHead | 19 | — |
ICoreLinkBranchHeadPane.h | ICoreLinkBranchHeadPane | 14 | public ICoreGraphicsObject |
ICoreLinkBranchSegment.h | ICoreLinkBranchSegment | 39 | public ICoreGraphicsObject |
ICoreLinkBranchSegmentMover.h | ICoreLinkBranchSegmentMover | 11 | — |
ICoreLinkBranchTail.h | ICoreLinkBranchTail | 17 | — |
ICoreLinkBranchTailCircle.h | ICoreLinkBranchTailCircle | 9 | public ICoreGraphicsObject |
ICoreLinkBranchTailPane.h | ICoreLinkBranchTailPane | 14 | public ICoreGraphicsObject |
ICoreLinkPathPlanner.h | ICoreLinkPathPlanner | 0 | — |
ICoreLinkBranchHead.h#
src/ICoreBlocks/ICoreStudio/StudioObjects/ICoreModelViews/Link/ICoreLinkBranchHead.h
ICoreNativeItem*, not ICoreAnyGraphicsItem* (= QGraphicsItem*): this file is on tools/qt_boundary_scanned.txt, so it may not name a Qt type -- and once P2.9a gave ICoreGraphicsObject its own setParentItem, forwarding a raw item pointer to the three children was no longer even spellable here. The two callers pass an ICoreCanvas*, which implements the interface.
ICoreLinkBranchHead#
ICoreLinkBranchHead.h:11 · class · pImpl · 19 declaration(s)
class ICoreLinkBranchHead {
public:
explicit ICoreLinkBranchHead(ICoreLinkBranch* parentLinkBranch = nullptr);
void reAttachToPoint(ICorePoint lastPoint, ICorePoint lastLastPoint) const;
// ICoreNativeItem*, not ICoreAnyGraphicsItem* (= QGraphicsItem*): this file
// is on tools/qt_boundary_scanned.txt, so it may not name a Qt type -- and
// once P2.9a gave ICoreGraphicsObject its own setParentItem, forwarding a
// raw item pointer to the three children was no longer even spellable here.
// The two callers pass an ICoreCanvas*, which implements the interface.
void setParentItem(ICoreNativeItem* newGraphicsParent) const;
void freeFromCanvas() const;
void setHoveredOverStyle() const;
void setHoveredAwayStyle() const;
void setSelectionStyle() const;
void removeSelectionStyle() const;
void hide() const;
void show() const;
void pseudoHide() const;
void pseudoShow() const;
void setSegmentsZOrder(int newZOrder) const;
void setHeadPaneZOrder(int newZOrder) const;
ICoreLinkBranchHeadPane* getHeadPane() const;
ICoreLinkBranchSegment* getFirstSegment() const;
ICoreLinkBranchSegment* getSecondSegment() const;
void resetToInitialState(ICoreLinkBranch* parentLinkBranch = nullptr);
~ICoreLinkBranchHead();
private:
class Impl; // the two-line residue; state lives here
std::unique_ptr<Impl> impl;
};
ICoreLinkBranchHeadPane.h#
src/ICoreBlocks/ICoreStudio/StudioObjects/ICoreModelViews/Link/ICoreLinkBranchHeadPane.h
Q_OBJECT removed (P2.9d-3): this class declares no signal, slot, Q_PROPERTY or Q_INVOKABLE of its own, and nothing qobject_casts to it, holds a QPointer to it, animates it by name or reaches its metaObject(). It therefore had a meta-object nobody consulted -- and it could not keep one past P2.9d-5, when the base stops being a QObject.
ICoreLinkBranchHeadPane#
ICoreLinkBranchHeadPane.h:16 · class · bases public ICoreGraphicsObject · pImpl · 14 declaration(s)
class ICoreLinkBranchHeadPane : public ICoreGraphicsObject {
public:
explicit ICoreLinkBranchHeadPane(ICoreGraphicsObject *parent = nullptr, ICoreLinkBranch* parentLinkBranch = nullptr);
ICoreRect contentBounds() const override;
void paintContent(ICorePainter& painter) override;
ICoreRect getBoundsInCanvas() const;
ICoreLink* getGrandParentLink() const;
ICoreLinkBranch* getParentLinkBranch() const;
bool isHeadReconnecting() const;
//bool isCursorOnPane() const;
void resetToInitialState(ICoreNativeItem* parent = nullptr, ICoreLinkBranch* parentLinkBranch = nullptr);
~ICoreLinkBranchHeadPane() override;
protected:
void pointerEntered(const ICoreMouseEvent& event) override;
void pointerLeft() override;
bool mousePressed(const ICoreMouseEvent& event) override;
bool mouseMoved(const ICoreMouseEvent& event) override;
bool mouseReleased(const ICoreMouseEvent& event) override;
private:
class Impl; // the two-line residue; state lives here
std::unique_ptr<Impl> impl;
};
ICoreLinkBranchSegment.h#
src/ICoreBlocks/ICoreStudio/StudioObjects/ICoreModelViews/Link/ICoreLinkBranchSegment.h
Q_OBJECT removed (P2.9d-3): this class declares no signal, slot, Q_PROPERTY or Q_INVOKABLE of its own, and nothing qobject_casts to it, holds a QPointer to it, animates it by name or reaches its metaObject(). It therefore had a meta-object nobody consulted -- and it could not keep one past P2.9d-5, when the base stops being a QObject.
ICoreLinkBranchSegment#
ICoreLinkBranchSegment.h:17 · class · bases public ICoreGraphicsObject · pImpl · 39 declaration(s)
class ICoreLinkBranchSegment : public ICoreGraphicsObject {
public:
explicit ICoreLinkBranchSegment(ICoreGraphicsObject *parent = nullptr, ICoreLinkBranch* parentLinkBranch = nullptr, ICoreLinkBranchSegmentMover* linkSegmentMover = nullptr);
ICoreRect contentBounds() const override;
void paintContent(ICorePainter& painter) override;
ICorePainterPath contentShape() const override;
double distanceToClosestPointOnLine(const ICorePoint& PointToCheckTo) const;
ICorePoint closestPointOnLine(const ICorePoint& PointToCheckTo) const;
void setCoordinates(ICorePoint start, ICorePoint end);
void translateSegment(double dx, double dy);
void shiftStartPoint(double dx, double dy);
void shiftEndPoint(double dx, double dy);
void setConnectedStyle();
void setUnconnectedStyle();
void setHoveredOverStyle();
void setHoveredAwayStyle();
void removeSelectionStyle();
void setSelectionStyle();
void freeFromCanvas();
ICoreRect getBoundsInCanvas() const;
ICorePoint getStartPoint() const;
ICorePoint getEndPoint() const;
double getSlopeAngle_Rad() const;
double getSlopeAngle_Deg() const;
std::pair<double, double> getLinearPolyCoeff() const; // Returns pair to not confuse them with coords. ret->key is slope, ret->value is y zero shift!
double getDistanceFromStart(ICorePoint point) const;
double getDistanceFromEnd(ICorePoint point) const;
double getLength() const;
double getShortestDistance(ICorePoint point) const;
bool isBranchHeadSegment() const;
bool isBranchTailSegment() const;
ICoreLinkBranch* getParentLinkBranch() const;
void resetToInitialState(ICoreNativeItem* parent = nullptr, ICoreLinkBranch* parentLinkBranch = nullptr, ICoreLinkBranchSegmentMover* linkSegmentMover = nullptr);
void kill();
void setAlive();
bool isAlive() const;
~ICoreLinkBranchSegment() override;
protected:
void pointerEntered(const ICoreMouseEvent& event) override;
void pointerLeft() override;
bool mousePressed(const ICoreMouseEvent& event) override;
bool mouseMoved(const ICoreMouseEvent& event) override;
bool mouseReleased(const ICoreMouseEvent& event) override;
private:
class Impl; // the two-line residue; state lives here
std::unique_ptr<Impl> impl;
};
ICoreLinkBranchSegmentMover.h#
src/ICoreBlocks/ICoreStudio/StudioObjects/ICoreModelViews/Link/ICoreLinkBranchSegmentMover.h
⚠ std::optional is used below and was reaching this header transitively until 2026-08-26 (L9.10 deleted the Theme/QtBinding/ include that carried it).
ICoreLinkBranchSegmentMover#
ICoreLinkBranchSegmentMover.h:15 · class · pImpl · 11 declaration(s)
class ICoreLinkBranchSegmentMover {
public:
explicit ICoreLinkBranchSegmentMover(ICoreLinkBranch* parent);
// These are here public, so protected ICoreLinkBranchSegment can call them simultaneously when needed
//
// The three handlers used to take the scene's mouse event. They only ever
// read its scene position (mouse release read nothing at all), so that
// position is now the parameter and the scene event stays on the UI side.
void handleMouseHoversOver() const;
void handleMouseHoversAway() const;
void handleMousePress(const ICorePoint& scenePos, ICoreLinkBranchSegment* segment);
void handleMouseMove(const ICorePoint& scenePos, ICoreLinkBranchSegment* segment);
void handleMouseRelease(const ICorePoint& scenePos, ICoreLinkBranchSegment* segment) const;
static bool isMultipleOf90(double angleRad, double eps = 1e-6);
static std::optional<ICorePoint> getIntersectionPoint(std::pair<double, double> firstPolyCoeffs, std::pair<double, double> secondPolyCoeffs);
static std::pair<double, double> getOrthogonal(std::pair<double, double> underlyingPolyCoeffs, ICorePoint intersectionPoint);
void resetToInitialState(ICoreLinkBranch* parent);
~ICoreLinkBranchSegmentMover();
private:
class Impl; // the two-line residue; state lives here
std::unique_ptr<Impl> impl;
};
ICoreLinkBranchTail.h#
src/ICoreBlocks/ICoreStudio/StudioObjects/ICoreModelViews/Link/ICoreLinkBranchTail.h
ICoreNativeItem*, not ICoreAnyGraphicsItem* -- see the note on ICoreLinkBranchHead::setParentItem, which this mirrors exactly.
ICoreLinkBranchTail#
ICoreLinkBranchTail.h:12 · class · pImpl · 17 declaration(s)
class ICoreLinkBranchTail {
public:
explicit ICoreLinkBranchTail(ICoreLinkBranch* parentLinkBranch = nullptr);
void reAttachToPoint(ICorePoint lastPoint, ICorePoint lastLastPoint) const;
// ICoreNativeItem*, not ICoreAnyGraphicsItem* -- see the note on
// ICoreLinkBranchHead::setParentItem, which this mirrors exactly.
void setParentItem(ICoreNativeItem* newGraphicsParent) const;
void freeFromCanvas() const;
void hide() const;
void hideTailCircle() const;
void hideTailPane() const;
void show() const;
void pseudoHide() const;
void pseudoHidePaneOnly() const;
void pseudoShow() const;
void setCircleZOrder(int newZOrder) const;
void setTailZOrder(int newZOrder) const;
ICoreLinkBranchTailPane* getTailPane() const;
ICoreLinkBranchTailCircle* getTailCircle() const;
void resetToInitialState(ICoreLinkBranch* parentLinkBranch = nullptr);
~ICoreLinkBranchTail();
private:
class Impl; // the two-line residue; state lives here
std::unique_ptr<Impl> impl;
};
ICoreLinkBranchTailCircle.h#
src/ICoreBlocks/ICoreStudio/StudioObjects/ICoreModelViews/Link/ICoreLinkBranchTailCircle.h
Q_OBJECT removed (P2.9d-3): this class declares no signal, slot, Q_PROPERTY or Q_INVOKABLE of its own, and nothing qobject_casts to it, holds a QPointer to it, animates it by name or reaches its metaObject(). It therefore had a meta-object nobody consulted -- and it could not keep one past P2.9d-5, when the base stops being a QObject.
ICoreLinkBranchTailCircle#
ICoreLinkBranchTailCircle.h:9 · class · bases public ICoreGraphicsObject · pImpl · 9 declaration(s)
class ICoreLinkBranchTailCircle : public ICoreGraphicsObject {
public:
explicit ICoreLinkBranchTailCircle(ICoreGraphicsObject *parent = nullptr, ICoreLinkBranch* parentLink = nullptr);
ICoreRect contentBounds() const override;
void paintContent(ICorePainter& painter) override;
void pointerEntered(const ICoreMouseEvent& event) override;
void pointerLeft() override;
void setConnectedStyle();
void setUnconnectedStyle();
void resetToInitialState(ICoreNativeItem* parent = nullptr, ICoreLinkBranch* parentLink = nullptr);
~ICoreLinkBranchTailCircle() override;
private:
class Impl; // the two-line residue; state lives here
std::unique_ptr<Impl> impl;
};
ICoreLinkBranchTailPane.h#
src/ICoreBlocks/ICoreStudio/StudioObjects/ICoreModelViews/Link/ICoreLinkBranchTailPane.h
Q_OBJECT removed (P2.9d-3): this class declares no signal, slot, Q_PROPERTY or Q_INVOKABLE of its own, and nothing qobject_casts to it, holds a QPointer to it, animates it by name or reaches its metaObject(). It therefore had a meta-object nobody consulted -- and it could not keep one past P2.9d-5, when the base stops being a QObject.
ICoreLinkBranchTailPane#
ICoreLinkBranchTailPane.h:16 · class · bases public ICoreGraphicsObject · pImpl · 14 declaration(s)
class ICoreLinkBranchTailPane : public ICoreGraphicsObject {
public:
explicit ICoreLinkBranchTailPane(ICoreGraphicsObject *parent = nullptr, ICoreLinkBranch* parentLinkBranch = nullptr);
ICoreRect contentBounds() const override;
void paintContent(ICorePainter& painter) override;
ICoreRect getBoundsInCanvas() const;
ICoreLink* getGrandParentLink() const;
ICoreLinkBranch* getParentLinkBranch() const;
bool isTailReconnecting() const;
void resetToInitialState(ICoreNativeItem* parent = nullptr, ICoreLinkBranch* parentLinkBranch = nullptr);
~ICoreLinkBranchTailPane() override;
protected:
void pointerEntered(const ICoreMouseEvent& event) override;
void pointerLeft() override;
bool mousePressed(const ICoreMouseEvent& event) override;
bool mouseMoved(const ICoreMouseEvent& event) override;
bool mouseReleased(const ICoreMouseEvent& event) override;
private:
class Impl; // the two-line residue; state lives here
std::unique_ptr<Impl> impl;
};
ICoreLinkPathPlanner.h#
src/ICoreBlocks/ICoreStudio/StudioObjects/ICoreModelViews/Link/ICoreLinkPathPlanner.h
ICoreLinkPathPlanner#
ICoreLinkPathPlanner.h:9 · class · 0 declaration(s)
class ICoreLinkPathPlanner {
public:
static std::pair<bool, std::vector<ICorePoint>> optimizePath(ICoreSubsystemTreeNode* linkParent, const ICorePoint& tailCoord, const ICorePoint& headCoord,
ICorePort* tailPort, ICoreLinkBranch* branchSplittingFrom, ICorePort* headPort);
};
};