⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 rs.h

📁 qcad2.05可用于windows和linux的源码
💻 H
字号:
/****************************************************************************** $Id: rs.h 1933 2004-12-02 03:26:42Z andrew $**** Copyright (C) 2001-2003 RibbonSoft. All rights reserved.**** This file is part of the qcadlib Library project.**** This file may be distributed and/or modified under the terms of the** GNU General Public License version 2 as published by the Free Software** Foundation and appearing in the file LICENSE.GPL included in the** packaging of this file.**** Licensees holding valid qcadlib Professional Edition licenses may use ** this file in accordance with the qcadlib Commercial License** Agreement provided with the Software.**** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.**** See http://www.ribbonsoft.com for further details.**** Contact info@ribbonsoft.com if any conditions of this licensing are** not clear to you.************************************************************************/#ifndef RS_H#define RS_H#include <qnamespace.h>#include <qprinter.h>#define RS_TEST#ifdef RS_TEST#include <assert.h>#endif// Windoze XP can't handle the original MAX/MINDOUBLE's#define RS_MAXDOUBLE 1.0E+10#define RS_MINDOUBLE -1.0E+10/** * Class namespace for various enums along with some simple * wrapper methods for converting the enums to the Qt * counterparts. * * @author Andrew Mustun */class RS2 {public:    /**     * Flags.     */    enum Flags {        /** Flag for Undoables. */        FlagUndone      = 1<<0,        /** Entity Visibility. */        FlagVisible     = 1<<1,        /** Entity attribute (e.g. color) is defined by layer. */        FlagByLayer     = 1<<2,        /** Entity attribute (e.g. color) defined by block. */        FlagByBlock     = 1<<3,        /** Layer frozen. */        FlagFrozen      = 1<<4,        /** Layer frozen by default. */        FlagDefFrozen   = 1<<5,        /** Layer locked. */        FlagLocked      = 1<<6,        /** Used for invalid pens. */        FlagInvalid     = 1<<7,        /** Entity in current selection. */        FlagSelected    = 1<<8,        /** Polyline closed? */        FlagClosed      = 1<<9,        /** Flag for temporary entities (e.g. hatch) */        FlagTemp        = 1<<10,        /** Flag for processed entities (optcontour) */        FlagProcessed   = 1<<11,        /** Startpoint selected */        FlagSelected1   = 1<<12,        /** Endpoint selected */        FlagSelected2   = 1<<13,		/** Entity is highlighted temporarily (as a user action feedback) */		FlagHighlighted = 1<<14    };    /**     * Variable types used by RS_VariableDict and RS_Variable.     */    enum VariableType {        VariableString,        VariableInt,        VariableDouble,        VariableVector,        VariableVoid    };    /**     * File types. Used by file dialogs. Note: the extension might not     * be enough to distinguish file types.     */    enum FormatType {        FormatUnknown,       /**< Unknown / unsupported format. */        FormatDXF1,          /**< QCad 1 compatibility DXF format. */        FormatDXF,           /**< DXF format. 2000. */        FormatDXF12,         /**< DXF format. R12. */        FormatCXF,           /**< CAM Expert Font format. */		FormatCAM            /**< CAM Expert CAM format (NC, CNC, D, ..) */    };    /**     * Entity types returned by the rtti() method     */    enum EntityType {        EntityUnknown,      /**< Unknown */        EntityContainer,    /**< Container */        EntityBlock,        /**< Block (Group definition) */        EntityFontChar,     /**< Font character */        EntityInsert,       /**< Insert (Group instance) */        EntityGraphic,      /**< Graphic with layers */        EntityPoint,        /**< Point */        EntityLine,         /**< Line */        EntityPolyline,     /**< Polyline */        EntityVertex,       /**< Vertex (part of a polyline) */        EntityArc,          /**< Arc */        EntityCircle,       /**< Circle */        EntityEllipse,      /**< Ellipse */        EntitySolid,        /**< Ellipse */        EntityConstructionLine, /**< Construction line */        EntityText,         /**< Text */        EntityDimAligned,   /**< Aligned Dimension */        EntityDimLinear,    /**< Linear Dimension */        EntityDimRadial,    /**< Radial Dimension */        EntityDimDiametric, /**< Diametric Dimension */        EntityDimAngular,   /**< Angular Dimension */        EntityDimLeader,    /**< Leader Dimension */        EntityHatch,        /**< Hatch */        EntityImage,        /**< Image */        EntitySpline        /**< Spline */    };    /**     * Action types used by action factories.     */    enum ActionType {        ActionNone,        /**< Invalid action id. */		        ActionDefault,        ActionFileNew,        ActionFileOpen,        ActionFileSave,        ActionFileSaveAs,        ActionFileExport,        ActionFileClose,        ActionFilePrint,        ActionFilePrintPreview,        ActionFileQuit,		        ActionPrintPreview,        ActionEditUndo,        ActionEditRedo,        ActionEditCut,        ActionEditCutNoSelect,        ActionEditCopy,        ActionEditCopyNoSelect,        ActionEditPaste,        ActionViewStatusBar,        ActionViewLayerList,        ActionViewBlockList,        ActionViewCommandLine,        ActionViewOptionToolbar,        ActionViewGrid,        ActionViewDraft,        ActionZoomIn,        ActionZoomOut,        ActionZoomAuto,        ActionZoomWindow,        ActionZoomPan,        ActionZoomRedraw,        ActionZoomPrevious,        ActionSelectSingle,        ActionSelectContour,        ActionSelectWindow,        ActionDeselectWindow,        ActionSelectAll,        ActionDeselectAll,        ActionSelectIntersected,        ActionDeselectIntersected,        ActionSelectInvert,        ActionSelectLayer,        ActionSelectDouble,        ActionDrawArc,        ActionDrawArc3P,        ActionDrawArcParallel,        ActionDrawArcTangential,        ActionDrawCircle,        ActionDrawCircle2P,        ActionDrawCircle3P,        ActionDrawCircleCR,        ActionDrawCircleParallel,        ActionDrawEllipseArcAxis,        ActionDrawEllipseAxis,        ActionDrawHatch,        ActionDrawHatchNoSelect,        ActionDrawImage,        ActionDrawLine,        ActionDrawLineAngle,        ActionDrawLineBisector,        ActionDrawLineFree,        ActionDrawLineHorVert,        ActionDrawLineHorizontal,        ActionDrawLineOrthogonal,        ActionDrawLineParallel,        ActionDrawLineParallelThrough,        ActionDrawLinePolygon,        ActionDrawLinePolygon2,        ActionDrawLineRectangle,        ActionDrawLineRelAngle,        ActionDrawLineTangent1,        ActionDrawLineTangent2,        ActionDrawLineVertical,        ActionDrawPoint,        ActionDrawSpline,        ActionDrawPolyline,        ActionDrawText,        		ActionPolylineAdd,		ActionPolylineAppend,		ActionPolylineDel,		ActionPolylineDelBetween,		ActionPolylineTrim,        ActionDimAligned,        ActionDimLinear,        ActionDimLinearVer,        ActionDimLinearHor,        ActionDimRadial,        ActionDimDiametric,        ActionDimAngular,        ActionDimLeader,        ActionModifyAttributes,        ActionModifyAttributesNoSelect,        ActionModifyDelete,        ActionModifyDeleteNoSelect,        ActionModifyDeleteQuick,        ActionModifyDeleteFree,        ActionModifyMove,        ActionModifyMoveNoSelect,        ActionModifyRotate,        ActionModifyRotateNoSelect,        ActionModifyScale,        ActionModifyScaleNoSelect,        ActionModifyMirror,        ActionModifyMirrorNoSelect,        ActionModifyMoveRotate,        ActionModifyMoveRotateNoSelect,        ActionModifyRotate2,        ActionModifyRotate2NoSelect,        ActionModifyEntity,        ActionModifyTrim,        ActionModifyTrim2,        ActionModifyTrimAmount,        ActionModifyCut,        ActionModifyStretch,        ActionModifyBevel,        ActionModifyRound,        ActionSnapFree,        ActionSnapGrid,        ActionSnapEndpoint,        ActionSnapOnEntity,        ActionSnapCenter,        ActionSnapMiddle,        ActionSnapDist,        ActionSnapIntersection,        ActionSnapIntersectionManual,        ActionRestrictNothing,        ActionRestrictOrthogonal,        ActionRestrictHorizontal,        ActionRestrictVertical,        ActionSetRelativeZero,        ActionLockRelativeZero,        ActionUnlockRelativeZero,        ActionInfoInside,        ActionInfoDist,        ActionInfoDist2,        ActionInfoAngle,        ActionInfoTotalLength,        ActionInfoTotalLengthNoSelect,        ActionInfoArea,        ActionLayersDefreezeAll,        ActionLayersFreezeAll,        ActionLayersAdd,        ActionLayersRemove,        ActionLayersEdit,        ActionLayersToggleView,        ActionLayersToggleLock,        ActionBlocksDefreezeAll,        ActionBlocksFreezeAll,        ActionBlocksAdd,        ActionBlocksRemove,        ActionBlocksAttributes,        ActionBlocksEdit,        ActionBlocksInsert,        ActionBlocksToggleView,        ActionBlocksCreate,        ActionBlocksCreateNoSelect,        ActionBlocksExplode,        ActionBlocksExplodeNoSelect,		        ActionModifyExplodeText,        ActionModifyExplodeTextNoSelect,		        ActionLibraryInsert,        ActionOptionsGeneral,        ActionOptionsDrawing,		ActionToolRegenerateDimensions,		ActionScriptOpenIDE,		ActionScriptRun,#ifndef RS_NO_COMPLEX_ENTITIES		ActionPARISDebugCreateContainer,#endif#ifdef RS_CAM		ActionCamExportAuto,		ActionCamReorder,#endif        /** Needed to loop through all actions */        ActionLast    };    /**    * Entity ending. Used for returning which end of an entity is ment.     */    enum Ending {        EndingStart,    /**< Start point. */        EndingEnd,      /**< End point. */        EndingNone      /**< Neither. */    };    /**     * Update mode for non-atomic entities that need to be updated when      * they change. e.g. texts, inserts, ...     */    enum UpdateMode {        NoUpdate,       /**< No automatic updates. */        Update,         /**< Always update automatically when modified. */		PreviewUpdate   /**< Update automatically but only for previews (quick update) */    };    /**     * Drawing mode.     */    enum DrawingMode {        ModeFull,       /**< Draw everything always detailed (default) */        ModeAuto,       /**< Draw details when reasonable */        ModePreview,    /**< Draw only in black/white without styles */        ModeXOR,        /**< XOR mode for moving previews */		ModeBW          /**< Black/white. Can be used for printing. */    };    /**     * Undoable rtti.     */    enum UndoableType {        UndoableUnknown,    /**< Unknown undoable */        UndoableEntity,     /**< Entity */        UndoableLayer       /**< Layer */    };    /**     * Toolbar ID's.     */    enum ToolBarId {        ToolBarMain,        /**< Main (menu). */        ToolBarPoints,      /**< Points. */        ToolBarLines,       /**< Lines. */        ToolBarArcs,        /**< Arcs. */        ToolBarCircles,     /**< Circles. */        ToolBarEllipses,    /**< Ellipses. */        ToolBarSplines,     /**< Splines. */        ToolBarPolylines,   /**< Polylines. */        ToolBarText,        /**< Text. */        ToolBarDim,         /**< Dimensions. */        ToolBarSnap,        /**< Snap. */        ToolBarModify,      /**< Modify. */        ToolBarSelect,      /**< Select. */        ToolBarInfo         /**< Information */    };    /**     * Units.     */    enum Unit {        None = 0,               /**< No unit (unit from parent) */        Inch = 1,               /**< Inch */        Foot = 2,               /**< Foot: 12 Inches */        Mile = 3,               /**< Mile: 1760 Yards = 1609 m */        Millimeter = 4,         /**< Millimeter: 0.001m */        Centimeter = 5,         /**< Centimeter: 0.01m */        Meter = 6,              /**< Meter */        Kilometer = 7,          /**< Kilometer: 1000m */        Microinch = 8,          /**< Microinch: 0.000001 */        Mil = 9,                /**< Mil = 0.001 Inch*/        Yard = 10,              /**< Yard: 3 Feet */        Angstrom = 11,          /**< Angstrom: 10^-10m  */        Nanometer = 12,         /**< Nanometer: 10^-9m  */        Micron = 13,            /**< Micron: 10^-6m  */        Decimeter = 14,         /**< Decimeter: 0.1m */        Decameter = 15,         /**< Decameter: 10m */        Hectometer = 16,        /**< Hectometer: 100m */        Gigameter = 17,         /**< Gigameter: 1000000m */        Astro = 18,             /**< Astro: 149.6 x 10^9m */        Lightyear = 19,         /**< Lightyear: 9460731798 x 10^6m */        Parsec = 20,            /**< Parsec: 30857 x 10^12 */		        LastUnit = 21           /**< Used to iterate through units */    };    /**     * Format for length values.     */    enum LinearFormat {        /** Scientific (e.g. 2.5E+05) */        Scientific,        /** Decimal (e.g. 9.5)*/        Decimal,        /** Engineering (e.g. 7' 11.5")*/        Engineering,        /** Architectural (e.g. 7'-9 1/8")*/        Architectural,        /** Fractional (e.g. 7 9 1/8) */        Fractional    };    /**     * Angle Units.     */    enum AngleUnit {        Deg,               /**< Degrees */        Rad,               /**< Radians */        Gra                /**< Gradians */    };    /**     * Display formats for angles.     */    enum AngleFormat {        /** Degrees with decimal point (e.g. 24.5

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -