haiku/headers/os/interface/Polygon.h
Stephan Aßmus 33d568ae09 * Indentation cleanup
* Code cleanup
* Refactoring (the unit tests still pass)
* Disabled experimental API (BAffineTransform, which is not yet publically
  available anyway)

+alphabranch


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32723 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-08-26 18:40:04 +00:00

58 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 <BeBuild.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_