📄 solid.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 AcadSolid *AcadSolid__create( void )
{
return( ( AcadSolid * )get_memory( sizeof( AcadSolid ) ) );
}
PUBLIC void AcadSolid__delete( AcadSolid *me )
{
free( ( char * )me );
}
PUBLIC int AcadSolid__length( AcadSolid *me )
{
return( me->common.size );
}
PUBLIC void AcadSolid__read( AcadSolid *me )
{
AcadEntity__read_elevation_etc( &me->common,true,true );
me->z = me->common.elevation;
get_DOUBLE( &me->x1 );
get_DOUBLE( &me->y1 );
get_DOUBLE( &me->x2 );
get_DOUBLE( &me->y2 );
get_DOUBLE( &me->x3 );
get_DOUBLE( &me->y3 );
get_DOUBLE( &me->x4 );
get_DOUBLE( &me->y4 );
if ( ( __drawing->acad10 OR __drawing->acad11 ) AND me->common.pflags&0x1 ) AcadEntity__get_ucs_directions( &me->common );
}
PUBLIC void AcadSolid__dump_to_debug_file( AcadSolid *me )
{
dprintf( "SOLID\n" );
dprintf( "\t%lf,%lf,%lf\n",me->x1,me->y1,me->z );
dprintf( "\t%lf,%lf,%lf\n",me->x2,me->y2,me->z );
dprintf( "\t%lf,%lf,%lf\n",me->x3,me->y3,me->z );
dprintf( "\t%lf,%lf,%lf\n",me->x4,me->y4,me->z );
AcadEntity__dump_to_debug_file( &me->common );
}
PUBLIC void AcadSolid__dxfout( AcadSolid *me )
{
dxf_string( 0,"SOLID" );
AcadEntity__dxfout( &me->common );
dxf_DOUBLE( 10,me->x1 );
dxf_DOUBLE( 20,me->y1 );
if ( !__drawing->header->flatland ) dxf_DOUBLE( 30,me->common.elevation );
dxf_DOUBLE( 11,me->x2 );
dxf_DOUBLE( 21,me->y2 );
if ( !__drawing->header->flatland ) dxf_DOUBLE( 31,me->common.elevation );
dxf_DOUBLE( 12,me->x3 );
dxf_DOUBLE( 22,me->y3 );
if ( !__drawing->header->flatland ) dxf_DOUBLE( 32,me->common.elevation );
dxf_DOUBLE( 13,me->x4 );
dxf_DOUBLE( 23,me->y4 );
if ( !__drawing->header->flatland ) dxf_DOUBLE( 33,me->common.elevation );
AcadEntity__dxfout_ucs( &me->common );
}
PUBLIC void AcadSolid__write( AcadSolid *me )
{
int size;
put_UINT8( 0xb ); /* SOLID TYPE */
size = sizeof( DOUBLE )*8+1;
if ( me->common.ucs ) size += sizeof( DOUBLE )*3;
AcadEntity__write_elevation_etc( &me->common,false,true,size );
if ( debugger ) dprintf( "\tsolid entity\n" );
put_DOUBLE( me->x1 );
put_DOUBLE( me->y1 );
put_DOUBLE( me->x2 );
put_DOUBLE( me->y2 );
put_DOUBLE( me->x3 );
put_DOUBLE( me->y3 );
put_DOUBLE( me->x4 );
put_DOUBLE( me->y4 );
if ( me->common.ucs ) AcadEntity__put_ucs_directions( &me->common );
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -