LibreCAD
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
customentity.h
Go to the documentation of this file.
1 #pragma once
2 
4 #include "insert.h"
5 
6 namespace lc {
7  namespace entity {
8  class CustomEntity : public Insert, public UnmanagedDraggable {
9  public:
10  CustomEntity(const builder::InsertBuilder& builder);
11  CustomEntity(Insert_CSPtr insert, bool sameID = false);
12 
13  virtual std::vector<EntityCoordinate> snapPoints(const geo::Coordinate& coord,
14  const SimpleSnapConstrain& simpleSnapConstrain,
15  double minDistanceToSnap,
16  int maxNumberOfSnapPoints) const override = 0;
17 
18  virtual geo::Coordinate nearestPointOnPath(const geo::Coordinate& coord) const override = 0;
19 
20  virtual std::map<unsigned int, geo::Coordinate> dragPoints() const override = 0;
21  virtual CADEntity_CSPtr setDragPoints(std::map<unsigned int, lc::geo::Coordinate> dragPoints) const override;
22 
23  virtual CADEntity_CSPtr move(const geo::Coordinate& offset) const override = 0;
24  virtual CADEntity_CSPtr copy(const geo::Coordinate& offset) const override = 0;
25  virtual CADEntity_CSPtr rotate(const geo::Coordinate& rotation_center, const double rotation_angle) const override = 0;
26  virtual CADEntity_CSPtr scale(const geo::Coordinate& scale_center, const geo::Coordinate& scale_factor) const override = 0;
27  virtual CADEntity_CSPtr mirror(const geo::Coordinate& axis1, const geo::Coordinate& axis2) const override = 0;
28  virtual CADEntity_CSPtr modify(Layer_CSPtr layer, const MetaInfo_CSPtr metaInfo, Block_CSPtr block) const override = 0;
29  };
30  }
31 }
virtual CADEntity_CSPtr rotate(const geo::Coordinate &rotation_center, const double rotation_angle) const override=0
Function implementation for rotate.
virtual std::map< unsigned int, geo::Coordinate > dragPoints() const override=0
Get all points of the entity that can be dragged.
virtual CADEntity_CSPtr copy(const geo::Coordinate &offset) const override=0
Function for Copy.
Layer_CSPtr layer() const
layer return the layer this entity is placed on
Definition: cadentity.cpp:29
MetaInfo_CSPtr metaInfo() const
Definition: cadentity.h:123
virtual CADEntity_CSPtr scale(const geo::Coordinate &scale_center, const geo::Coordinate &scale_factor) const override=0
Function implementation for Scale.
Definition: cadentity.h:12
Draggable that has to remove and add itself from the document.
virtual CADEntity_CSPtr modify(Layer_CSPtr layer, const MetaInfo_CSPtr metaInfo, Block_CSPtr block) const override=0
modify Return a new entity with the same ID bit with possible modified metainfo and/pr layer informat...
virtual CADEntity_CSPtr move(const geo::Coordinate &offset) const override=0
Function for Move.
CustomEntity(const builder::InsertBuilder &builder)
Definition: customentity.cpp:3
Block_CSPtr block() const
Return the current entity block.
Definition: cadentity.cpp:33
virtual std::vector< EntityCoordinate > snapPoints(const geo::Coordinate &coord, const SimpleSnapConstrain &simpleSnapConstrain, double minDistanceToSnap, int maxNumberOfSnapPoints) const override=0
Find a number of snap points the line has available This function returns a ordered list...
virtual CADEntity_CSPtr setDragPoints(std::map< unsigned int, lc::geo::Coordinate > dragPoints) const override
Return modified entity.
virtual CADEntity_CSPtr mirror(const geo::Coordinate &axis1, const geo::Coordinate &axis2) const override=0
virtual geo::Coordinate nearestPointOnPath(const geo::Coordinate &coord) const override=0
Find the nearest point on the path for this entity for the coordinate coord The path of a entity that...