Библиотека myPolyBool
Содержание
Назначение библиотеки
Обеспечить удобные интерфейсные функции для связи объектов POLYBOOLEAN и объектов графического интерфейса Windows.
Функции (описание)
mybpDrawPAREA
Показать множество многоугольников PAREA на форме. Позволяет передать смещение и масштаб. Пока внутренние области закрашивает белым цветом (не оставлять там то, что должно было остаться).
mybpDrawPLINE2
Показать область PLINE2 на форме заполненную переданным цветом. Позволяет передать смещение и масштаб.
Файлы библиотеки
myPolyBool.h
<source lang="cpp">
- ifndef myPolyBoolH
- define myPolyBoolH
- include "polybool.h"
- include <ExtCtrls.hpp>
using namespace POLYBOOLEAN;
void mybpDrawPAREA(TImage* img, PAREA* ar, TColor border, TColor area, int shift_x, int shift_y, int scale); void mybpDrawPLINE2(TImage* img, PLINE2* pl, int shift_x, int shift_y, int scale);
- endif
</source>
myPolyBool.cpp
<source lang="cpp">
- pragma hdrstop
//---------------------------------------------------------------------------
- pragma package(smart_init)
- include "myPolyBool.h"
TPoint points[1000]; int size;
void mybpDrawPLINE2(TImage* img, PLINE2* pl, int shift_x, int shift_y, int scale){
VNODE2* cur=pl->head; size=0; while (cur!=NULL){ points[size].x=cur->g.x*scale+shift_x; points[size].y=cur->g.y*scale+shift_y; size++; cur=cur->next; if(cur==pl->head){ points[size].x=cur->g.x*scale+shift_x; points[size].y=cur->g.y*scale+shift_y; size++; cur=NULL; }; }; img->Canvas->Polygon(points,size-1);
};
void mybpDrawPAREA(TImage* img, PAREA* ar, TColor border, TColor area, int shift_x,int shift_y, int scale){
PAREA* curp=ar; while(curp!=NULL){ img->Canvas->Pen->Color=border; img->Canvas->Brush->Color=area; PLINE2* cur=curp->cntr; while(cur!=NULL){ mybpDrawPLINE2(img, cur, shift_x, shift_y, scale); cur=cur->next; img->Canvas->Brush->Color=clWhite; }; curp=curp->f; if(curp==ar){curp=NULL;}; };
};
</source>