#ifdef __cplusplus extern "C" { #endif #pragma once #include "HROOT-grafType.h" #include "HROOTCoreTObject.h" #include "HROOTCoreTAttLine.h" #include "STDDeletable.h" #include "HROOT-coreType.h" #define TLINE_DECL_VIRT(Type) \ TLine_p Type##_DrawLine ( Type##_p p, double x1, double y1, double x2, double y2 );\ TLine_p Type##_DrawLineNDC ( Type##_p p, double x1, double y1, double x2, double y2 );\ void Type##_PaintLine ( Type##_p p, double x1, double y1, double x2, double y2 );\ void Type##_PaintLineNDC ( Type##_p p, double u1, double v1, double u2, double v2 );\ void Type##_SetX1 ( Type##_p p, double x1 );\ void Type##_SetX2 ( Type##_p p, double x2 );\ void Type##_SetY1 ( Type##_p p, double y1 );\ void Type##_SetY2 ( Type##_p p, double y2 ); #define TLINE_DECL_NONVIRT(Type) \ Type##_p Type##_newTLine ( double x1, double y1, double x2, double y2 );\ double Type##_tLine_GetX1 ( Type##_p p );\ double Type##_tLine_GetX2 ( Type##_p p );\ double Type##_tLine_GetY1 ( Type##_p p );\ double Type##_tLine_GetY2 ( Type##_p p );\ bool Type##_tLine_IsHorizontal ( Type##_p p );\ bool Type##_tLine_IsVertical ( Type##_p p );\ void Type##_tLine_SetHorizontal ( Type##_p p, bool set );\ void Type##_tLine_SetVertical ( Type##_p p, bool set ); #define TLINE_DECL_ACCESSOR(Type) \ #define TLINE_DEF_VIRT(Type) \ TLine_p Type##_DrawLine ( Type##_p p, double x1, double y1, double x2, double y2 ) {\ return from_nonconst_to_nonconst((TLine*)((TYPECASTMETHOD(Type, DrawLine, TLine))(p))->DrawLine(x1, y1, x2, y2));\ }\ \ TLine_p Type##_DrawLineNDC ( Type##_p p, double x1, double y1, double x2, double y2 ) {\ return from_nonconst_to_nonconst((TLine*)((TYPECASTMETHOD(Type, DrawLineNDC, TLine))(p))->DrawLineNDC(x1, y1, x2, y2));\ }\ \ void Type##_PaintLine ( Type##_p p, double x1, double y1, double x2, double y2 ) {\ ((TYPECASTMETHOD(Type, PaintLine, TLine))(p))->PaintLine(x1, y1, x2, y2);\ }\ \ void Type##_PaintLineNDC ( Type##_p p, double u1, double v1, double u2, double v2 ) {\ ((TYPECASTMETHOD(Type, PaintLineNDC, TLine))(p))->PaintLineNDC(u1, v1, u2, v2);\ }\ \ void Type##_SetX1 ( Type##_p p, double x1 ) {\ ((TYPECASTMETHOD(Type, SetX1, TLine))(p))->SetX1(x1);\ }\ \ void Type##_SetX2 ( Type##_p p, double x2 ) {\ ((TYPECASTMETHOD(Type, SetX2, TLine))(p))->SetX2(x2);\ }\ \ void Type##_SetY1 ( Type##_p p, double y1 ) {\ ((TYPECASTMETHOD(Type, SetY1, TLine))(p))->SetY1(y1);\ }\ \ void Type##_SetY2 ( Type##_p p, double y2 ) {\ ((TYPECASTMETHOD(Type, SetY2, TLine))(p))->SetY2(y2);\ } #define TLINE_DEF_NONVIRT(Type) \ Type##_p Type##_newTLine ( double x1, double y1, double x2, double y2 ) {\ Type* newp=new Type(x1, y1, x2, y2);return from_nonconst_to_nonconst(newp);\ }\ \ double Type##_tLine_GetX1 ( Type##_p p ) {\ return ((TYPECASTMETHOD(Type, tLine_GetX1, TLine))(p))->GetX1();\ }\ \ double Type##_tLine_GetX2 ( Type##_p p ) {\ return ((TYPECASTMETHOD(Type, tLine_GetX2, TLine))(p))->GetX2();\ }\ \ double Type##_tLine_GetY1 ( Type##_p p ) {\ return ((TYPECASTMETHOD(Type, tLine_GetY1, TLine))(p))->GetY1();\ }\ \ double Type##_tLine_GetY2 ( Type##_p p ) {\ return ((TYPECASTMETHOD(Type, tLine_GetY2, TLine))(p))->GetY2();\ }\ \ bool Type##_tLine_IsHorizontal ( Type##_p p ) {\ return ((TYPECASTMETHOD(Type, tLine_IsHorizontal, TLine))(p))->IsHorizontal();\ }\ \ bool Type##_tLine_IsVertical ( Type##_p p ) {\ return ((TYPECASTMETHOD(Type, tLine_IsVertical, TLine))(p))->IsVertical();\ }\ \ void Type##_tLine_SetHorizontal ( Type##_p p, bool set ) {\ ((TYPECASTMETHOD(Type, tLine_SetHorizontal, TLine))(p))->SetHorizontal(set);\ }\ \ void Type##_tLine_SetVertical ( Type##_p p, bool set ) {\ ((TYPECASTMETHOD(Type, tLine_SetVertical, TLine))(p))->SetVertical(set);\ } #define TLINE_DEF_ACCESSOR(Type) \ TOBJECT_DECL_VIRT(TLine) TATTLINE_DECL_VIRT(TLine) DELETABLE_DECL_VIRT(TLine) TLINE_DECL_VIRT(TLine) TLINE_DECL_NONVIRT(TLine) TLINE_DECL_ACCESSOR(TLine) #ifdef __cplusplus } #endif