|
Shinya Kitaoka |
810553 |
#pragma once
|
|
Toshihiro Shimizu |
890ddd |
|
|
Toshihiro Shimizu |
890ddd |
#ifndef TYPES_H
|
|
Toshihiro Shimizu |
890ddd |
#define TYPES_H
|
|
Toshihiro Shimizu |
890ddd |
|
|
Toshihiro Shimizu |
890ddd |
/**
|
|
Toshihiro Shimizu |
890ddd |
* @author Fabrizio Morciano <fabrizio.morciano@gmail.com></fabrizio.morciano@gmail.com>
|
|
Toshihiro Shimizu |
890ddd |
*/
|
|
Toshihiro Shimizu |
890ddd |
|
|
Toshihiro Shimizu |
890ddd |
#include "tcommon.h"
|
|
Toshihiro Shimizu |
890ddd |
|
|
Toshihiro Shimizu |
890ddd |
#undef DVAPI
|
|
Toshihiro Shimizu |
890ddd |
#undef DVVAR
|
|
Toshihiro Shimizu |
890ddd |
#ifdef TNZEXT_EXPORTS
|
|
Toshihiro Shimizu |
890ddd |
#define DVAPI DV_EXPORT_API
|
|
Toshihiro Shimizu |
890ddd |
#define DVVAR DV_EXPORT_VAR
|
|
Toshihiro Shimizu |
890ddd |
#else
|
|
Toshihiro Shimizu |
890ddd |
#define DVAPI DV_IMPORT_API
|
|
Toshihiro Shimizu |
890ddd |
#define DVVAR DV_IMPORT_VAR
|
|
Toshihiro Shimizu |
890ddd |
#endif
|
|
Toshihiro Shimizu |
890ddd |
|
|
Toshihiro Shimizu |
890ddd |
#include <map></map>
|
|
Toshihiro Shimizu |
890ddd |
#include <vector></vector>
|
|
Toshihiro Shimizu |
890ddd |
#include <stdexcept></stdexcept>
|
|
Toshihiro Shimizu |
890ddd |
#include <iostream></iostream>
|
|
Toshihiro Shimizu |
890ddd |
|
|
|
e280ae |
#if defined(_MSC_VER) && (_MSC_VER <= 1200)
|
|
Toshihiro Shimizu |
890ddd |
// to avoid annoying warning
|
|
Toshihiro Shimizu |
890ddd |
#pragma warning(push)
|
|
Toshihiro Shimizu |
890ddd |
#pragma warning(disable : 4290)
|
|
Toshihiro Shimizu |
890ddd |
#endif
|
|
Toshihiro Shimizu |
890ddd |
|
|
Shinya Kitaoka |
120a6e |
namespace ToonzExt {
|
|
Shinya Kitaoka |
120a6e |
namespace Type {
|
|
Shinya Kitaoka |
120a6e |
enum Corner { STRAIGHT, SPIRE, UNKNOWN };
|
|
Toshihiro Shimizu |
890ddd |
}
|
|
Toshihiro Shimizu |
890ddd |
|
|
Toshihiro Shimizu |
890ddd |
/**
|
|
Toshihiro Shimizu |
890ddd |
* @brief An useful alias for a pair of double.
|
|
Toshihiro Shimizu |
890ddd |
*/
|
|
Toshihiro Shimizu |
890ddd |
typedef std::pair<double, double=""> Interval;</double,>
|
|
Toshihiro Shimizu |
890ddd |
|
|
Shinya Kitaoka |
120a6e |
inline std::ostream &operator<<(std::ostream &os, const Interval &interval) {
|
|
Shinya Kitaoka |
120a6e |
return os << '[' << interval.first << ',' << interval.second << ']';
|
|
Toshihiro Shimizu |
890ddd |
}
|
|
Toshihiro Shimizu |
890ddd |
|
|
Toshihiro Shimizu |
890ddd |
/**
|
|
Toshihiro Shimizu |
890ddd |
* @brief List of intervals.
|
|
Toshihiro Shimizu |
890ddd |
*/
|
|
Toshihiro Shimizu |
890ddd |
typedef std::vector<interval> Intervals;</interval>
|
|
Toshihiro Shimizu |
890ddd |
|
|
Toshihiro Shimizu |
890ddd |
/**
|
|
Toshihiro Shimizu |
890ddd |
* @brief This class is an abstraction to wrap all odd number.
|
|
Shinya Kitaoka |
120a6e |
*
|
|
Toshihiro Shimizu |
890ddd |
* It is useful if you need to manage parameter of a function,
|
|
Toshihiro Shimizu |
890ddd |
* that are in some sub set of integer.
|
|
Toshihiro Shimizu |
890ddd |
* @sa EvenInt.
|
|
Toshihiro Shimizu |
890ddd |
*/
|
|
Toshihiro Shimizu |
890ddd |
// -3 -1 1 3
|
|
Shinya Kitaoka |
120a6e |
class DVAPI OddInt {
|
|
Shinya Kitaoka |
120a6e |
int val_;
|
|
Toshihiro Shimizu |
890ddd |
|
|
Toshihiro Shimizu |
890ddd |
public:
|
|
Shinya Kitaoka |
120a6e |
OddInt(int);
|
|
Shinya Kitaoka |
120a6e |
/**
|
|
Shinya Kitaoka |
120a6e |
*@brief Cast an integer, if is not an even exception is
|
|
Shinya Kitaoka |
120a6e |
* thrown.
|
|
Shinya Kitaoka |
120a6e |
*/
|
|
Shinya Kitaoka |
120a6e |
operator int() const;
|
|
Shinya Kitaoka |
120a6e |
|
|
Shinya Kitaoka |
120a6e |
/**
|
|
Shinya Kitaoka |
120a6e |
*@copydoc operator int() const
|
|
Shinya Kitaoka |
120a6e |
*/
|
|
Shinya Kitaoka |
120a6e |
operator int();
|
|
Shinya Kitaoka |
120a6e |
|
|
Shinya Kitaoka |
120a6e |
/**
|
|
Shinya Kitaoka |
120a6e |
*@brief Simple check to verify that a number is odd,
|
|
Shinya Kitaoka |
120a6e |
* without exception.
|
|
Shinya Kitaoka |
120a6e |
*/
|
|
Shinya Kitaoka |
120a6e |
bool isOdd() const;
|
|
Toshihiro Shimizu |
890ddd |
};
|
|
Toshihiro Shimizu |
890ddd |
|
|
Toshihiro Shimizu |
890ddd |
/**
|
|
Toshihiro Shimizu |
890ddd |
* @brief This class is an abstraction to wrap all odd number.
|
|
Shinya Kitaoka |
120a6e |
*
|
|
Toshihiro Shimizu |
890ddd |
* It is useful if you need to manage parameter of a function,
|
|
Toshihiro Shimizu |
890ddd |
* that are in some sub set of integer.
|
|
Toshihiro Shimizu |
890ddd |
* @sa EvenInt.
|
|
Toshihiro Shimizu |
890ddd |
*/
|
|
Toshihiro Shimizu |
890ddd |
// -4 -2 0 2 4..
|
|
Shinya Kitaoka |
120a6e |
class DVAPI EvenInt {
|
|
Shinya Kitaoka |
120a6e |
int val_;
|
|
Toshihiro Shimizu |
890ddd |
|
|
Toshihiro Shimizu |
890ddd |
public:
|
|
Shinya Kitaoka |
120a6e |
EvenInt(int);
|
|
Shinya Kitaoka |
120a6e |
|
|
Shinya Kitaoka |
120a6e |
/**
|
|
Shinya Kitaoka |
120a6e |
*@brief Cast an integer, if is not an even exception is
|
|
Shinya Kitaoka |
120a6e |
* thrown.
|
|
Shinya Kitaoka |
120a6e |
*/
|
|
Shinya Kitaoka |
120a6e |
operator int() const;
|
|
Shinya Kitaoka |
120a6e |
|
|
Shinya Kitaoka |
120a6e |
/**
|
|
Shinya Kitaoka |
120a6e |
*@copydoc operator int() const
|
|
Shinya Kitaoka |
120a6e |
*/
|
|
Shinya Kitaoka |
120a6e |
operator int();
|
|
Shinya Kitaoka |
120a6e |
|
|
Shinya Kitaoka |
120a6e |
/**
|
|
Shinya Kitaoka |
120a6e |
*@brief Simple check to verify that a number is even,
|
|
Shinya Kitaoka |
120a6e |
* without exception.
|
|
Shinya Kitaoka |
120a6e |
*/
|
|
Shinya Kitaoka |
120a6e |
bool isEven() const;
|
|
Toshihiro Shimizu |
890ddd |
};
|
|
Toshihiro Shimizu |
890ddd |
}
|
|
Toshihiro Shimizu |
890ddd |
|
|
|
e280ae |
#if defined(_MSC_VER) && (_MSC_VER <= 1200)
|
|
Toshihiro Shimizu |
890ddd |
#pragma warning(pop)
|
|
Toshihiro Shimizu |
890ddd |
#endif
|
|
Toshihiro Shimizu |
890ddd |
|
|
Toshihiro Shimizu |
890ddd |
#endif /* TYPES_H */
|
|
Toshihiro Shimizu |
890ddd |
//-----------------------------------------------------------------------------
|
|
Toshihiro Shimizu |
890ddd |
// End Of File
|
|
Toshihiro Shimizu |
890ddd |
//-----------------------------------------------------------------------------
|