libDXF 0.0.1
A library with DXF related functions written in C.
Data Structures | Typedefs | Functions

ucs.h File Reference

Header file for a DXF User Coordinate System entity (UCS). More...

#include "global.h"
Include dependency graph for ucs.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  dxf_ucs
 DXF definition of an AutoCAD User Coordinate System entity (UCS). More...

Typedefs

typedef struct dxf_ucs DxfUcs
 DXF definition of an AutoCAD User Coordinate System entity (UCS).

Functions

DxfUcsdxf_ucs_new ()
 Allocate memory for a DXF UCS.
DxfUcsdxf_ucs_init (DxfUcs *ucs)
 Allocate memory and initialize data fields in a DXF UCS entity.
DxfUcsdxf_ucs_read (DxfFile *fp, DxfUcs *ucs)
 Read data from a DXF file into a DXF UCS entity.
int dxf_ucs_write (DxfFile *fp, DxfUcs *ucs)
 Write DXF output to a file for a DXF UCS entity.
int dxf_ucs_free (DxfUcs *ucs)
 Free the allocated memory for a DXF UCS and all it's data fields.
void dxf_ucs_free_chain (DxfUcs *ucss)
 Free the allocated memory for a chain of DXF UCS symbol table and all their data fields.

Detailed Description

Header file for a DXF User Coordinate System entity (UCS).

Author:
Copyright (C) 2008, 2012, 2014, 2015, 2016, 2017 by Bert Timmerman <bert.timmerman@xs4all.nl>.

Copyright Notices.


This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program; if not, write to:
Free Software Foundation, Inc.,
59 Temple Place,
Suite 330,
Boston,
MA 02111 USA.

Drawing eXchange Format (DXF) is a defacto industry standard for the exchange of drawing files between various Computer Aided Drafting programs.
DXF is an industry standard designed by Autodesk(TM).
For more details see http://www.autodesk.com.


Definition in file ucs.h.


Typedef Documentation

typedef struct dxf_ucs DxfUcs

DXF definition of an AutoCAD User Coordinate System entity (UCS).

Version:
According to DXF R10.
According to DXF R11.
According to DXF R12.
According to DXF R13.
According to DXF R14.

Function Documentation

DxfUcs* dxf_ucs_new ( )

Allocate memory for a DXF UCS.

Fill the memory contents with zeros.

Returns:
NULL when no memory was allocated, a pointer to the allocated memory when succesful.
Version:
According to DXF R10.
According to DXF R11.
According to DXF R12.
According to DXF R13.
According to DXF R14.

Definition at line 53 of file ucs.c.

References _, DXF_DEBUG_BEGIN, and DXF_DEBUG_END.

Referenced by dxf_ucs_init(), and dxf_ucs_read().

DxfUcs* dxf_ucs_init ( DxfUcs ucs)

Allocate memory and initialize data fields in a DXF UCS entity.

Returns:
NULL when no memory was allocated, a pointer to the allocated memory when succesful.
Version:
According to DXF R10.
According to DXF R11.
According to DXF R12.
According to DXF R13.
According to DXF R14.
Parameters:
ucsa pointer to the DXF UCS symbol table entry.

Definition at line 97 of file ucs.c.

References _, dxf_ucs::dictionary_owner_hard, dxf_ucs::dictionary_owner_soft, DXF_DEBUG_BEGIN, DXF_DEBUG_END, dxf_ucs_new(), dxf_ucs::flag, dxf_ucs::id_code, dxf_ucs::next, dxf_ucs::UCS_name, dxf_ucs::x_origin, dxf_ucs::x_X_dir, dxf_ucs::x_Y_dir, dxf_ucs::y_origin, dxf_ucs::y_X_dir, dxf_ucs::y_Y_dir, dxf_ucs::z_origin, dxf_ucs::z_X_dir, and dxf_ucs::z_Y_dir.

Referenced by dxf_ucs_read().

Here is the call graph for this function:

DxfUcs* dxf_ucs_read ( DxfFile fp,
DxfUcs ucs 
)

Read data from a DXF file into a DXF UCS entity.

The last line read from file contained the string "UCS".
Now follows some data for the UCS, to be terminated with a " 0" string announcing the following table record, or the end of the TABLE section marker ENDTAB.
While parsing the DXF file store data in ucs.

Returns:
a pointer to ucs.
Version:
According to DXF R10.
According to DXF R11.
According to DXF R12.
According to DXF R13.
According to DXF R14.
Parameters:
fpDXF file pointer to an input file (or device).
ucsa pointer to the DXF UCS symbol table entry.

Definition at line 161 of file ucs.c.

References _, dxf_file_struct::acad_version_number, AutoCAD_13, dxf_ucs::dictionary_owner_hard, dxf_ucs::dictionary_owner_soft, DXF_DEBUG_BEGIN, DXF_DEBUG_END, dxf_ucs_init(), dxf_ucs_new(), dxf_file_struct::filename, dxf_ucs::flag, dxf_file_struct::fp, dxf_ucs::id_code, dxf_file_struct::line_number, dxf_ucs::UCS_name, dxf_ucs::x_origin, dxf_ucs::x_X_dir, dxf_ucs::x_Y_dir, dxf_ucs::y_origin, dxf_ucs::y_X_dir, dxf_ucs::y_Y_dir, dxf_ucs::z_origin, dxf_ucs::z_X_dir, and dxf_ucs::z_Y_dir.

Here is the call graph for this function:

int dxf_ucs_write ( DxfFile fp,
DxfUcs ucs 
)

Write DXF output to a file for a DXF UCS entity.

Returns:
EXIT_SUCCESS when done, or EXIT_FAILURE when an error occurred.
Version:
According to DXF R10.
According to DXF R11.
According to DXF R12.
According to DXF R13.
According to DXF R14.

Todo:
for version R14.
Implementing the start of application-defined group "{application_name", with Group code 102.
For example: "{ACAD_REACTORS" indicates the start of the AutoCAD persistent reactors group.

application-defined codes: Group codes and values within the 102 groups are application defined (optional).

End of group, "}" (optional), with Group code 102.

Parameters:
fpDXF file pointer to an output file (or device).
ucsa pointer to the DXF UCS symbol table entry.

Definition at line 361 of file ucs.c.

References _, dxf_file_struct::acad_version_number, AutoCAD_13, AutoCAD_14, dxf_ucs::dictionary_owner_hard, dxf_ucs::dictionary_owner_soft, DXF_DEBUG_BEGIN, DXF_DEBUG_END, dxf_ucs::flag, dxf_file_struct::fp, dxf_ucs::id_code, dxf_ucs::UCS_name, dxf_ucs::x_origin, dxf_ucs::x_X_dir, dxf_ucs::x_Y_dir, dxf_ucs::y_origin, dxf_ucs::y_X_dir, dxf_ucs::y_Y_dir, dxf_ucs::z_origin, dxf_ucs::z_X_dir, and dxf_ucs::z_Y_dir.

int dxf_ucs_free ( DxfUcs ucs)

Free the allocated memory for a DXF UCS and all it's data fields.

Returns:
EXIT_SUCCESS when done, or EXIT_FAILURE when an error occurred.
Version:
According to DXF R10.
According to DXF R11.
According to DXF R12.
According to DXF R13.
According to DXF R14.
Parameters:
ucsa pointer to the memory occupied by the DXF UCS symbol table entry.

Definition at line 475 of file ucs.c.

References _, dxf_ucs::dictionary_owner_hard, dxf_ucs::dictionary_owner_soft, DXF_DEBUG_BEGIN, DXF_DEBUG_END, dxf_ucs::next, and dxf_ucs::UCS_name.

Referenced by dxf_ucs_free_chain().

void dxf_ucs_free_chain ( DxfUcs ucss)

Free the allocated memory for a chain of DXF UCS symbol table and all their data fields.

Version:
According to DXF R10.
According to DXF R11.
According to DXF R12.
According to DXF R13.
According to DXF R14.
Parameters:
ucssa pointer to the chain of DXF UCS symbol table entries.

Definition at line 523 of file ucs.c.

References _, DXF_DEBUG_BEGIN, DXF_DEBUG_END, dxf_ucs_free(), and dxf_ucs::next.

Here is the call graph for this function: