You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
tdeedu/kig/filters/kseg-defs.h

302 lines
6.9 KiB

// Copyright (C) 2003 Dominique Devriese <devriese@kde.org>
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
// as published by the Free Software Foundation; either version 2
// of the License, or (at your option) any later version.
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
// You should have received a copy of the GNU General Public License
// along with this program; if not, write to the Free Software
// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
// MA 02110-1301, USA.
// this is a collection of definitions we need from KSeg. It includes
// code from defs.H and G_drawstyle.H. Thanks to Ilya Baran for
// making KSeg GPL, so there are no license probs or whatever..
/*
* KSeg
* Copyright (C) 1999-2003 Ilya Baran
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Cambridge, MA 02110-1301, USA.
*
* Send comments and/or bug reports to:
* ibaran@mit.edu
*/
#ifndef DEFS_H
#define DEFS_H
#include <stdio.h>
#include <stdlib.h>
#include <tqglobal.h>
using namespace std;
#define DRAW_MAX 5000 // maximum coordinate. assumes you have a screen resolution less than this.
#define BIG (1e+37)
#define SMALL (1e-10)
inline int ROUND(double x) { return ((int)(x + 0.5)); }
inline int SIGN(double x) { return (x < 0) ? -1 : 1; }
inline int INTRAND(int a, int b) { return TQMIN(a, b) + rand() % abs(a - b); }
#define SQR(x) ((x) * (x))
#define CUBE(x) ((x) * (x) * (x))
#define QUAD(x) (((x) * (x)) * ((x) * (x)))
enum G_Type
{
G_POINT = 1,
G_SEGMENT = 2,
G_RAY = 4,
G_LINE = 8,
G_CIRCLE = 16,
G_ARC = 32,
G_POLYGON = 64,
G_CIRCLEINTERIOR = 128,
G_ARCSECTOR = 256,
G_ARCSEGMENT = 512,
//non-primitive geometric types now:
G_LOCUS = 1024,
G_MEASURE = 2048,
G_CALCULATE = 4096,
G_ANNOTATION = 8192,
//fake type for scripting:
G_LOOP = 16384,
//compound types now:
G_STRAIGHT = G_SEGMENT | G_LINE | G_RAY,
G_CURVE = G_STRAIGHT | G_ARC | G_CIRCLE,
G_FILLED = G_POLYGON | G_CIRCLEINTERIOR | G_ARCSECTOR | G_ARCSEGMENT,
G_GEOMETRIC = G_POINT | G_CURVE | G_FILLED | G_LOCUS,
G_VALUE = G_MEASURE | G_CALCULATE,
G_TEXT = G_VALUE | G_ANNOTATION,
G_ANY = G_GEOMETRIC | G_TEXT | G_LOOP
};
enum G_AnyType
{
G_TRANSLATED,
G_ROTATED,
G_SCALED,
G_REFLECTED
};
#define IS_TRANSFORM(x) ((x) == G_TRANSLATED || (x) == G_ROTATED || (x) == G_SCALED || (x) == G_REFLECTED)
enum G_PointType
{
G_FREE_POINT = G_REFLECTED + 1,
G_CONSTRAINED_POINT,
G_INTERSECTION_POINT,
G_INTERSECTION2_POINT,
G_MID_POINT
};
enum G_SegmentType
{
G_ENDPOINTS_SEGMENT = G_REFLECTED + 1
};
enum G_RayType
{
G_TWOPOINTS_RAY = G_REFLECTED + 1,
G_BISECTOR_RAY
};
enum G_LineType
{
G_TWOPOINTS_LINE = G_REFLECTED + 1,
G_PARALLEL_LINE,
G_PERPENDICULAR_LINE
};
enum G_CircleType
{
G_CENTERPOINT_CIRCLE = G_REFLECTED + 1,
G_CENTERRADIUS_CIRCLE
};
enum G_ArcType
{
G_THREEPOINTS_ARC = G_REFLECTED + 1
};
enum G_FilledType
{
G_DEFAULT_FILLED = G_REFLECTED + 1
};
enum G_LocusType
{
G_OBJECT_LOCUS = G_REFLECTED + 1
};
enum G_MeasureType
{
G_DISTANCE_MEASURE,
G_LENGTH_MEASURE,
G_RADIUS_MEASURE,
G_ANGLE_MEASURE,
G_RATIO_MEASURE,
G_SLOPE_MEASURE,
G_AREA_MEASURE
};
enum G_CalculateType
{
G_REGULAR_CALCULATE
};
enum MenuIDs
{
ID_NEW_SEGMENT = 1,
ID_NEW_MIDPOINT,
ID_NEW_LINE,
ID_NEW_PERPENDICULAR,
ID_NEW_RAY,
ID_NEW_BISECTOR,
ID_NEW_CIRCLE,
ID_NEW_INTERSECTION,
ID_NEW_ARC,
ID_NEW_LOCUS,
ID_NEW_ARCSECTOR,
ID_NEW_ARCSEGMENT,
ID_NEW_CIRCLEINTERIOR,
ID_NEW_POLYGON,
ID_EDIT_UNDO,
ID_EDIT_REDO,
ID_EDIT_DELETE,
ID_EDIT_TOGGLELABELS,
ID_EDIT_SHOWLABELS,
ID_EDIT_HIDELABELS,
ID_EDIT_CHANGELABEL,
ID_EDIT_HIDE,
ID_EDIT_SHOWHIDDEN,
ID_EDIT_COLOR,
ID_EDIT_POINTSTYLE,
ID_EDIT_LINESTYLE,
ID_EDIT_FONT,
ID_EDIT_CHANGE_NUMBER_OF_SAMPLES,
ID_EDIT_PREFERENCES,
ID_EDIT_COLOR_BLACK,
ID_EDIT_COLOR_GRAY,
ID_EDIT_COLOR_RED,
ID_EDIT_COLOR_GREEN,
ID_EDIT_COLOR_BLUE,
ID_EDIT_COLOR_YELLOW,
ID_EDIT_COLOR_PURPLE,
ID_EDIT_COLOR_CYAN,
ID_EDIT_COLOR_OTHER,
ID_EDIT_POINTSTYLE_LARGECIRCLE,
ID_EDIT_POINTSTYLE_MEDIUMCIRCLE,
ID_EDIT_POINTSTYLE_SMALLCIRCLE,
ID_EDIT_LINESTYLE_SOLID,
ID_EDIT_LINESTYLE_DASHED,
ID_EDIT_LINESTYLE_DOTTED,
ID_EDIT_LINESTYLE_THIN,
ID_EDIT_LINESTYLE_NORMAL,
ID_EDIT_LINESTYLE_THICK,
ID_EDIT_FONT_10,
ID_EDIT_FONT_12,
ID_EDIT_FONT_14,
ID_EDIT_FONT_20,
ID_EDIT_FONT_30,
ID_EDIT_FONT_FONT,
ID_MEASURE_DISTANCE,
ID_MEASURE_LENGTH,
ID_MEASURE_RADIUS,
ID_MEASURE_ANGLE,
ID_MEASURE_RATIO,
ID_MEASURE_SLOPE,
ID_MEASURE_AREA,
ID_MEASURE_CALCULATE,
ID_TRANSFORM_CHOOSE_VECTOR,
ID_TRANSFORM_CHOOSE_MIRROR,
ID_TRANSFORM_CHOOSE_CENTER,
ID_TRANSFORM_CHOOSE_RATIO,
ID_TRANSFORM_CHOOSE_ANGLE,
ID_TRANSFORM_CLEAR_CHOSEN,
ID_TRANSFORM_TRANSLATE,
ID_TRANSFORM_ROTATE,
ID_TRANSFORM_REFLECT,
ID_TRANSFORM_SCALE,
ID_CONSTRUCTION_MAKE_NORMAL,
ID_CONSTRUCTION_MAKE_GIVEN,
ID_CONSTRUCTION_MAKE_FINAL,
ID_CONSTRUCTION_MAKE_INITIAL,
ID_CONSTRUCTION_RECURSE,
ID_PLAY_QUICKPLAY,
ID_QUICKPLAY_SET_DIRECTORY,
ID_FILE_RECENTLIST_START //should be the last entry
};
#endif //DEFS_H
/*
* KSeg
* Copyright (C) 1999-2003 Ilya Baran
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Cambridge, MA 02110-1301, USA.
*
* Send comments and/or bug reports to:
* ibaran@mit.edu
*/
#ifndef G_DRAWSTYLE_H
#define G_DRAWSTYLE_H
enum PointStyle
{
ANY = 0,
SMALL_CIRCLE,
MEDIUM_CIRCLE,
LARGE_CIRCLE
};
#endif //G_DRAWSTYLE_H