diff options
Diffstat (limited to 'dep/src/g3dlite/Rect2D.cpp')
-rw-r--r-- | dep/src/g3dlite/Rect2D.cpp | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/dep/src/g3dlite/Rect2D.cpp b/dep/src/g3dlite/Rect2D.cpp new file mode 100644 index 00000000000..e4148315a58 --- /dev/null +++ b/dep/src/g3dlite/Rect2D.cpp @@ -0,0 +1,41 @@ +/** + @file Rect2D.cpp + + @maintainer Morgan McGuire, http://graphics.cs.williams.edu + + @created 2003-11-13 + @created 2009-11-16 + + Copyright 2000-2009, Morgan McGuire. + All rights reserved. + */ + +#include "G3D/platform.h" +#include "G3D/Rect2D.h" +#include "G3D/Any.h" +#include "G3D/stringutils.h" + +namespace G3D { + +/** \param any Must either Rect2D::xywh(#, #, #, #) or Rect2D::xyxy(#, #, #, #)*/ +Rect2D::Rect2D(const Any& any) { + any.verifyName("Rect2D"); + any.verifyType(Any::ARRAY); + any.verifySize(4); + if (toUpper(any.name()) == "RECT2D::XYWH") { + *this = Rect2D::xywh(any[0], any[1], any[2], any[3]); + } else { + any.verifyName("Rect2D::xyxy"); + *this = Rect2D::xyxy(any[0], any[1], any[2], any[3]); + } +} + + +/** Converts the Rect2D to an Any. */ +Rect2D::operator Any() const { + Any any(Any::ARRAY, "Rect2D::xywh"); + any.append(x0(), y0(), width(), height()); + return any; +} + +} |