⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 viewp.c

📁 AutoCAD DWG-file viewer
💻 C
字号:
/****************************************************************/
/*			COPYRIGHT NOTICE			*/
/*			----------------			*/
/*  All software in this listing remain the strict copyright	*/
/*  of Ilija Kovacevic and cannot be copied or used in any way	*/
/*  except by written permission of Ilija Kovacevic.		*/
/*								*/
/*	Copyright (c) 1992 Ilija Kovacevic			*/
/*	www.kov.com   email ilija@kov.com			*/
/****************************************************************/

#include "dwgin.h"

PUBLIC AcadViewPort *AcadViewPort__create( void )

{
return( ( AcadViewPort * )get_memory( sizeof( AcadViewPort ) ) );
}


PUBLIC void AcadViewPort__delete( AcadViewPort *me )

{
free( ( char * )me );
}


PUBLIC void AcadViewPort__read( AcadViewPort *me )

{
UINT8 status;
UINT8 id;

if ( debugger ) dprintf( "\nVPORT -------------------------------------------------\n" );
get_UINT8( &me->flags );
get_array( &me->name,sizeof( me->name ) );
if ( __drawing->acad11 )
	{
	get_UINT8( &status );
	get_UINT8( &id );	
	}
else 
	{
	id = 0;
	status = 0;
	}
get_DOUBLE( &me->lower_x );
get_DOUBLE( &me->lower_y );
get_DOUBLE( &me->upper_x );
get_DOUBLE( &me->upper_y );
get_DOUBLE( &me->x_view_target );
get_DOUBLE( &me->y_view_target );
get_DOUBLE( &me->z_view_target );
get_DOUBLE( &me->x_view_dir );
get_DOUBLE( &me->y_view_dir );
get_DOUBLE( &me->z_view_dir );
get_DOUBLE( &me->view_twist_angle );
get_DOUBLE( &me->height );
get_DOUBLE( &me->center_x );	
get_DOUBLE( &me->center_y );	
get_DOUBLE( &me->aspect_ratio );
get_DOUBLE( &me->lens_length );
get_DOUBLE( &me->front_clipping_plane );
get_DOUBLE( &me->back_clipping_plane );
get_INT16( &me->view_mode );
get_INT16( &me->circle_zoom_percent );
get_INT16( &me->fast_zoom );
get_INT16( &me->ucs_setting );
get_INT16( &me->snap_on );
get_INT16( &me->grid_on );
get_INT16( &me->snap_style );
get_INT16( &me->snap_isopair );
get_DOUBLE( &me->snap_rotation );
get_DOUBLE( &me->snap_base_x );
get_DOUBLE( &me->snap_base_y );
get_DOUBLE( &me->snap_x );
get_DOUBLE( &me->snap_y );
get_DOUBLE( &me->grid_x );
get_DOUBLE( &me->grid_y );
}


PUBLIC void AcadViewPort__dump_to_debug_file( AcadViewPort *me )

{
/*dprintf( "\nVIEWPORT\n" ); */
dprintf( "flags %xH\n",me->flags );
dprintf( "name [%s]\n",me->name );
dprintf( "lower %lf,%lf\n",me->lower_x,me->lower_y );
dprintf( "upper %lf,%lf\n",me->upper_x,me->upper_y );
dprintf( "center %lf,%lf\n",me->center_x,me->center_y );
dprintf( "snal base %lf,%lf\n",me->snap_base_x,me->snap_base_y );
dprintf( "snap %lf,%lf\n",me->snap_x,me->snap_y );
dprintf( "grid %lf,%lf\n",me->grid_x,me->grid_y );
dprintf( "view dir %lf,%lf,%lf\n",me->x_view_dir,me->y_view_dir,me->z_view_dir );
dprintf( "target %lf,%lf,%lf\n",me->x_view_target,me->y_view_target,me->z_view_target );
dprintf( "height %lf\n",me->height );
dprintf( "aspect ratio %lf\n",me->aspect_ratio );
dprintf( "lens length %lf\n",me->lens_length );
dprintf( "front clipping plane %lf\n",me->front_clipping_plane );
dprintf( "back clipping plane %lf\n",me->back_clipping_plane );
dprintf( "snap rotation %lf\n",rad_to_degrees( me->snap_rotation ) );
dprintf( "twist angle %lf\n",rad_to_degrees( me->view_twist_angle ) );
dprintf( "view mode %xH\n",me->view_mode );
dprintf( "circle zoom perecent %xH\n",me->circle_zoom_percent );
dprintf( "fast zoom %xH\n",me->fast_zoom );
dprintf( "ucs setting %xH\n",me->ucs_setting );
if ( me->snap_on ) dprintf( "snap on\n" );
else dprintf( "snap off\n" );
if ( me->grid_on ) dprintf( "grid on\n" );
else dprintf( "grid off\n" );
dprintf( "snap style %xH\n",me->snap_style );
dprintf( "snap isopair %xH\n",me->snap_isopair );
}


PUBLIC void AcadViewPort__dxfout( AcadViewPort *me )

{
dxf_string( 0,"VPORT" );
dxf_string( 2,me->name );
dxf_char( 70,me->flags&0x7f );
dxf_DOUBLE( 10,me->lower_x );
dxf_DOUBLE( 20,me->lower_y );
dxf_DOUBLE( 11,me->upper_x );
dxf_DOUBLE( 21,me->upper_y );
dxf_DOUBLE( 12,me->center_x );
dxf_DOUBLE( 22,me->center_y );
dxf_DOUBLE( 13,me->snap_base_x );
dxf_DOUBLE( 23,me->snap_base_y );
dxf_DOUBLE( 14,me->snap_x );
dxf_DOUBLE( 24,me->snap_y );
dxf_DOUBLE( 15,me->grid_x );
dxf_DOUBLE( 25,me->grid_y );
dxf_DOUBLE( 16,me->x_view_dir );
dxf_DOUBLE( 26,me->y_view_dir );
dxf_DOUBLE( 36,me->z_view_dir );
dxf_DOUBLE( 17,me->x_view_target );
dxf_DOUBLE( 27,me->y_view_target );
dxf_DOUBLE( 37,me->z_view_target );
dxf_DOUBLE( 40,me->height );
dxf_DOUBLE( 41,me->aspect_ratio );
dxf_DOUBLE( 42,me->lens_length );
dxf_DOUBLE( 43,me->front_clipping_plane );
dxf_DOUBLE( 44,me->back_clipping_plane );
dxf_DOUBLE( 50,rad_to_degrees( me->snap_rotation ) );
dxf_DOUBLE( 51,rad_to_degrees( me->view_twist_angle ) );
dxf_INT16( 71,me->view_mode );
dxf_INT16( 72,me->circle_zoom_percent );
dxf_INT16( 73,me->fast_zoom );
dxf_INT16( 74,me->ucs_setting );
dxf_INT16( 75,me->snap_on );
dxf_INT16( 76,me->grid_on );
dxf_INT16( 77,me->snap_style );
dxf_INT16( 78,me->snap_isopair );
}


PUBLIC void AcadViewPort__write( AcadViewPort *me )

{
put_UINT8( me->flags );
put_array( me->name,sizeof( me->name ) );
put_DOUBLE( me->lower_x );
put_DOUBLE( me->lower_y );
put_DOUBLE( me->upper_x );
put_DOUBLE( me->upper_y );
put_DOUBLE( me->x_view_target );
put_DOUBLE( me->y_view_target );
put_DOUBLE( me->z_view_target );
put_DOUBLE( me->x_view_dir );
put_DOUBLE( me->y_view_dir );
put_DOUBLE( me->z_view_dir );
put_DOUBLE( me->view_twist_angle );
put_DOUBLE( me->height );
put_DOUBLE( me->center_x );	
put_DOUBLE( me->center_y );	
put_DOUBLE( me->aspect_ratio );
put_DOUBLE( me->lens_length );
put_DOUBLE( me->front_clipping_plane );
put_DOUBLE( me->back_clipping_plane );
put_INT16( me->view_mode );
put_INT16( me->circle_zoom_percent );
put_INT16( me->fast_zoom );
put_INT16( me->ucs_setting );
put_INT16( me->snap_on );
put_INT16( me->grid_on );
put_INT16( me->snap_style );
put_INT16( me->snap_isopair );
put_DOUBLE( me->snap_rotation );
put_DOUBLE( me->snap_base_x );
put_DOUBLE( me->snap_base_y );
put_DOUBLE( me->snap_x );
put_DOUBLE( me->snap_y );
put_DOUBLE( me->grid_x );
put_DOUBLE( me->grid_y );
}


⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -