Difference between revisions of "User:Gaganjyotsingh/librecadkernel"
(Created page with "LibreCAD Kernel Documentation/API Documentation for the usage with other softwares.") |
|||
(4 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
LibreCAD Kernel Documentation/API Documentation for the usage with other softwares. | LibreCAD Kernel Documentation/API Documentation for the usage with other softwares. | ||
+ | |||
+ | LibreCAD kernel is a library to perform 2D operations. Rightnow it supports the basic entities like circle, line, arc, ellipse ( Although can be extended to b-splines, beizer curves ) and the code is built in C++ and Qt. . | ||
+ | |||
+ | It now follows a document based approach and has been designed to be very extensible. | ||
+ | |||
+ | It supports the operations of creating, deleting and trimming of entities. Has an undo-redo stack hence you can do unlimited undos and redos. | ||
+ | |||
+ | Things that are going to be implemented in GSoC are, | ||
+ | *support for moving entities from one position to another. | ||
+ | *Ability to copy entities any number of times. | ||
+ | *Scaling the entities. | ||
+ | *Rotating the entities with respect to some point. | ||
+ | |||
+ | *It will have support for text and dimensioning after the GSoC period. | ||
+ | |||
+ | Directory structure and operations, | ||
+ | |||
+ | Base directory : | ||
+ | |||
+ | cadentity.* | ||
+ | |||
+ | It is the base class for all entities and each entity is inherited from this class. | ||
+ | |||
+ | id.* | ||
+ | |||
+ | These file contain the class that generates a unique ID for every new entity so created. | ||
+ | |||
+ | metainfo.* | ||
+ | |||
+ | These files contains the classes which are metatypes for any entity. For example the pen color, line width, layer of entity. | ||
+ | |||
+ | Dochelpers : | ||
+ | |||
+ | These are the implementation files of the files in document folder( containing the virtual functions). | ||
+ | |||
+ | documentimpl | ||
+ | |||
+ | contains the following functions, | ||
+ | *addentity | ||
+ | *removeentity | ||
+ | *begin a process | ||
+ | *commiting a process | ||
+ | |||
+ | documentlayerimpl | ||
+ | *add entity // adds an entity to the layer | ||
+ | *remove entity // removes the entity from the layer | ||
+ | *find by id // Finds the entity by the unique ID specified | ||
+ | |||
+ | layermanagerimpl | ||
+ | It manages the layers, adds/deletes layers. |
Latest revision as of 05:19, 20 March 2014
LibreCAD Kernel Documentation/API Documentation for the usage with other softwares.
LibreCAD kernel is a library to perform 2D operations. Rightnow it supports the basic entities like circle, line, arc, ellipse ( Although can be extended to b-splines, beizer curves ) and the code is built in C++ and Qt. .
It now follows a document based approach and has been designed to be very extensible.
It supports the operations of creating, deleting and trimming of entities. Has an undo-redo stack hence you can do unlimited undos and redos.
Things that are going to be implemented in GSoC are,
- support for moving entities from one position to another.
- Ability to copy entities any number of times.
- Scaling the entities.
- Rotating the entities with respect to some point.
- It will have support for text and dimensioning after the GSoC period.
Directory structure and operations,
Base directory :
cadentity.*
It is the base class for all entities and each entity is inherited from this class.
id.*
These file contain the class that generates a unique ID for every new entity so created.
metainfo.*
These files contains the classes which are metatypes for any entity. For example the pen color, line width, layer of entity.
Dochelpers :
These are the implementation files of the files in document folder( containing the virtual functions).
documentimpl
contains the following functions,
- addentity
- removeentity
- begin a process
- commiting a process
documentlayerimpl
- add entity // adds an entity to the layer
- remove entity // removes the entity from the layer
- find by id // Finds the entity by the unique ID specified
layermanagerimpl It manages the layers, adds/deletes layers.