70 PSYM_NORMAL=PSYM_DEG000L,
71 PSYM_FLIPX=PSYM_DEG180R,
72 PSYM_FLIPY=PSYM_DEG000R,
73 PSYM_FLIPXY=PSYM_DEG180L
80 template <Po
intSymmetry PSYM>
81 inline SPoint Map(
const SPoint & in) ;
83 template <>
inline SPoint Map<PSYM_DEG000L>(
const SPoint & in) {
return SPoint( in.GetX(), in.GetY()); }
84 template <>
inline SPoint Map<PSYM_DEG090L>(
const SPoint & in) {
return SPoint(-in.GetY(), in.GetX()); }
85 template <>
inline SPoint Map<PSYM_DEG180L>(
const SPoint & in) {
return SPoint(-in.GetX(),-in.GetY()); }
86 template <>
inline SPoint Map<PSYM_DEG270L>(
const SPoint & in) {
return SPoint( in.GetY(),-in.GetX()); }
87 template <>
inline SPoint Map<PSYM_DEG000R>(
const SPoint & in) {
return SPoint( in.GetX(),-in.GetY()); }
88 template <>
inline SPoint Map<PSYM_DEG090R>(
const SPoint & in) {
return SPoint( in.GetY(), in.GetX()); }
89 template <>
inline SPoint Map<PSYM_DEG180R>(
const SPoint & in) {
return SPoint(-in.GetX(), in.GetY()); }
90 template <>
inline SPoint Map<PSYM_DEG270R>(
const SPoint & in) {
return SPoint(-in.GetY(),-in.GetX()); }
96 inline SPoint Map(
const SPoint & in,
const PointSymmetry psym,
const SPoint & ifNone) {
98 case PSYM_DEG000L:
return Map<PSYM_DEG000L>(in);
99 case PSYM_DEG090L:
return Map<PSYM_DEG090L>(in);
100 case PSYM_DEG180L:
return Map<PSYM_DEG180L>(in);
101 case PSYM_DEG270L:
return Map<PSYM_DEG270L>(in);
102 case PSYM_DEG000R:
return Map<PSYM_DEG000R>(in);
103 case PSYM_DEG090R:
return Map<PSYM_DEG090R>(in);
104 case PSYM_DEG180R:
return Map<PSYM_DEG180R>(in);
105 case PSYM_DEG270R:
return Map<PSYM_DEG270R>(in);
106 default:
return ifNone;