summary | shortlog | log | commit | commitdiff | tree
raw | patch | inline | side by side (parent: 1dd6001)
raw | patch | inline | side by side (parent: 1dd6001)
author | bryce <bryce@users.sourceforge.net> | |
Sun, 18 Feb 2007 02:48:41 +0000 (02:48 +0000) | ||
committer | bryce <bryce@users.sourceforge.net> | |
Sun, 18 Feb 2007 02:48:41 +0000 (02:48 +0000) |
doc/markers_design.txt | patch | blob | history |
diff --git a/doc/markers_design.txt b/doc/markers_design.txt
index f41eaa8e446c3b67b9c120bc3bd61479b1a18ee2..e37ff1c6bed28f3759825096b355274d1e18dc53 100644 (file)
--- a/doc/markers_design.txt
+++ b/doc/markers_design.txt
=======
The marker code was originally developed by Lauris for Sodipodi, but due
to various issues, the code was not hooked to the interface. Thus
-there was no way for users to actually put markers on lines.
+there was no way for users to actually put markers on lines. He seems
+to have also started some very preliminary work for doing dimensioning,
+although the code is not far enough along to reveal the design intent.
Early in Inkscape, I dug through the code and reactivated the markers
function, and then hammered on a few of the main issues to get markers
====================
The following files contain code of relevance to markers:
-marker.h: tbd
+marker.h: Defines the SPMarker and SPMarkerReference classes. SPMarker
+ holds information about the marker's reference points, dimensions,
+ orientation, and viewbox. It also contains an extra transform matrix,
+ a list of views that will need updating if the marker's definition
+ changes, and a set of options relating to units and aspect ratios. The
+ SPMarkerReference provides an URI reference for SPMarkers.
marker.cpp: Implements the sp_marker class, providing functionality for
managing the relationship of markers to lines or other objects they've
been applied to. Updates reprs and properties as the marker's
definition changes. Handles updates/changes to marker views as well.
-sp-shape.cpp: tbd
+sp-shape.cpp: "Shapes" are drawing objects which, among other things,
+are able to have start, mid, and end markers applied to them. This file
+implements the handling of start, mid, and end markers, including
+managing references, setting or unsetting, updating, transforming,
+and updating them.
-selection-chemistry.cpp: tbd
+selection-chemistry.cpp: One of the routines in this file implements a
+function for copying defs, including markers.
-sp-marker-loc.h: tbd
+sp-marker-loc.h: Just contains a set of enum definitions for marker
+locations (start/mid/end).
-display/nr-arena-shape.cpp: tbd
+display/nr-arena-shape.cpp: Arena Shapes handle adding, updating, and
+etc. the children (like markers) of shapes. This also takes care of
+rendering a shape's markers by composing them into the parent's buffer.
-stock-items.cpp: tbd
-
-dialogs/stroke-style.h: tbd
+helper/stock-items.cpp: This file implements the code for loading
+default marker definitions from Inkscape's markers directory and making
+them available in the current document's defs section.
dialogs/stroke-style.cpp: Implements the stroke style dialog, which
includes the widgets for displaying stock markers that can be applied to
has a listing of all its SPMarkerViews, which it can use for update
purposes when it changes.
+SPShapes are objects which can take markers in one of three places:
+start, middle, or end. The SPShape class also has the routines for
+doing the logistics of setting markers, coordinating references, and so
+forth.
+
+Rendering of the markers is coordinated by SPArenaShape, which handles
+compositing of the rendered marker image into the parent shape's area,
+and takes care of clipping boundaries and such.
+
+We provide a set of stock markers that are loaded from the markers.svg
+file and hooked into each loaded document's data structure. This is
+handled in the stock-items code.
Stroke Dialog