haiku/headers/os/interface/Polygon.h
Stephan Aßmus 75a6d1db99 Optimized includes. For example, BeBuild.h is almost always already included
via SupportDefs.h.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32748 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-08-27 12:36:35 +00:00

57 lines
1.4 KiB
C++

/*
* Copyright 2001-2009, Haiku, Inc. All rights reserved.
* Distributed under the terms of the MIT License.
*/
#ifndef _POLYGON_H
#define _POLYGON_H
#include <InterfaceDefs.h>
#include <Rect.h>
//namespace BPrivate { class BAffineTransform; }
//using namespace BPrivate;
class BPolygon {
public:
BPolygon(const BPoint* points, int32 count);
BPolygon(const BPolygon& other);
BPolygon(const BPolygon* other);
BPolygon();
virtual ~BPolygon();
BPolygon& operator=(const BPolygon& other);
BRect Frame() const;
void AddPoints(const BPoint* points, int32 count);
int32 CountPoints() const;
void MapTo(BRect srcRect, BRect dstRect);
void PrintToStream() const;
// void TransformBy(const BAffineTransform& transform);
// BPolygon& TransformBySelf(
// const BAffineTransform& transform);
// BPolygon TransformByCopy(
// const BAffineTransform& transform) const;
private:
friend class BView;
bool _AddPoints(const BPoint* points, int32 count,
bool computeBounds);
void _ComputeBounds();
void _MapPoint(BPoint* point, const BRect& srcRect,
const BRect& dstRect);
void _MapRectangle(BRect* rect,
const BRect& srcRect,
const BRect& dstRect);
private:
BRect fBounds;
uint32 fCount;
BPoint* fPoints;
};
#endif // _POLYGON_H_