]> de.git.xonotic.org Git - xonotic/netradiant.git/blobdiff - contrib/gtkgensurf/view.cpp
s/nullptr/ui::null/ where appropriate
[xonotic/netradiant.git] / contrib / gtkgensurf / view.cpp
index 06b175ad6d85eaf325e6de7fb4b10d53c6cb077f..307ccdc48d8a0ae25dbfa0143efa2d1d08945d6a 100644 (file)
@@ -36,15 +36,15 @@ int cxChar = 10, cyChar = 16;
 int X0, Y0;
 int X0G, Y0G;
 
-static RECT rcCoord;   // where X= Y= is drawn
-static RECT rcGrid;    // rectangle within rcLower that forms the border of the grid, plus
+static Rect rcCoord;   // where X= Y= is drawn
+static Rect rcGrid;    // rectangle within rcLower that forms the border of the grid, plus
                        //   a 3 pixel slop.
-static RECT rcLower;   // lower half of window, where plan view is drawn
-static RECT rcUpper;   // upper half or entire window, where isometric projection is drawn
+static Rect rcLower;   // lower half of window, where plan view is drawn
+static Rect rcUpper;   // upper half or entire window, where isometric projection is drawn
 
 void vertex_selected();
 void texfont_init();
-void texfont_write( const char *text, float l, float t );
+void texfont_write( const char *text, int l, int t );
 
 #define PEN_GRID { \
                g_GLTable.m_pfn_qglLineWidth( 1 ); \
@@ -65,15 +65,15 @@ void texfont_write( const char *text, float l, float t );
 #define DRAW_QUAD( rc,r,g,b ) {        \
                g_GLTable.m_pfn_qglBegin( GL_QUADS ); \
                g_GLTable.m_pfn_qglColor3f( 0,1,0 ); \
-               g_GLTable.m_pfn_qglVertex2f( rc.left - 1, rc.bottom ); \
-               g_GLTable.m_pfn_qglVertex2f( rc.right, rc.bottom );     \
-               g_GLTable.m_pfn_qglVertex2f( rc.right, rc.top + 1 ); \
-               g_GLTable.m_pfn_qglVertex2f( rc.left - 1, rc.top + 1 ); \
+               g_GLTable.m_pfn_qglVertex2i( rc.left - 1, rc.bottom ); \
+               g_GLTable.m_pfn_qglVertex2i( rc.right, rc.bottom );     \
+               g_GLTable.m_pfn_qglVertex2i( rc.right, rc.top + 1 ); \
+               g_GLTable.m_pfn_qglVertex2i( rc.left - 1, rc.top + 1 ); \
                g_GLTable.m_pfn_qglColor3f( r,g,b ); \
-               g_GLTable.m_pfn_qglVertex2f( rc.left, rc.bottom + 1 ); \
-               g_GLTable.m_pfn_qglVertex2f( rc.right - 1, rc.bottom + 1 );     \
-               g_GLTable.m_pfn_qglVertex2f( rc.right - 1, rc.top ); \
-               g_GLTable.m_pfn_qglVertex2f( rc.left, rc.top ); \
+               g_GLTable.m_pfn_qglVertex2i( rc.left, rc.bottom + 1 ); \
+               g_GLTable.m_pfn_qglVertex2i( rc.right - 1, rc.bottom + 1 );     \
+               g_GLTable.m_pfn_qglVertex2i( rc.right - 1, rc.top ); \
+               g_GLTable.m_pfn_qglVertex2i( rc.left, rc.top ); \
                g_GLTable.m_pfn_qglEnd(); }
 
 
@@ -141,8 +141,8 @@ static void draw_preview(){
                rcUpper.bottom = rcUpper.top / 2;
                DrawPreview( rcUpper );
                g_GLTable.m_pfn_qglBegin( GL_LINES );
-               g_GLTable.m_pfn_qglVertex2f( rcUpper.left, rcUpper.bottom );
-               g_GLTable.m_pfn_qglVertex2f( rcUpper.right, rcUpper.bottom );
+               g_GLTable.m_pfn_qglVertex2i( rcUpper.left, rcUpper.bottom );
+               g_GLTable.m_pfn_qglVertex2i( rcUpper.right, rcUpper.bottom );
                g_GLTable.m_pfn_qglEnd();
                rcLower.top = rcUpper.bottom - 1;
                DrawGrid( rcLower );
@@ -181,7 +181,7 @@ static gint expose( GtkWidget *widget, GdkEventExpose *event, gpointer data ){
 }
 
 static void button_press( GtkWidget *widget, GdkEventButton *event, gpointer data ){
-       POINT pt = { (long)event->x, widget->allocation.height - (long)event->y };
+       Point pt = { (long)event->x, widget->allocation.height - (long)event->y };
        bool Selected;
        double x,y;
        int i, j, k, ks;
@@ -290,7 +290,7 @@ static void button_press( GtkWidget *widget, GdkEventButton *event, gpointer dat
 }
 
 static void motion( GtkWidget *widget, GdkEventMotion *event, gpointer data ){
-       POINT pt = { (long)event->x, widget->allocation.height - (long)event->y };
+       Point pt = { (long)event->x, widget->allocation.height - (long)event->y };
 
        if ( !VertexMode ) {
                return;
@@ -363,72 +363,71 @@ static void preview_spin( GtkAdjustment *adj, double *data ){
 }
 
 void CreateViewWindow(){
-       GtkWidget *dlg, *vbox, *hbox, *label, *spin, *frame;
-       GtkObject *adj;
+       GtkWidget *hbox, *label, *spin;
 
 #ifndef ISOMETRIC
        elevation = PI / 6.;
        azimuth   = PI / 6.;
 #endif
 
-       g_pWndPreview = dlg = gtk_window_new( GTK_WINDOW_TOPLEVEL );
+       auto dlg = g_pWndPreview = ui::Window( ui::window_type::TOP );
        gtk_window_set_title( GTK_WINDOW( dlg ), "GtkGenSurf Preview" );
-       gtk_signal_connect( GTK_OBJECT( dlg ), "delete_event", GTK_SIGNAL_FUNC( preview_close ), NULL );
-       gtk_signal_connect( GTK_OBJECT( dlg ), "destroy", GTK_SIGNAL_FUNC( gtk_widget_destroy ), NULL );
+       dlg.connect( "delete_event", G_CALLBACK( preview_close ), NULL );
+       dlg.connect( "destroy", G_CALLBACK( gtk_widget_destroy ), NULL );
        gtk_window_set_transient_for( GTK_WINDOW( dlg ), GTK_WINDOW( g_pWnd ) );
        gtk_window_set_default_size( GTK_WINDOW( dlg ), 300, 400 );
 
-       vbox = gtk_vbox_new( FALSE, 5 );
-       gtk_widget_show( vbox );
-       gtk_container_add( GTK_CONTAINER( dlg ), vbox );
+       auto vbox = ui::VBox( FALSE, 5 );
+       vbox.show();
+       dlg.add(vbox);
 
 #ifndef ISOMETRIC
-       hbox = gtk_hbox_new( TRUE, 5 );
+       hbox = ui::HBox( TRUE, 5 );
        gtk_widget_show( hbox );
        gtk_box_pack_start( GTK_BOX( vbox ), hbox, FALSE, TRUE, 0 );
        gtk_container_set_border_width( GTK_CONTAINER( hbox ), 3 );
 
-       label = gtk_label_new( "Elevation" );
+       label = ui::Label( "Elevation" );
        gtk_widget_show( label );
        gtk_misc_set_alignment( GTK_MISC( label ), 1, 0.5 );
        gtk_box_pack_start( GTK_BOX( hbox ), label, FALSE, TRUE, 0 );
 
-       adj = gtk_adjustment_new( 30, -90, 90, 1, 10, 10 );
-       gtk_signal_connect( adj, "value_changed", GTK_SIGNAL_FUNC( preview_spin ), &elevation );
-       spin = gtk_spin_button_new( GTK_ADJUSTMENT( adj ), 1, 0 );
+       auto adj = ui::Adjustment( 30, -90, 90, 1, 10, 0 );
+       adj.connect( "value_changed", G_CALLBACK( preview_spin ), &elevation );
+       spin = ui::SpinButton( adj, 1, 0 );
        gtk_widget_show( spin );
        gtk_box_pack_start( GTK_BOX( hbox ), spin, FALSE, TRUE, 0 );
-       g_signal_connect( G_OBJECT( spin ), "focus_out_event", G_CALLBACK( doublevariable_spinfocusout ), &elevation );
+       spin.connect( "focus_out_event", G_CALLBACK( doublevariable_spinfocusout ), &elevation );
 
-       adj = gtk_adjustment_new( 30, 0, 359, 1, 10, 10 );
-       gtk_signal_connect( adj, "value_changed", GTK_SIGNAL_FUNC( preview_spin ), &azimuth );
-       spin = gtk_spin_button_new( GTK_ADJUSTMENT( adj ), 1, 0 );
+       adj = ui::Adjustment( 30, 0, 359, 1, 10, 0 );
+       adj.connect( "value_changed", G_CALLBACK( preview_spin ), &azimuth );
+       spin = ui::SpinButton( adj, 1, 0 );
        gtk_widget_show( spin );
        gtk_spin_button_set_wrap( GTK_SPIN_BUTTON( spin ), TRUE );
        gtk_box_pack_end( GTK_BOX( hbox ), spin, FALSE, TRUE, 0 );
 
-       label = gtk_label_new( "Azimuth" );
+       label = ui::Label( "Azimuth" );
        gtk_widget_show( label );
        gtk_misc_set_alignment( GTK_MISC( label ), 1, 0.5 );
        gtk_box_pack_end( GTK_BOX( hbox ), label, FALSE, TRUE, 0 );
-       g_signal_connect( G_OBJECT( spin ), "focus_out_event", G_CALLBACK( doublevariable_spinfocusout ), &azimuth );
+       spin.connect( "focus_out_event", G_CALLBACK( doublevariable_spinfocusout ), &azimuth );
 #endif
 
-       frame = gtk_frame_new( NULL );
-       gtk_widget_show( frame );
+       auto frame = ui::Frame(ui::null);
+       frame.show();
        gtk_frame_set_shadow_type( GTK_FRAME( frame ), GTK_SHADOW_IN );
        gtk_box_pack_start( GTK_BOX( vbox ), frame, TRUE, TRUE, 0 );
 
        g_pPreviewWidget = g_UIGtkTable.m_pfn_glwidget_new( FALSE, NULL );
 
        gtk_widget_set_events( g_pPreviewWidget, GDK_EXPOSURE_MASK | GDK_BUTTON_PRESS_MASK | GDK_POINTER_MOTION_MASK );
-       gtk_signal_connect( GTK_OBJECT( g_pPreviewWidget ), "expose_event", GTK_SIGNAL_FUNC( expose ), NULL );
-       gtk_signal_connect( GTK_OBJECT( g_pPreviewWidget ), "motion_notify_event", GTK_SIGNAL_FUNC( motion ), NULL );
-       gtk_signal_connect( GTK_OBJECT( g_pPreviewWidget ), "button_press_event",
-                                               GTK_SIGNAL_FUNC( button_press ), NULL );
+       g_pPreviewWidget.connect( "expose_event", G_CALLBACK( expose ), NULL );
+       g_pPreviewWidget.connect( "motion_notify_event", G_CALLBACK( motion ), NULL );
+       g_pPreviewWidget.connect( "button_press_event",
+                                               G_CALLBACK( button_press ), NULL );
 
        gtk_widget_show( g_pPreviewWidget );
-       gtk_container_add( GTK_CONTAINER( frame ), g_pPreviewWidget );
+       frame.add(ui::Widget(g_pPreviewWidget));
 
        if ( Preview ) {
                gtk_widget_show( g_pWndPreview );
@@ -439,7 +438,7 @@ void CreateViewWindow(){
 
 //=============================================================
 /* DrawPreview */
-void DrawPreview( RECT rc ){
+void DrawPreview( Rect rc ){
 #define COSXA 0.8660254037844
 #define SINXA 0.5
 #define COSYA 0.8660254037844
@@ -448,7 +447,7 @@ void DrawPreview( RECT rc ){
        double L;
        double x,y;
        int i, j;
-       POINT pt[8];
+       Point pt[8];
        XYZ v[8];
        char axis[3][2] = {"X","Y","Z"};
 
@@ -508,10 +507,10 @@ void DrawPreview( RECT rc ){
                                Scale( rc,vv[gTri[i].v[j]],&pt[j] );
 
                        g_GLTable.m_pfn_qglBegin( GL_LINE_STRIP );
-                       g_GLTable.m_pfn_qglVertex2f( pt[0].x, pt[0].y );
-                       g_GLTable.m_pfn_qglVertex2f( pt[1].x, pt[1].y );
-                       g_GLTable.m_pfn_qglVertex2f( pt[2].x, pt[2].y );
-                       g_GLTable.m_pfn_qglVertex2f( pt[0].x, pt[0].y );
+                       g_GLTable.m_pfn_qglVertex2i( pt[0].x, pt[0].y );
+                       g_GLTable.m_pfn_qglVertex2i( pt[1].x, pt[1].y );
+                       g_GLTable.m_pfn_qglVertex2i( pt[2].x, pt[2].y );
+                       g_GLTable.m_pfn_qglVertex2i( pt[0].x, pt[0].y );
                        g_GLTable.m_pfn_qglEnd();
                }
                free( vv );
@@ -594,7 +593,7 @@ void DrawPreview( RECT rc ){
                                        project( &out );
                                        Scale( rc,out,&pt[0] );
                                        g_GLTable.m_pfn_qglBegin( GL_LINE_STRIP );
-                                       g_GLTable.m_pfn_qglVertex2f( pt[0].x, pt[0].y );
+                                       g_GLTable.m_pfn_qglVertex2i( pt[0].x, pt[0].y );
                                        for ( jj = 1; jj <= SUBDIVS; jj++ )
                                        {
                                                v = (float)( jj ) / (float)( SUBDIVS );
@@ -612,7 +611,7 @@ void DrawPreview( RECT rc ){
                                                }
                                                project( &out );
                                                Scale( rc,out,&pt[0] );
-                                               g_GLTable.m_pfn_qglVertex2f( pt[0].x, pt[0].y );
+                                               g_GLTable.m_pfn_qglVertex2i( pt[0].x, pt[0].y );
                                        }
                                        g_GLTable.m_pfn_qglEnd();
                                }
@@ -653,7 +652,7 @@ void DrawPreview( RECT rc ){
                                        project( &out );
                                        Scale( rc,out,&pt[0] );
                                        g_GLTable.m_pfn_qglBegin( GL_LINE_STRIP );
-                                       g_GLTable.m_pfn_qglVertex2f( pt[0].x, pt[0].y );
+                                       g_GLTable.m_pfn_qglVertex2i( pt[0].x, pt[0].y );
                                        for ( ii = 1; ii <= SUBDIVS; ii++ )
                                        {
                                                u = (float)( ii ) / (float)( SUBDIVS );
@@ -671,7 +670,7 @@ void DrawPreview( RECT rc ){
                                                }
                                                project( &out );
                                                Scale( rc,out,&pt[0] );
-                                               g_GLTable.m_pfn_qglVertex2f( pt[0].x, pt[0].y );
+                                               g_GLTable.m_pfn_qglVertex2i( pt[0].x, pt[0].y );
                                        }
                                        g_GLTable.m_pfn_qglEnd();
                                }
@@ -684,11 +683,11 @@ void DrawPreview( RECT rc ){
                {
                        Scale( rc,xyz[i][0],&pt[0] );
                        g_GLTable.m_pfn_qglBegin( GL_LINE_STRIP );
-                       g_GLTable.m_pfn_qglVertex2f( pt[0].x, pt[0].y );
+                       g_GLTable.m_pfn_qglVertex2i( pt[0].x, pt[0].y );
                        for ( j = 1; j <= NV; j++ )
                        {
                                Scale( rc,xyz[i][j],&pt[0] );
-                               g_GLTable.m_pfn_qglVertex2f( pt[0].x, pt[0].y );
+                               g_GLTable.m_pfn_qglVertex2i( pt[0].x, pt[0].y );
                        }
                        g_GLTable.m_pfn_qglEnd();
                }
@@ -696,11 +695,11 @@ void DrawPreview( RECT rc ){
                {
                        Scale( rc,xyz[0][j],&pt[0] );
                        g_GLTable.m_pfn_qglBegin( GL_LINE_STRIP );
-                       g_GLTable.m_pfn_qglVertex2f( pt[0].x, pt[0].y );
+                       g_GLTable.m_pfn_qglVertex2i( pt[0].x, pt[0].y );
                        for ( i = 1; i <= NH; i++ )
                        {
                                Scale( rc,xyz[i][j],&pt[0] );
-                               g_GLTable.m_pfn_qglVertex2f( pt[0].x, pt[0].y );
+                               g_GLTable.m_pfn_qglVertex2i( pt[0].x, pt[0].y );
                        }
                        g_GLTable.m_pfn_qglEnd();
                }
@@ -732,8 +731,8 @@ void DrawPreview( RECT rc ){
 #endif
                                Scale( rc,v[0],&pt[1] );
                                g_GLTable.m_pfn_qglBegin( GL_LINE_STRIP );
-                               g_GLTable.m_pfn_qglVertex2f( pt[0].x, pt[0].y );
-                               g_GLTable.m_pfn_qglVertex2f( pt[1].x, pt[1].y );
+                               g_GLTable.m_pfn_qglVertex2i( pt[0].x, pt[0].y );
+                               g_GLTable.m_pfn_qglVertex2i( pt[1].x, pt[1].y );
                                g_GLTable.m_pfn_qglEnd();
                        }
                }
@@ -768,16 +767,16 @@ void DrawPreview( RECT rc ){
 #endif
                Scale( rc,v[3],&pt[0] );
                g_GLTable.m_pfn_qglBegin( GL_LINE_STRIP );
-               g_GLTable.m_pfn_qglVertex2f( pt[0].x, pt[0].y );
+               g_GLTable.m_pfn_qglVertex2i( pt[0].x, pt[0].y );
                for ( i = 0; i < 3; i++ )
                {
 #ifndef ISOMETRIC
                        project( &v[i] );
 #endif
                        Scale( rc,v[i],&pt[1] );
-                       g_GLTable.m_pfn_qglVertex2f( pt[1].x, pt[1].y );
+                       g_GLTable.m_pfn_qglVertex2i( pt[1].x, pt[1].y );
                }
-               g_GLTable.m_pfn_qglVertex2f( pt[0].x, pt[0].y );
+               g_GLTable.m_pfn_qglVertex2i( pt[0].x, pt[0].y );
                g_GLTable.m_pfn_qglEnd();
        }
 
@@ -837,8 +836,8 @@ void DrawPreview( RECT rc ){
        for ( i = 1; i <= 3; i++ )
        {
                g_GLTable.m_pfn_qglBegin( GL_LINES );
-               g_GLTable.m_pfn_qglVertex2f( pt[0].x, pt[0].y );
-               g_GLTable.m_pfn_qglVertex2f( pt[i].x, pt[i].y );
+               g_GLTable.m_pfn_qglVertex2i( pt[0].x, pt[0].y );
+               g_GLTable.m_pfn_qglVertex2i( pt[i].x, pt[i].y );
                g_GLTable.m_pfn_qglEnd();
                texfont_write( axis[i - 1], pt[i].x - cxChar / 2,pt[i].y + cyChar / 2 );
        }
@@ -939,20 +938,20 @@ void DrawPreview( RECT rc ){
                Scale( rc,v[i],&pt[i] );
        }
        g_GLTable.m_pfn_qglBegin( GL_LINE_STRIP );
-       g_GLTable.m_pfn_qglVertex2f( pt[3].x, pt[3].y );
+       g_GLTable.m_pfn_qglVertex2i( pt[3].x, pt[3].y );
        for ( i = 0; i <= 3; i++ )
-               g_GLTable.m_pfn_qglVertex2f( pt[i].x, pt[i].y );
+               g_GLTable.m_pfn_qglVertex2i( pt[i].x, pt[i].y );
        g_GLTable.m_pfn_qglEnd();
        g_GLTable.m_pfn_qglBegin( GL_LINE_STRIP );
-       g_GLTable.m_pfn_qglVertex2f( pt[7].x, pt[7].y );
+       g_GLTable.m_pfn_qglVertex2i( pt[7].x, pt[7].y );
        for ( i = 4; i <= 7; i++ )
-               g_GLTable.m_pfn_qglVertex2f( pt[i].x, pt[i].y );
+               g_GLTable.m_pfn_qglVertex2i( pt[i].x, pt[i].y );
        g_GLTable.m_pfn_qglEnd();
        g_GLTable.m_pfn_qglBegin( GL_LINES );
        for ( i = 0; i <= 3; i++ )
        {
-               g_GLTable.m_pfn_qglVertex2f( pt[i].x,pt[i].y );
-               g_GLTable.m_pfn_qglVertex2f( pt[i + 4].x,pt[i + 4].y );
+               g_GLTable.m_pfn_qglVertex2i( pt[i].x,pt[i].y );
+               g_GLTable.m_pfn_qglVertex2i( pt[i + 4].x,pt[i + 4].y );
        }
        g_GLTable.m_pfn_qglEnd();
 
@@ -961,11 +960,11 @@ void DrawPreview( RECT rc ){
        g_GLTable.m_pfn_qglDisable( GL_LINE_STIPPLE );
 }
 //=============================================================
-void DrawGrid( RECT rc ){
+void DrawGrid( Rect rc ){
        int i, j, k;
        double h,w,x,y;
-       POINT pt[2];
-       RECT rcBox;
+       Point pt[2];
+       Rect rcBox;
 
        w = (double)( rc.right - rc.left + 1 ) - cxChar;
        h = (double)( rc.top - rc.bottom + 1 ) - cxChar - cyChar;
@@ -988,8 +987,8 @@ void DrawGrid( RECT rc ){
        {
                x = Hll + i * dh;
                pt[0].x = X0G + (int)( SFG * ( x - Hll ) );
-               g_GLTable.m_pfn_qglVertex2f( pt[0].x, pt[0].y );
-               g_GLTable.m_pfn_qglVertex2f( pt[0].x, pt[1].y );
+               g_GLTable.m_pfn_qglVertex2i( pt[0].x, pt[0].y );
+               g_GLTable.m_pfn_qglVertex2i( pt[0].x, pt[1].y );
        }
        g_GLTable.m_pfn_qglEnd();
        pt[0].x = X0G;
@@ -999,8 +998,8 @@ void DrawGrid( RECT rc ){
        {
                y = Vll + i * dv;
                pt[0].y = Y0G + (int)( SFG * ( Vur - y ) );
-               g_GLTable.m_pfn_qglVertex2f( pt[0].x,pt[0].y );
-               g_GLTable.m_pfn_qglVertex2f( pt[1].x,pt[0].y );
+               g_GLTable.m_pfn_qglVertex2i( pt[0].x,pt[0].y );
+               g_GLTable.m_pfn_qglVertex2i( pt[1].x,pt[0].y );
        }
        g_GLTable.m_pfn_qglEnd();
 
@@ -1012,8 +1011,8 @@ void DrawGrid( RECT rc ){
        pt[1].x = pt[0].x + cyChar;
        pt[1].y = pt[0].y;
        g_GLTable.m_pfn_qglBegin( GL_LINES );
-       g_GLTable.m_pfn_qglVertex2f( pt[0].x,pt[0].y );
-       g_GLTable.m_pfn_qglVertex2f( pt[1].x,pt[1].y );
+       g_GLTable.m_pfn_qglVertex2i( pt[0].x,pt[0].y );
+       g_GLTable.m_pfn_qglVertex2i( pt[1].x,pt[1].y );
        g_GLTable.m_pfn_qglEnd();
        switch ( Plane )
        {
@@ -1027,8 +1026,8 @@ void DrawGrid( RECT rc ){
        pt[1].x = pt[0].x;
        pt[1].y = pt[0].y + cyChar;
        g_GLTable.m_pfn_qglBegin( GL_LINES );
-       g_GLTable.m_pfn_qglVertex2f( pt[0].x,pt[0].y );
-       g_GLTable.m_pfn_qglVertex2f( pt[1].x,pt[1].y );
+       g_GLTable.m_pfn_qglVertex2i( pt[0].x,pt[0].y );
+       g_GLTable.m_pfn_qglVertex2i( pt[1].x,pt[1].y );
        g_GLTable.m_pfn_qglEnd();
        switch ( Plane )
        {
@@ -1111,7 +1110,7 @@ void DrawGrid( RECT rc ){
 }
 
 //=============================================================
-void GetScaleFactor( RECT rc ){
+void GetScaleFactor( Rect rc ){
 #ifdef ISOMETRIC
        double h, w;
 
@@ -1138,7 +1137,7 @@ void GetScaleFactor( RECT rc ){
 }
 
 //=============================================================
-void Scale( RECT rc,XYZ xyz,POINT *pt ){
+void Scale( Rect rc,XYZ xyz,Point *pt ){
 
 #ifdef ISOMETRIC