A vectorial graphics library Fpvectorial allows one to create, modify, save and render vectorial images. It supports many formats, supports paths including Bézier curves and straight lines, supports pen, brush and fonts, supports geometrical, textual and some engineering elements (for example dimension measures). FPVectorial is almost entirely 2D, but it has a minimal 3D support which was added for use in milling machines to signal when the drill should go up and down. Except for this use case, FPVectorial should be used as a 2D library. See also the website wiki.lazarus.freepascal.org/fpvectorial for more help about this unit Indicates a vectorial format Indicates a vectorial format Portable Document Format SVG from W3C CorelDraw CDR Windows Metafile Document eXchange Format from AutoCad PostScript Encapsulated PostScript G-Code for a particular machine G-Code for a particular machine The extension of PDF files The extension of PostScript files The extension of SVG files The extension of CorelDraw files The extension of Windows metafiles The extension of AutoCad Data eXchange Format (DXF) files The extension of Encapsulated PostScript files A vectorial drawing Pen Utilized to draw lines The color of the Pen The color of the Pen The Pen style The Pen style The Pen Width Zero will be ignored as drawn as 1. Use the style psClear to make invisible lines instead. A vectorial drawing Brush Utilized to fill areas The color of the brush The color of the brush The style of the brush The style of the brush A vectorial drawing Font A vectorial drawing Font The color of the font The color of the font The size in points of the font The size in points of the font The name of the font The name of the font. This is passed without changes to the LCL when rendering The orientation of the font Font orientation is measured in degrees and uses the same direction as the LCL TFont.orientation, which is counter-clockwise. Zero is the normal, horizontal, orientation, directed to the right. A vectorial image Point FPVectorial is really a 2D library, but a minimal 3D support is available for use in milling machines to signal when to take the drill up and down. For this reason to main point type is 3D. The X coordinate of the point Measured in milimiters The Y coordinate of the point Measured in milimiters The Z coordinate of the point Measured in milimiters A generic path segment The coordinates in fpvectorial are given in millimiters and the starting point is in the bottom-left corner of the document. The X grows to the right and the Y grows to the top. The type of the segment Pointer to the previous segment in the linked list or nil if it is the first segment. Pointer to the next segment in the linked list or nil if it is the last segment. A generic 2D segment In a 2D segment, the X and Y coordinates represent always the final point of the segment, being that it starts where the previous segment ends. The exception is for the first segment of all, which simply holds the starting point for the drawing and should always be of the type stMoveTo. The X coordinates in milimiters of the end of the segment The Y coordinates in milimiters of the end of the segment This is a 2D line segment which overrides the Pen of the path so that it can have its own pen color and pen stype The Pen of a T2DSegmentWithPen A 2D Bézier segment In Bezier segments, we remain using the X and Y coordinates for the ending point. The starting point is where the previous segment ended, so that the intermediary bezier control points are [X2, Y2] and [X3, Y3]. The X coodinate of the first control point of the Bézier The Y coodinate of the first control point of the Bézier The X coodinate of the second control point of the Bézier The Y coodinate of the second control point of the Bézier A 3D line segment This class is provided only for 3D documents, don't use it to create 2D documents. In a 3D segment, the X, Y and Z coordinates represent always the final point of the segment, being that it starts where the previous segment ends. The exception is for the first segment of all, which simply holds the starting point for the drawing and should always be of the type stMoveTo. The X coordinates in milimiters of the end of the segment The Y coordinates in milimiters of the end of the segment The Z coordinates in milimiters of the end of the segment A 3D Bézier This class is provided only for usage in milling machines, don't use it for actually creating 3D documents as fpvectorial is currently a 2D library. The X coodinate of the first control point of the Bézier The Y coodinate of the first control point of the Bézier The Z coodinate of the first control point of the Bézier The X coodinate of the second control point of the Bézier The Y coodinate of the second control point of the Bézier The Z coodinate of the second control point of the Bézier An element of a vectorial document All elements should derive from TvEntity, regardless of whatever properties they might contain. The Pen of the entity The global Pen for the entire entity. In the case of paths, individual elements might be able to override this setting. The Brush of the entity The global Brush for the entire entity. In the case of paths, individual elements might be able to override this setting. Creates a new entity Describes the clip modes available for vectorial images This is an algorithm to determine which regions of a path are inside it or not. This is used to determine which parts of the drawing are inside the clip path or not. See http://en.wikipedia.org/wiki/Nonzero-rule for details This is an algorithm to determine which regions of a path are inside it or not. This is used to determine which parts of the drawing are inside the clip path or not. See http://en.wikipedia.org/wiki/Even-odd_rule for details A path entity The most important type of entity. It contains a number of segments which are stored in a linked list. The number of segments in the Path Pointer to the first segment of the path. Pointer to the last segment of the path This field is used internally by TPath.PrepareForSequentialReading and TPath.Next. Dont use it directly. The clipping path associated with a path. If a path has a clipping path then only its parts which are inside the clipping path will be drawn. See TvClipMode for more details. The clipping mode of a path See TvClipMode for more details Deletes all contents of this path and copies all contents from another path The path to be copied Starts a sequential reading of all segments in a path To obtain in sequence all segments of a path first call MyPath.PrepareForSequentialReading and start a for loop with the condition "for j := 0 to MyPath.Len - 1 do" and in the beginning of the loop call "CurSegment := TPathSegment(CurPath.Next());" Used for reading segments in sequence See TPath.PrepareForSequentialReading for more information The segment obtained or nil if no more segments are available A text entity A text entity, rendering using a TvFont The X coordinate in milimiters of the bottom-left corner of a text The Y coordinate in milimiters of the bottom-left corner of a text The Z coordinate in milimiters of the bottom-left corner of a text The text itself The font associated with the text A circle entity The Angles are measured in degrees in relation to the positive X axis The Radius of the circle A circular arc entity The Angles are measured in degrees in relation to the positive X axis The radius of the circular arc The start angle of the arc The end angle of the arc An ellipse entity The Angles are measured in degrees in relation to the positive X axis The length in milimiters of the major half axis of the ellipse The length in milimiters of the minor half axis of the ellipse The rotation angle of the ellipse in degrees in relation to the positive X axis An entity which represents aligned dimensions An entity which represents aligned dimensions The position of the left base of the dimension The position of the right base of the dimension The position of the left text area of the dimension The position of the right text area of the dimension An entity which contains a raster image Vectorial images can contain raster images inside them and this entity represents this. If the Width and Height differ from the same data in the image, then the raster image will be stretched. Note that TFPCustomImage does not implement a storage, so the property RasterImage should be filled with either a FPImage.TFPMemoryImage or with a TLazIntfImage. The property RasterImage might be nil. A raster image element Raster images can be inserted inside vectorial documented The top coordinate in milimiters of the image in the drawing The Left coordinate in milimiters of the image in the drawing The Width with which render the raster image The Height with which render the raster image The main class from fpvectorial representing a vectorial document The main class from fpvectorial representing a vectorial document The width of the document Measured in milimiters The height of the document Measured in milimiters The title of the vectorial document The title of the vectorial document The zoom level in which the document is currently displayed The currently selected element Constructor Destructor Copies all data from another vectorial document Any previously existing data in this object will be lost. The document to be copied Copies itself to another instance of this class Copies itself to another instance of this class The destination of the copy Writes the document to a file. Writes the document to a file. If the file doesn't exist, it will be created. The full path to the destination file The destination file format Writes the document to a stream Writes the document to a stream The destionation stream, should be already instantiated The destination file format Writes a vectorial document to a TStrings Only use this together with textual formats, never binary formats. The destination TStrings instance The destination file format Reads the document from a file Reads the document from a file. Any current contents in this object will be removed. The variant without the parameter AFormat auto-detects the format based on the extension and other factors. The full path of the file to read The source file format Reads the document from a stream Reads the document from a stream. Any current contents in this object will be removed. The source TStream instance The source file format Reads a vectorial document from a TStrings Not all readers might support this. This should only be used for reading textual, human-readable, formats, for example: SVG, DXF, G-Code, PDF, PostScript, Encapsulated PostScript. Never use this routine to reading binary formats. The source TStrings instance The source file format Returns the vectorial file format from a filename If the extension is not recognized, an exception will be raised. The result of the operation GetFormatFromExtension The file name to be analized Returns an extended description of the file format Returns an extended description of the file format Tries to guess the size of the document Tries to guess the size of the document. Usefull for formats which don't provide this information. Tries to guess the best zoom to display the document Clears all data in the document Removes all entities, removes all paths and resets all other data. Returns one of the pages of the document Returns a page from the document given a zero-based index to it as input The zero-based index to the page Returns the number of pages in the document Returns the number of pages in the document The zero-based index to the page Returns the currently selected page Returns the currently selected page Selects a page in the document Selects a page in the document The zero-based index to the page Adds a new page to the document Adds a new page to the the document Represents a page from a vectorial document Represents a page from a vectorial document The width of the page Measured in milimiters The height of the page Measured in milimiters Constructor Destructor Returns an entity by it's index Returns an entity by it's index. Use it together with GetEntitiesCount to iterate through all entities in a page. Paths are also entitites. The Index is zero-based and goes from zero to GetEntitiesCount() - 1 The entity The zero-based index to the entity Returns the number of entities in the page Use this method together with GetEntity to iterate through all entities in a page. The number of entities in the page Clears all data in the page Removes all entities, removes all paths and resets all other data. Adds an entity to the document Adds an entity to the document. It can be any object descending from TvEntity. Do not release the object added like this, because a reference to it will be added, not a copy. The entity to be added Adds a new path to the document This method will copy the path provided and add this copy to the document. Therefore one should take care of releasing a path after adding it to the document with this method. To add a path by reference use AddEntity. The path to be copied and added Starts writing a Path in multiple steps Starts writing a Path in multiple steps. Should be followed by zero or more calls to AddPointToPath and by a call to EndPath to effectively add the data. The X coodinate of the begining of the path The Y coodinate of the begining of the path Adds a move segment to the current temporary path This is similar to a invisible line segment. The final X coordinate of the MoveTo The final Y coordinate of the MoveTo Adds a line segment to the current temporary path Adds one more point to the end of a Path being writing in multiple steps. Does nothing if not called between StartPath and EndPath. Can be called multiple times to add multiple points. The final X coordinate of the line The final Y coordinate of the line The color of the line The final Z coordinate of the line Gets the current Pen Pos in the temporary path Gets the current Pen Pos in the temporary path The X coodinate of the pen position The Y coodinate of the pen position Adds a bezier element to the current temporary path Adds a bezier element to the current temporary path. It starts where the previous element ended and it goes throw the control points [AX1, AY1] and [AX2, AY2] and ends in [AX3, AY3]. The X coordinate of the first control point of the Bézier The Y coordinate of the first control point of the Bézier The X coordinate of the second control point of the Bézier The Y coordinate of the second control point of the Bézier The X coordinate of the destination point of the Bézier The Y coordinate of the destination point of the Bézier The Z coordinate of the first control point of the Bézier The Z coordinate of the second control point of the Bézier The Z coordinate of the destination point of the Bézier Sets the brush color for the current temporary path Sets the brush color for the current temporary path The color to be set for the brush Sets the brush style for the current temporary path Sets the brush style for the current temporary path The style to be set for the brush Sets the pen color for the current temporary path Sets the pen color for the current temporary path The color to be set for the Pen Sets the pen style for the current temporary path Sets the pen style for the current temporary path The style to be set for the pen Sets the pen width for the current temporary path Sets the pen width for the current temporary path The width to be set for the pen Defines a clipping path for the current temporary path Defines a clipping path for the current temporary path The path to be set as clipping path The clipping mode Finishes writing a Path Finishes writing a Path, which was created in multiple steps using StartPath and AddPointToPath, to the document. Does nothing if there wasn't a previous correspondent call to StartPath. Adds a new text element Adds a new text element The X coordinate of the bottom-left corner of the text The Y coordinate of the bottom-left corner of the text The Z coordinate of the bottom-left corner of the text The font name to be used in the text The font size for the text The text to be added The text to be added Adds a circle element Adds a circle element The X coordinate of the center of the circle The Y coordinate of the center of the circle The Z coordinate of the center of the circle The radius of the circle in milimiters Adds a circular arc to the drawing This arc is really circular, not elliptical like TCanvas.Arc The X coordinate of the center of the circular arc The Y coordinate of the center of the circular arc The Z coordinate of the center of the circular arc The radius of the circular arc in milimiters The start angle of the arc in degrees relative to the positive X axis The end angle of the arc in degrees relative to the positive X axis The color of the arc Adds a new ellipse element Adds a new ellipse element The X coordinate of the center of the ellipse The Y coordinate of the center of the ellipse The Z coordinate of the center of the ellipse The length of the major half axis of the ellipse The length of the minor half axis of the ellipse The rotation angle of the ellipse in degrees in relation to the positive X axis Adds a new aligned dimension element Adds a new aligned dimension element The position of the left base The position of the right base The position of the left text are The position of the right text area Registers a new reader for a format Registers a new reader for a format The class to be registered The format associated with the class Registers a new writer for a format Registers a new writer for a format The class to be registered The format associated with the class Convenience function to create a 2D point Convenience function to create a 2D point The generated vectorial point The X coordinate of the point The Y coordinate of the point Base class for new reader modules Base class for new writer modules