0022590: Migration to FreeImage - revision of Xw and WNT packages
[occt.git] / src / Xw / Xw_draw_polyarc.cxx
diff --git a/src/Xw/Xw_draw_polyarc.cxx b/src/Xw/Xw_draw_polyarc.cxx
deleted file mode 100755 (executable)
index 54cb86b..0000000
+++ /dev/null
@@ -1,326 +0,0 @@
-// Copyright (c) 1999-2012 OPEN CASCADE SAS
-//
-// The content of this file is subject to the Open CASCADE Technology Public
-// License Version 6.5 (the "License"). You may not use the content of this file
-// except in compliance with the License. Please obtain a copy of the License
-// at http://www.opencascade.org and read it completely before using this file.
-//
-// The Initial Developer of the Original Code is Open CASCADE S.A.S., having its
-// main offices at: 1, place des Freres Montgolfier, 78280 Guyancourt, France.
-//
-// The Original Code and all software distributed under the License is
-// distributed on an "AS IS" basis, without warranty of any kind, and the
-// Initial Developer hereby disclaims all such warranties, including without
-// limitation, any warranties of merchantability, fitness for a particular
-// purpose or non-infringement. Please see the License for the specific terms
-// and conditions governing the rights and limitations under the License.
-
-#include <Xw_Extension.h>
-
-/* ifdef then trace on */
-#ifdef TRACE
-#define TRACE_DRAW_POLYARC
-#endif
-
-/*
-   STATUS Xw_draw_polyarc (awindow,xc,yc,xradius,yradius,start,angle):
-   XW_EXT_WINDOW *awindow
-   float xc,yc         Arc center defined in User Space
-   float xradius       Horizontal arc radius defined in User Space
-   float xradius       Vertical Arc radius defined in User Space
-   float start         Start angle defined in RADIAN
-   float angle         Arc angle defined in RADIAN
-
-       Display arc in current QG set by set_poly_attrib .
-       or retain arcs in buffer.
-
-       returns ERROR if bad parameter
-       returns SUCCESS if successfull
-
-*/
-
-#define MAXCOORD 32767
-#define MINCOORD -32768
-
-static int BeginArcs = False;
-static XW_EXT_ARC *parclist ;
-
-#ifdef XW_PROTOTYPE
-XW_STATUS Xw_draw_polyarc (void* awindow,float xc,float yc,
-                       float xradius,float yradius,float start,float angle)
-#else
-XW_STATUS Xw_draw_polyarc (awindow,xc,yc,xradius,yradius,start,angle)
-void *awindow;
-float xc,yc,xradius,yradius,start,angle ;
-#endif /*XW_PROTOTYPE*/
-{
-XW_EXT_WINDOW *pwindow = (XW_EXT_WINDOW*) awindow ;
-XW_EXT_BUFFER *pbuffer ;
-int narc,bindex,angle1,angle2,x,y,width,height ;
-
-       if( !Xw_isdefine_window(pwindow) ) {
-           /*ERROR*Bad EXT_WINDOW Address*/
-           Xw_set_error(24,"Xw_draw_polyarc",pwindow) ;
-           return (XW_ERROR) ;
-       }
-
-       if( xradius <= 0. ) {
-           /*ERROR*Bad arc radius*/
-           Xw_set_error(115,"Xw_draw_polyarc",&xradius) ;
-           return (XW_ERROR) ;
-       }
-
-       if( yradius <= 0. ) {
-           /*ERROR*Bad arc radius*/
-           Xw_set_error(115,"Xw_draw_polyarc",&yradius) ;
-           return (XW_ERROR) ;
-       }
-
-       bindex = _BINDEX ;
-       pbuffer = &_BUFFER(bindex) ;
-        for( parclist = pbuffer->pparclist ; parclist ;
-                           parclist = (XW_EXT_ARC*) parclist->link ) {
-            if( parclist->narc < MAXARCS ) break ;
-        }
-
-       if( !parclist ) {
-           parclist = Xw_add_polyarc_structure(pbuffer) ;
-       }
-
-       if( !parclist ) return XW_ERROR ;
-
-       angle1 = (int )( start*64./DRAD );
-       if( angle1 > 0 ) {
-           while( angle1 > MAXANGLE ) angle1 -= MAXANGLE ;
-       } else if( angle1 < 0 ) {
-           while( angle1 < -MAXANGLE ) angle1 += MAXANGLE ;
-       }
-       angle2 = (int )( angle*64./DRAD );
-       if( angle2 > 0 ) {
-           while( angle2 > MAXANGLE ) angle2 -= MAXANGLE ;
-       } else if( angle2 < 0 ) {
-           while( angle2 < -MAXANGLE ) angle2 += MAXANGLE ;
-       }
-//OCC186
-       width = 2*PVALUE(xradius, pwindow->xratio, pwindow->yratio) ;
-       height = 2*PVALUE(yradius, pwindow->xratio, pwindow->yratio) ;
-        x = PXPOINT(xc, pwindow->xratio) ; 
-        y = PYPOINT(yc, pwindow->attributes.height, pwindow->yratio) ; 
-//OCC186
-        x = max(min(x,MAXCOORD),MINCOORD);
-        y = max(min(y,MAXCOORD),MINCOORD);
-       if( width < 0xFFFF && height < 0xFFFF ) {
-           narc = parclist->narc ;
-           parclist->rarcs[narc].width = width ;
-           parclist->rarcs[narc].height = height ;
-           parclist->rarcs[narc].x = x - width/2 ;
-           parclist->rarcs[narc].y = y - height/2 ;
-           parclist->rarcs[narc].angle1 = angle1 ;
-           parclist->rarcs[narc].angle2 = angle2 ;
-           parclist->narc++ ;
-            if( bindex > 0 ) {
-              pbuffer->isempty = False ;
-             width = (width+1)/2 ;
-             height = (height+1)/2 ;
-              pbuffer->rxmin = min(pbuffer->rxmin,x-width) ;
-              pbuffer->rymin = min(pbuffer->rymin,y-height) ;
-              pbuffer->rxmax = max(pbuffer->rxmax,x+width) ;
-              pbuffer->rymax = max(pbuffer->rymax,y+height) ;
-            } else if( !BeginArcs ) {
-              int polyindex = pwindow->polyindex ;
-              int lineindex = pwindow->lineindex ;
-              GC gcpoly = pwindow->qgpoly[polyindex].gc ;
-              GC gcline = (QGTYPE(pwindow->qgpoly[polyindex].code)) ?
-                                pwindow->qgline[lineindex].gc : NULL ;
-              Xw_draw_pixel_polyarcs(pwindow,parclist,gcpoly,gcline);
-             parclist->narc = 0 ;
-           }
-       } else {
-           /*ERROR*Too big arc radius*/
-           Xw_set_error(116,"Xw_draw_polyarc",0) ;
-           return (XW_ERROR) ;
-       }
-
-#ifdef  TRACE_DRAW_POLYARC
-if( Xw_get_trace() > 2 ) {
-    printf(" Xw_draw_polyarc(%lx,%f,%f,%f,%f,%f,%f\n",
-                       (long ) pwindow,xc,yc,xradius,yradius,start,angle);
-}
-#endif
-
-       return (XW_SUCCESS);
-}
-
-/*
-   STATUS Xw_begin_polyarcs (awindow,narc):
-   XW_EXT_WINDOW *awindow
-   int narc           Not used
-
-
-        Begin a set of arcs which must be filled by Xw_draw_polyarc and
-                                     closed by Xw_close_polyarcs
-
-        returns ERROR if bad extended window address
-        returns SUCCESS if successful
-
-*/
-#ifdef XW_PROTOTYPE
-XW_STATUS Xw_begin_polyarcs(void* awindow,int narc)
-#else
-XW_STATUS Xw_begin_polyarcs(awindow,narc)
-void *awindow ;
-int narc ;
-#endif /*XW_PROTOTYPE*/
-{
-XW_EXT_WINDOW *pwindow = (XW_EXT_WINDOW*)awindow ;
-        if( !Xw_isdefine_window(pwindow) ) {
-            /*ERROR*Bad EXT_WINDOW Address*/
-            Xw_set_error(24,"Xw_begin_polyarcs",pwindow) ;
-            return (XW_ERROR) ;
-        }    
-        if( BeginArcs ) Xw_close_polyarcs(pwindow);
-        
-        BeginArcs = True;
-#ifdef  TRACE_DRAW_POLYARC
-if( Xw_get_trace() > 2 ) {
-    printf(" Xw_begin_polyarcs(%lx,%d)\n",(long ) pwindow,narc) ;
-}
-#endif
-        return (XW_SUCCESS) ;
-}
-/*
-   STATUS Xw_close_polyarcs (awindow):
-   XW_EXT_WINDOW *awindow
-        Close the set of arcs
-        returns ERROR if bad extended window address
-        returns SUCCESS successful
-*/
-#ifdef XW_PROTOTYPE
-XW_STATUS Xw_close_polyarcs(void* awindow)
-#else
-XW_STATUS Xw_close_polyarcs(awindow)
-void *awindow ;
-#endif /*XW_PROTOTYPE*/
-{
-XW_EXT_WINDOW *pwindow = (XW_EXT_WINDOW*)awindow ;
-int bindex ;
-        if( !Xw_isdefine_window(pwindow) ) {
-            /*ERROR*Bad EXT_WINDOW Address*/
-            Xw_set_error(24,"Xw_close_polyarcs",pwindow) ;
-            return (XW_ERROR) ;
-        }    
-
-       bindex = _BINDEX ; 
-        if( BeginArcs && !bindex ) {
-          int polyindex = pwindow->polyindex ;
-          int lineindex = pwindow->lineindex ;
-          GC gcpoly = pwindow->qgpoly[polyindex].gc ;
-          GC gcline = (QGTYPE(pwindow->qgpoly[polyindex].code)) ?
-                                pwindow->qgline[lineindex].gc : NULL ;
-          for( parclist = _BUFFER(bindex).pparclist ; parclist ;
-                           parclist = (XW_EXT_ARC*) parclist->link ) {
-            if( parclist->narc > 0 ) {
-              Xw_draw_pixel_polyarcs(pwindow,parclist,gcpoly,gcline);
-              parclist->narc = 0 ;
-            } else break ;
-          }
-        }    
-        BeginArcs = False;
-#ifdef  TRACE_DRAW_POLYARC
-if( Xw_get_trace() > 2 ) {
-    printf(" Xw_close_polyarcs(%lx)\n",(long ) pwindow) ;
-}
-#endif
-        return (XW_SUCCESS) ;
-}
-
-
-#ifdef XW_PROTOTYPE
-void Xw_draw_pixel_polyarcs (XW_EXT_WINDOW* pwindow,XW_EXT_ARC* parclist,
-                                                       GC gcpoly,GC gcline)
-#else
-void Xw_draw_pixel_polyarcs (pwindow,parclist,gcpoly,gcline)
-XW_EXT_WINDOW *pwindow;
-XW_EXT_ARC *parclist;
-GC gcpoly,gcline;
-#endif /*XW_PROTOTYPE*/
-{
-
-   if( parclist->isupdated ) {
-     XFillArcs(_DISPLAY,_DRAWABLE,gcpoly,parclist->uarcs,parclist->narc) ;
-     if( gcline && (gcpoly != gcline) ) {
-       XDrawArcs(_DISPLAY,_DRAWABLE,gcline,parclist->uarcs,parclist->narc) ;
-     }
-   } else {
-     XFillArcs(_DISPLAY,_DRAWABLE,gcpoly,parclist->rarcs,parclist->narc) ;
-     if( gcline && (gcpoly != gcline) ) {
-       XDrawArcs(_DISPLAY,_DRAWABLE,gcline,parclist->rarcs,parclist->narc) ;
-     }
-   }
-}
-
-#ifdef XW_PROTOTYPE
-XW_EXT_ARC* Xw_add_polyarc_structure(XW_EXT_BUFFER* pbuflist )
-#else
-XW_EXT_ARC* Xw_add_polyarc_structure(pbuflist )
-XW_EXT_BUFFER *pbuflist ;
-#endif /*XW_PROTOTYPE*/
-/*
-        Create and Insert at end one Extended arc structure in the
-        arc List
-
-        returns Extended arc address if successful
-                or NULL if Bad Allocation
-*/
-{
-XW_EXT_ARC *parc ;
-        parc = (XW_EXT_ARC*) Xw_malloc(sizeof(XW_EXT_ARC)) ;
-        if( parc ) {
-            parc->link = pbuflist->pparclist ;
-            parc->isupdated = 0 ;
-            parc->narc = 0 ;
-            pbuflist->pparclist = parc ;
-        } else {
-           /*ERROR*EXT_ARC Allocation failed*/
-           Xw_set_error(35,"Xw_add_polyarc_structure",NULL) ;
-        }
-
-        return (parc) ;
-}
-
-#ifdef XW_PROTOTYPE
-XW_STATUS Xw_del_polyarc_structure(XW_EXT_BUFFER* pbuflist)
-#else
-XW_STATUS Xw_del_polyarc_structure(pbuflist)
-XW_EXT_BUFFER *pbuflist ;
-#endif /*XW_PROTOTYPE*/
-/*
-        Remove ALL Extended arc structure in the
-        arc List
-
-        SUCCESS always
-*/
-{
-XW_EXT_ARC *parc,*qarc ;
-
-       for( parc = pbuflist->pparclist ; parc ; parc = qarc ) {
-            qarc = (XW_EXT_ARC*)parc->link ;
-            Xw_free(parc) ;
-        }
-       pbuflist->pparclist = NULL ;
-       
-       return (XW_SUCCESS) ;
-}