Moved BAffineTransform from shared kit into interface kit. Still in BPrivate
namespace. Applied 80 char/line limit. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35955 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
@@ -1,12 +1,12 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright 2008, Haiku, Inc. All Rights Reserved.
|
* Copyright 2008-2010, Haiku, Inc. All Rights Reserved.
|
||||||
* Distributed under the terms of the MIT License.
|
* Distributed under the terms of the MIT License.
|
||||||
*
|
*
|
||||||
* Authors:
|
* Authors:
|
||||||
* Stephen Deken, stephen.deken@gmail.com
|
* Stephen Deken, stephen.deken@gmail.com
|
||||||
*/
|
*/
|
||||||
#ifndef _AFFINETRANSFORM_H
|
#ifndef _AFFINE_TRANSFORM_H
|
||||||
#define _AFFINETRANSFORM_H
|
#define _AFFINE_TRANSFORM_H
|
||||||
|
|
||||||
#include <InterfaceDefs.h>
|
#include <InterfaceDefs.h>
|
||||||
|
|
||||||
@@ -19,9 +19,12 @@ namespace BPrivate {
|
|||||||
class BAffineTransform {
|
class BAffineTransform {
|
||||||
public:
|
public:
|
||||||
BAffineTransform();
|
BAffineTransform();
|
||||||
BAffineTransform(const BAffineTransform& copyFrom);
|
BAffineTransform(
|
||||||
|
const BAffineTransform& copyFrom);
|
||||||
virtual ~BAffineTransform();
|
virtual ~BAffineTransform();
|
||||||
virtual BAffineTransform& operator=(const BAffineTransform& copyFrom);
|
|
||||||
|
virtual BAffineTransform& operator=(
|
||||||
|
const BAffineTransform& copyFrom);
|
||||||
|
|
||||||
virtual bool operator==(
|
virtual bool operator==(
|
||||||
const BAffineTransform& other) const;
|
const BAffineTransform& other) const;
|
||||||
@@ -33,58 +36,79 @@ public:
|
|||||||
|
|
||||||
// Application
|
// Application
|
||||||
BPoint Apply(const BPoint& point) const;
|
BPoint Apply(const BPoint& point) const;
|
||||||
|
void Apply(BPoint* point) const;
|
||||||
void Apply(BPoint* points, uint32 count) const;
|
void Apply(BPoint* points, uint32 count) const;
|
||||||
|
|
||||||
// Rotation
|
// Rotation
|
||||||
void Rotate(float angle);
|
void Rotate(float angle);
|
||||||
void Rotate(const BPoint& center, float angle);
|
void Rotate(const BPoint& center, float angle);
|
||||||
BAffineTransform& RotateBySelf(float angle);
|
BAffineTransform& RotateBySelf(float angle);
|
||||||
BAffineTransform& RotateBySelf(const BPoint& center, float angle);
|
BAffineTransform& RotateBySelf(const BPoint& center,
|
||||||
|
float angle);
|
||||||
BAffineTransform RotateByCopy(float angle) const;
|
BAffineTransform RotateByCopy(float angle) const;
|
||||||
BAffineTransform RotateByCopy(const BPoint& center, float angle) const;
|
BAffineTransform RotateByCopy(const BPoint& center,
|
||||||
|
float angle) const;
|
||||||
|
|
||||||
// Translation
|
// Translation
|
||||||
void Translate(float deltaX, float deltaY);
|
void Translate(float deltaX, float deltaY);
|
||||||
void Translate(const BPoint& delta);
|
void Translate(const BPoint& delta);
|
||||||
BAffineTransform& TranslateBySelf(float deltaX, float deltaY);
|
BAffineTransform& TranslateBySelf(float deltaX,
|
||||||
|
float deltaY);
|
||||||
BAffineTransform& TranslateBySelf(const BPoint& delta);
|
BAffineTransform& TranslateBySelf(const BPoint& delta);
|
||||||
BAffineTransform TranslateByCopy(float deltaX, float deltaY) const;
|
BAffineTransform TranslateByCopy(float deltaX,
|
||||||
|
float deltaY) const;
|
||||||
BAffineTransform TranslateByCopy(const BPoint& delta) const;
|
BAffineTransform TranslateByCopy(const BPoint& delta) const;
|
||||||
|
|
||||||
// Scaling
|
// Scaling
|
||||||
void Scale(float scale);
|
void Scale(float scale);
|
||||||
void Scale(const BPoint& center, float scale);
|
void Scale(const BPoint& center, float scale);
|
||||||
void Scale(float scaleX, float scaleY);
|
void Scale(float scaleX, float scaleY);
|
||||||
void Scale(const BPoint& center, float scaleX, float scaleY);
|
void Scale(const BPoint& center, float scaleX,
|
||||||
|
float scaleY);
|
||||||
void Scale(const BPoint& scale);
|
void Scale(const BPoint& scale);
|
||||||
void Scale(const BPoint& center, const BPoint& scale);
|
void Scale(const BPoint& center,
|
||||||
|
const BPoint& scale);
|
||||||
BAffineTransform& ScaleBySelf(float scale);
|
BAffineTransform& ScaleBySelf(float scale);
|
||||||
BAffineTransform& ScaleBySelf(const BPoint& center, float scale);
|
BAffineTransform& ScaleBySelf(const BPoint& center,
|
||||||
|
float scale);
|
||||||
BAffineTransform& ScaleBySelf(float scaleX, float scaleY);
|
BAffineTransform& ScaleBySelf(float scaleX, float scaleY);
|
||||||
BAffineTransform& ScaleBySelf(const BPoint& center, float scaleX, float scaleY);
|
BAffineTransform& ScaleBySelf(const BPoint& center,
|
||||||
|
float scaleX, float scaleY);
|
||||||
BAffineTransform& ScaleBySelf(const BPoint& scale);
|
BAffineTransform& ScaleBySelf(const BPoint& scale);
|
||||||
BAffineTransform& ScaleBySelf(const BPoint& center, const BPoint& scale);
|
BAffineTransform& ScaleBySelf(const BPoint& center,
|
||||||
|
const BPoint& scale);
|
||||||
BAffineTransform ScaleByCopy(float scale) const;
|
BAffineTransform ScaleByCopy(float scale) const;
|
||||||
BAffineTransform ScaleByCopy(const BPoint& center, float scale) const;
|
BAffineTransform ScaleByCopy(const BPoint& center,
|
||||||
BAffineTransform ScaleByCopy(float scaleX, float scaleY) const;
|
float scale) const;
|
||||||
BAffineTransform ScaleByCopy(const BPoint& center, float scaleX, float scaleY) const;
|
BAffineTransform ScaleByCopy(float scaleX,
|
||||||
|
float scaleY) const;
|
||||||
|
BAffineTransform ScaleByCopy(const BPoint& center,
|
||||||
|
float scaleX, float scaleY) const;
|
||||||
BAffineTransform ScaleByCopy(const BPoint& scale) const;
|
BAffineTransform ScaleByCopy(const BPoint& scale) const;
|
||||||
BAffineTransform ScaleByCopy(const BPoint& center, const BPoint& scale) const;
|
BAffineTransform ScaleByCopy(const BPoint& center,
|
||||||
|
const BPoint& scale) const;
|
||||||
|
|
||||||
// Shearing
|
// Shearing
|
||||||
void Shear(float shearX, float shearY);
|
void Shear(float shearX, float shearY);
|
||||||
void Shear(const BPoint& center, float shearX, float shearY);
|
void Shear(const BPoint& center, float shearX,
|
||||||
|
float shearY);
|
||||||
void Shear(const BPoint& shear);
|
void Shear(const BPoint& shear);
|
||||||
void Shear(const BPoint& center, const BPoint& shear);
|
void Shear(const BPoint& center,
|
||||||
|
const BPoint& shear);
|
||||||
|
|
||||||
BAffineTransform& ShearBySelf(float shearX, float shearY);
|
BAffineTransform& ShearBySelf(float shearX, float shearY);
|
||||||
BAffineTransform& ShearBySelf(const BPoint& center, float shearX, float shearY);
|
BAffineTransform& ShearBySelf(const BPoint& center,
|
||||||
|
float shearX, float shearY);
|
||||||
BAffineTransform& ShearBySelf(const BPoint& shear);
|
BAffineTransform& ShearBySelf(const BPoint& shear);
|
||||||
BAffineTransform& ShearBySelf(const BPoint& center, const BPoint& shear);
|
BAffineTransform& ShearBySelf(const BPoint& center,
|
||||||
BAffineTransform ShearByCopy(float shearX, float shearY) const;
|
const BPoint& shear);
|
||||||
BAffineTransform ShearByCopy(const BPoint& center, float shearX, float shearY) const;
|
BAffineTransform ShearByCopy(float shearX,
|
||||||
|
float shearY) const;
|
||||||
|
BAffineTransform ShearByCopy(const BPoint& center,
|
||||||
|
float shearX, float shearY) const;
|
||||||
BAffineTransform ShearByCopy(const BPoint& shear) const;
|
BAffineTransform ShearByCopy(const BPoint& shear) const;
|
||||||
BAffineTransform ShearByCopy(const BPoint& center, const BPoint& shear) const;
|
BAffineTransform ShearByCopy(const BPoint& center,
|
||||||
|
const BPoint& shear) const;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
void _Rotate(float angle);
|
void _Rotate(float angle);
|
||||||
@@ -94,6 +118,7 @@ private:
|
|||||||
|
|
||||||
void _TransformPoint(BPoint& point) const;
|
void _TransformPoint(BPoint& point) const;
|
||||||
|
|
||||||
|
private:
|
||||||
agg::trans_affine fTransformMatrix;
|
agg::trans_affine fTransformMatrix;
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -101,4 +126,4 @@ private:
|
|||||||
|
|
||||||
using namespace BPrivate;
|
using namespace BPrivate;
|
||||||
|
|
||||||
#endif // _AFFINETRANSFORM_H
|
#endif // _AFFINE_TRANSFORM_H
|
||||||
@@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright 2008, Haiku, Inc. All Rights Reserved.
|
* Copyright 2008-2010, Haiku, Inc. All Rights Reserved.
|
||||||
* Distributed under the terms of the MIT License.
|
* Distributed under the terms of the MIT License.
|
||||||
*
|
*
|
||||||
* Authors:
|
* Authors:
|
||||||
@@ -9,14 +9,17 @@
|
|||||||
#include <AffineTransform.h>
|
#include <AffineTransform.h>
|
||||||
#include <Point.h>
|
#include <Point.h>
|
||||||
|
|
||||||
|
|
||||||
BAffineTransform::BAffineTransform()
|
BAffineTransform::BAffineTransform()
|
||||||
: fTransformMatrix()
|
:
|
||||||
|
fTransformMatrix()
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
BAffineTransform::BAffineTransform(const BAffineTransform& copyFrom)
|
BAffineTransform::BAffineTransform(const BAffineTransform& copyFrom)
|
||||||
: fTransformMatrix(copyFrom.fTransformMatrix)
|
:
|
||||||
|
fTransformMatrix(copyFrom.fTransformMatrix)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -62,49 +65,27 @@ BAffineTransform::TransformationChanged() const
|
|||||||
BPoint
|
BPoint
|
||||||
BAffineTransform::Apply(const BPoint& point) const
|
BAffineTransform::Apply(const BPoint& point) const
|
||||||
{
|
{
|
||||||
BPoint rval(point);
|
BPoint result(point);
|
||||||
_TransformPoint(rval);
|
_TransformPoint(result);
|
||||||
return rval;
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void
|
||||||
|
BAffineTransform::Apply(BPoint* point) const
|
||||||
|
{
|
||||||
|
if (point)
|
||||||
|
_TransformPoint(*point);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void
|
void
|
||||||
BAffineTransform::Apply(BPoint* points, uint32 count) const
|
BAffineTransform::Apply(BPoint* points, uint32 count) const
|
||||||
{
|
{
|
||||||
|
if (points) {
|
||||||
for (uint32 i = 0; i < count; ++i)
|
for (uint32 i = 0; i < count; ++i)
|
||||||
_TransformPoint(points[i]);
|
_TransformPoint(points[i]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void
|
|
||||||
BAffineTransform::_Rotate(float angle)
|
|
||||||
{
|
|
||||||
if (angle != 0.0)
|
|
||||||
fTransformMatrix.multiply(agg::trans_affine_rotation(angle));
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
void
|
|
||||||
BAffineTransform::_Scale(float scaleX, float scaleY)
|
|
||||||
{
|
|
||||||
if (scaleX != 0.0 || scaleY != 0.0)
|
|
||||||
fTransformMatrix.multiply(agg::trans_affine_scaling(scaleX, scaleY));
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
void
|
|
||||||
BAffineTransform::_Translate(float deltaX, float deltaY)
|
|
||||||
{
|
|
||||||
if (deltaX != 0.0 || deltaY != 0.0)
|
|
||||||
fTransformMatrix.multiply(agg::trans_affine_translation(deltaX, deltaY));
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
void
|
|
||||||
BAffineTransform::_Shear(float shearX, float shearY)
|
|
||||||
{
|
|
||||||
if (shearX != 0.0 || shearY != 0.0)
|
|
||||||
fTransformMatrix.multiply(agg::trans_affine_skewing(shearX, shearY));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -320,7 +301,8 @@ BAffineTransform::ScaleByCopy(float scaleX, float scaleY) const
|
|||||||
|
|
||||||
|
|
||||||
BAffineTransform
|
BAffineTransform
|
||||||
BAffineTransform::ScaleByCopy(const BPoint& center, float scaleX, float scaleY) const
|
BAffineTransform::ScaleByCopy(const BPoint& center, float scaleX,
|
||||||
|
float scaleY) const
|
||||||
{
|
{
|
||||||
BAffineTransform copy(*this);
|
BAffineTransform copy(*this);
|
||||||
copy.Scale(center, scaleX, scaleY);
|
copy.Scale(center, scaleX, scaleY);
|
||||||
@@ -416,7 +398,8 @@ BAffineTransform::ShearByCopy(float shearX, float shearY) const
|
|||||||
|
|
||||||
|
|
||||||
BAffineTransform
|
BAffineTransform
|
||||||
BAffineTransform::ShearByCopy(const BPoint& center, float shearX, float shearY) const
|
BAffineTransform::ShearByCopy(const BPoint& center, float shearX,
|
||||||
|
float shearY) const
|
||||||
{
|
{
|
||||||
BAffineTransform copy(*this);
|
BAffineTransform copy(*this);
|
||||||
copy.Shear(center, shearX, shearY);
|
copy.Shear(center, shearX, shearY);
|
||||||
@@ -442,6 +425,43 @@ BAffineTransform::ShearByCopy(const BPoint& center, const BPoint& shear) const
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// #pragma mark -
|
||||||
|
|
||||||
|
|
||||||
|
void
|
||||||
|
BAffineTransform::_Rotate(float angle)
|
||||||
|
{
|
||||||
|
if (angle != 0.0)
|
||||||
|
fTransformMatrix.multiply(agg::trans_affine_rotation(angle));
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void
|
||||||
|
BAffineTransform::_Scale(float scaleX, float scaleY)
|
||||||
|
{
|
||||||
|
if (scaleX != 0.0 || scaleY != 0.0)
|
||||||
|
fTransformMatrix.multiply(agg::trans_affine_scaling(scaleX, scaleY));
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void
|
||||||
|
BAffineTransform::_Translate(float deltaX, float deltaY)
|
||||||
|
{
|
||||||
|
if (deltaX != 0.0 || deltaY != 0.0) {
|
||||||
|
fTransformMatrix.multiply(
|
||||||
|
agg::trans_affine_translation(deltaX, deltaY));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void
|
||||||
|
BAffineTransform::_Shear(float shearX, float shearY)
|
||||||
|
{
|
||||||
|
if (shearX != 0.0 || shearY != 0.0)
|
||||||
|
fTransformMatrix.multiply(agg::trans_affine_skewing(shearX, shearY));
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
void
|
void
|
||||||
BAffineTransform::_TransformPoint(BPoint& point) const
|
BAffineTransform::_TransformPoint(BPoint& point) const
|
||||||
{
|
{
|
||||||
@@ -33,6 +33,7 @@ SEARCH_SOURCE += [ FDirName $(SUBDIR) layouter ] ;
|
|||||||
|
|
||||||
MergeObject <libbe>interface_kit.o :
|
MergeObject <libbe>interface_kit.o :
|
||||||
AbstractLayoutItem.cpp
|
AbstractLayoutItem.cpp
|
||||||
|
AffineTransform.cpp
|
||||||
Alert.cpp
|
Alert.cpp
|
||||||
Alignment.cpp
|
Alignment.cpp
|
||||||
Bitmap.cpp
|
Bitmap.cpp
|
||||||
|
|||||||
@@ -12,7 +12,6 @@ UsePrivateHeaders kernel libroot ;
|
|||||||
|
|
||||||
StaticLibrary libshared.a :
|
StaticLibrary libshared.a :
|
||||||
AboutWindow.cpp
|
AboutWindow.cpp
|
||||||
AffineTransform.cpp
|
|
||||||
CalendarView.cpp
|
CalendarView.cpp
|
||||||
ColorQuantizer.cpp
|
ColorQuantizer.cpp
|
||||||
CommandPipe.cpp
|
CommandPipe.cpp
|
||||||
|
|||||||
Reference in New Issue
Block a user