@c changes.texi
    
@c This file is part of the 3DLDF User and Reference Manual.
@c Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013 The Free Software Foundation 
@c See the section "GNU Free Documentation License" in the file 
@c fdl.texi for copying conditions.

@node Changes, Bibliography, Future Plans, Top
@chapter Changes

@noindent
Updated @value{UPDATED}.

@menu
* Changes in 3DLDF 1.1.5.1::    
* Changes in 3DLDF 1.1.5::      
* Changes in 3DLDF 1.1.4.2::    
* Changes in 3DLDF 1.1.4.1::    
* Changes in 3DLDF 1.1.4::      
* Initial version::             
@end menu
 
@node Changes in 3DLDF 1.1.5.1, Changes in 3DLDF 1.1.5, Changes, Changes
@section 3DLDF 1.1.5.1

@itemize @bullet

@item
Added missing Texinfo files to the @code{3dldf_TEXINFOS} variable in 
@file{3DLDF-1.1.5.1/DOC/TEXINFO/Makefile.am}, and reordered the
filenames.  

@item
@cindex PNG (Portable Network Graphics)
@cindex Portable Network Graphics (PNG)
@c
Changed the names of the PNG (Portable Network Graphics) files
included in the HTML version of this manual.
Changed the names in the commands for including these
files in the Texinfo files.  I wasn't able to write some of the
files with the old names to a CD-R (Compact Disk, Recordable).
@end itemize

@node Changes in 3DLDF 1.1.5, Changes in 3DLDF 1.1.4.2, Changes in 3DLDF 1.1.5.1, Changes
@section 3DLDF 1.1.5

In release 1.1.5, I've tied up some loose ends.  I wanted to do this
before starting on the input routine.  

@itemize @bullet

@item
Added @code{const real} @var{step} argument to the version of
@code{Ellipse::intersection_points()} that takes an @code{Ellipse}
argument.  
@xref{Ellipse Intersections, , Ellipse Reference; Intersections}.

@item
It is now possible to ``typedef'' @code{real} to either @code{float}
or @code{double}.  This means that @code{real} can now be made a synonym
for either @code{float} or @code{double} by using a @code{typedef}
declaration.  @code{real} is typedeffed to @code{float} by default.

@item
Added @code{const bool ldf_real_float} and 
@code{extern const bool ldf_real_double}
for use in non-conditionally compiled code.  
They are set according to the values
of @code{LDF_REAL_FLOAT} and @code{LDF_REAL_DOUBLE}. 

@item
@code{Transform::epsilon()} and @code{Point::epsilon()} now return
different values, depending on the values of the preprocessor macros
@code{LDF_REAL_FLOAT} and @code{LDF_REAL_DOUBLE}.  I have not yet tested
whether good values are returned when @code{real} is @code{double}.  

@item
@code{MAX_REAL} and @code{MAX_REAL_SQRT} are no longer constants.
Their values are set at the beginning of @code{main()}.  However,
users should not change their values.  @code{MAX_REAL} is the
second-largest @code{float} or @code{double} on a given machine.  This
now works for all common architectures. 

@item
Added @code{namespace System} containing the following functions:
@code{get_endianness()}, @code{is_big_endian()},
@code{is_little_endian()}, @code{get_register_width()}, 
@code{is_32_bit()}, @code{is_64_bit()}, and the template function 
@code{get_second_largest()}.  

@code{namespace System} and its functions are documented in
@file{system.texi}, which is new in edition @value{EDITION}.

@item
Replaced the various @code{create_new_}<@i{type}>@code{()} functions with the
template function @code{create_new()}.  The latter is documented in 
@file{creatnew.texi}, which is new in edition @value{EDITION}.

@item
Added the file @file{3DLDF-@value{VERSION}/CWEB/cnepspng.el} to
the distribution.  It contains the definitions of the Emacs-Lisp
functions @command{convert-eps} and @command{convert-eps-loop}. 
@xref{Converting EPS Files ELISP,,
Running 3DLDF; Converting EPS Files; Emacs-Lisp Functions}. 

@item
Added the files 
@file{3DLDF-@value{VERSION}/CWEB/exampman.web} and@*
@file{3DLDF-@value{VERSION}/CWEB/examples.mp} to the
distribution.  They contain the @cpp{} and MetaPost code, 
respectively, for generating the illustrations in this manual.

@end itemize

@node Changes in 3DLDF 1.1.4.2, Changes in 3DLDF 1.1.4.1, Changes in 3DLDF 1.1.5, Changes
@section 3DLDF 1.1.4.2

@itemize @bullet
@item
The illustrations in the HTML output are now scaled to 
@code{magstep3}.
@end itemize

@node Changes in 3DLDF 1.1.4.1, Changes in 3DLDF 1.1.4, Changes in 3DLDF 1.1.4.2, Changes
@section 3DLDF 1.1.4.1

@itemize @bullet
@item
The HTML output now includes illustrations.
@end itemize

@node Changes in 3DLDF 1.1.4, Initial version, Changes in 3DLDF 1.1.4.1, Changes
@section 3DLDF 1.1.4

@itemize @bullet
@item
@code{MAX_REAL} is now the second largest float value.  However, the
calculation is system dependent, and will only work on 32-bit
little-endian architectures.  I will start working on porting this
soon. 

@item
Fixed bug in @file{tsthdweb}, that caused files to be compiled more
often than necessary.  It will be necessary to keep an eye on this.

@item
Added @code{Rectangle::is_rectangular()}.

@item
Made @code{mediate()} a member function of @code{Point}.

@item
It is now possible to generate this manual in the Info and HTML
formats. 
@end itemize


@node Initial version,  , Changes in 3DLDF 1.1.4, Changes
@section 3DLDF 1.1.1

3DLDF 1.1.1 was the first version of 3DLDF since it became a GNU
package (the current version is @value{VERSION}).  It is now conformant
to the GNU Coding Standards, except that 
a functioning @file{3DLDF.info} cannot be generated from
@file{3DLDF.texi}.   The 
distribution now includes a @code{configure} script, 
@file{Makefile.in} files, and other files generated by Autoconf and
Automake.  Recompilation is now handled by @command{make} rather than
the auxilliary program @command{3DLDFcpl}.  The files
@file{3DLDFcpl.web} and @file{3DLDFprc.web} have been removed from the
distribution. 

The extension of the @cpp{} files generated by @command{ctangle} is
changed from @file{c} to @file{cxx} before they are compiled.
After @command{ctangle} is run on a CWEB file, @file{<@i{filename}>.c} 
is compared to the old @file{<@i{filename}>.cxx} using @command{diff}.
Whitespace, comments, and @code{#line} preprocessor commands are
ignored.  The @file{<@i{filename}>.c} is only renamed to
@file{<@i{filename}>.cxx} and compiled if they differ.  This way,
changes to the @TeX{} text only in a CWEB file no longer cause
recompilation and relinking.

The main Texinfo file is now called @file{3DLDF.texi}.  It was formerly
called @file{3DLDFman.texi}.  This is because Automake expects this
name.  For this reason, the CWEB
file passed as an argument to cweave has been renamed
@file{3DLDFprg.web}.  It was formerly called @file{3DLDF.web}. 
 
