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

📄 flexpath.hpp

📁 FlexGraphics是一套创建矢量图形的VCL组件
💻 HPP
字号:
// Borland C++ Builder
// Copyright (c) 1995, 1999 by Borland International
// All rights reserved

// (DO NOT EDIT: machine generated header) 'FlexPath.pas' rev: 5.00

#ifndef FlexPathHPP
#define FlexPathHPP

#pragma delphiheader begin
#pragma option push -w-
#pragma option push -Vx
#include <FlexUtils.hpp>	// Pascal unit
#include <Classes.hpp>	// Pascal unit
#include <Windows.hpp>	// Pascal unit
#include <SysInit.hpp>	// Pascal unit
#include <System.hpp>	// Pascal unit

//-- user supplied -----------------------------------------------------------

namespace Flexpath
{
//-- type declarations -------------------------------------------------------
#pragma option push -b-
enum TPointType { ptNode, ptEndNode, ptEndNodeClose, ptControl };
#pragma option pop

typedef DynamicArray<Windows::TPoint >  TPointArray;

typedef DynamicArray<TPointType >  TPointTypeArray;

typedef DynamicArray<bool >  TSelectedArray;

typedef DynamicArray<Windows::TRect >  TRectArray;

#pragma option push -b-
enum TPathEditFunc { pfOffset, pfJoin, pfBreak, pfClose, pfToLine, pfToCurve };
#pragma option pop

typedef Set<TPathEditFunc, pfOffset, pfToCurve>  TPathEditFuncs;

struct TPathEditParams;
typedef TPathEditParams *PPathEditParams;

struct TPathEditParams
{
	Windows::TPoint Offset;
	bool MoveControls;
} ;

struct TNearestPoint;
typedef TNearestPoint *PNearestPoint;

struct TNearestPoint
{
	Windows::TPoint Point;
	int Index0;
	int Index1;
	int MinIndex;
	float MinSqrDist;
	float CurvePos;
	bool IsNewMin;
} ;

struct TPathFigureInfo;
typedef TPathFigureInfo *PPathFigureInfo;

struct TPathFigureInfo
{
	int FirstNode;
	int LastNode;
	int LastPoint;
	bool IsClosed;
	bool IsCurve;
} ;

typedef DynamicArray<TPathFigureInfo >  TPathFigureInfos;

struct TPathInfo;
typedef TPathInfo *PPathInfo;

struct TPathInfo
{
	int PointCount;
	bool IsCurve;
	DynamicArray<TPathFigureInfo >  Figures;
} ;

#pragma option push -b-
enum TRerouteMode { rmAlways, rmAsNeeded, rmNever };
#pragma option pop

struct TRerouteParams;
typedef TRerouteParams *PRerouteParams;

struct TRerouteParams
{
	Windows::TRect RangeA;
	Windows::TRect RangeB;
	TRerouteMode Mode;
	bool Ortogonal;
	int LinkMinGap;
	bool SelfLink;
	Windows::TPoint LinkPointA;
	Windows::TPoint LinkPointB;
} ;

//-- var, const, procedure ---------------------------------------------------
extern PACKAGE bool __fastcall PointOnLine(const Windows::TPoint &p, const Windows::TPoint &p0, const 
	Windows::TPoint &p1, int StrokeWidth, Classes::TList* ScanLinePoints, PNearestPoint Nearest);
extern PACKAGE bool __fastcall CalcPath(const TPointArray Points, const TPointTypeArray Types, Windows::TRect 
	&Range, PPathInfo Info);
extern PACKAGE bool __fastcall CreatePath(HDC DC, const TPointArray Points, const TPointTypeArray Types
	, bool UseClosed, bool UseNotClosed, bool &Complete, bool OriginalBezier, PPathInfo Info);
extern PACKAGE bool __fastcall PointOnPath(const TPointArray Points, const TPointTypeArray Types, const 
	Windows::TPoint &Point, bool Stroked, bool Filled, int StrokeWidth, PNearestPoint Nearest, PPathInfo 
	Info, Windows::PSingle LengthPos);
extern PACKAGE float __fastcall PathLength(const TPointArray Points, const TPointTypeArray Types, PPathInfo 
	Info);
extern PACKAGE bool __fastcall PathLengthPos(const TPointArray Points, const TPointTypeArray Types, 
	float PathPos, PNearestPoint Nearest, PPathInfo Info);
extern PACKAGE bool __fastcall FlattenPath(TPointArray &Points, TPointTypeArray &Types, float Curvature
	, PPathInfo Info);
extern PACKAGE int __fastcall InsertPathPoint(TPointArray &Points, TPointTypeArray &Types, int FirstIndex
	, int NextIndex, const Windows::TPoint &Point, int StickThreshold, PPathInfo Info);
extern PACKAGE bool __fastcall FindNearestPathSegment(const TPointArray Points, const TPointTypeArray 
	Types, const Windows::TPoint &Point, int &FirstIndex, int &NextIndex, PNearestPoint Nearest, PPathInfo 
	Info, bool ForInsert);
extern PACKAGE int __fastcall InsertNearestPoint(TPointArray &Points, TPointTypeArray &Types, const 
	Windows::TPoint &Point, int StickThreshold, PPathInfo Info);
extern PACKAGE TPathEditFuncs __fastcall GetEditPathCaps(const TPointArray Points, const TPointTypeArray 
	Types, const TSelectedArray Selected);
extern PACKAGE bool __fastcall EditPath(TPointArray &Points, TPointTypeArray &Types, const TSelectedArray 
	Selected, TPathEditFunc Func, PPathEditParams Params)/* overload */;
extern PACKAGE bool __fastcall EditPath(TPointArray &Points, TPointTypeArray &Types, const int * Indexes
	, const int Indexes_Size, TPathEditFunc Func, PPathEditParams Params)/* overload */;
extern PACKAGE bool __fastcall ConnectorReroute(TPointArray &Points, TPointTypeArray &PointTypes, const 
	TRerouteParams &Params);
extern PACKAGE void __fastcall GetPathInfo(const TPointArray Points, const TPointTypeArray Types, TPathInfo 
	&Info);
extern PACKAGE int __fastcall GetFigureIndex(const TPathInfo &Info, int PointIndex);
extern PACKAGE bool __fastcall ChangePathCount(TPointArray &Points, TPointTypeArray &Types, int Index
	, int Delta);

}	/* namespace Flexpath */
#if !defined(NO_IMPLICIT_NAMESPACE_USE)
using namespace Flexpath;
#endif
#pragma option pop	// -w-
#pragma option pop	// -Vx

#pragma delphiheader end.
//-- end unit ----------------------------------------------------------------
#endif	// FlexPath

⌨️ 快捷键说明

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