1
0
mirror of https://git.dev.opencascade.org/repos/occt.git synced 2025-05-06 10:36:12 +03:00
occt/src/Interface/Interface_FloatWriter.cdl
abv d5f74e42d6 0024624: Lost word in license statement in source files
License statement text corrected; compiler warnings caused by Bison 2.41 disabled for MSVC; a few other compiler warnings on 54-bit Windows eliminated by appropriate type cast
Wrong license statements corrected in several files.
Copyright and license statements added in XSD and GLSL files.
Copyright year updated in some files.
Obsolete documentation files removed from DrawResources.
2014-02-20 16:15:17 +04:00

106 lines
4.8 KiB
Plaintext

-- Created on: 1994-04-15
-- Created by: Christian CAILLET
-- Copyright (c) 1994-1999 Matra Datavision
-- Copyright (c) 1999-2014 OPEN CASCADE SAS
--
-- This file is part of Open CASCADE Technology software library.
--
-- This library is free software; you can redistribute it and/or modify it under
-- the terms of the GNU Lesser General Public License version 2.1 as published
-- by the Free Software Foundation, with special exception defined in the file
-- OCCT_LGPL_EXCEPTION.txt. Consult the file LICENSE_LGPL_21.txt included in OCCT
-- distribution for complete text of the license and disclaimer of any warranty.
--
-- Alternatively, this file may be used under the terms of Open CASCADE
-- commercial license or contractual agreement.
class FloatWriter from Interface
---Purpose : This class converts a floting number (Real) to a string
-- It can be used if the standard C-C++ output functions
-- (sprintf or cout<<) are not convenient. That is to say :
-- - to suppress trailing '0' and 'E+00' (if desired)
-- - to control exponant output and floating point output
--
-- Formats are given in the form used by printf-sprintf
uses Boolean, Character, Real, CString
is
Create (chars : Integer = 0) returns FloatWriter;
---Purpose : Creates a FloatWriter ready to work, with default options -
-- - zero suppress option is set
-- - main format is set to "%E"
-- - secondary format is set to "%f" for values between 0.1 and
-- 1000. in absolute values
-- If <chars> is given (and positive), it will produce options
-- to produce this count of characters : "%<chars>f","%<chars>%E"
-- Options for Real Formats --
SetFormat (me : in out; form : CString; reset : Boolean = Standard_True);
---Purpose : Sets a specific Format for Sending Reals (main format)
-- (Default from Creation is "%E")
-- If <reset> is given True (default), this call clears effects
-- of former calls to SetFormatForRange and SetZeroSuppress
SetFormatForRange (me : in out; form : CString; R1, R2 : Real);
---Purpose : Sets a secondary Format for Real, to be applied between R1 and
-- R2 (in absolute values). A Call to SetRealForm cancels this
-- secondary form if <reset> is True.
-- (Default from Creation is "%f" between 0.1 and 1000.)
-- Warning : if the condition (0. <= R1 < R2) is not fulfilled, this
-- secondary form is canceled.
SetZeroSuppress (me : in out; mode : Boolean);
---Purpose : Sets Sending Real Parameters to suppress trailing Zeros and
-- Null Exponant ("E+00"), if <mode> is given True, Resets this
-- mode if <mode> is False (in addition to Real Forms)
-- A call to SetRealFrom resets this mode to False ig <reset> is
-- given True (Default from Creation is True)
SetDefaults (me : in out; chars : Integer = 0);
---Purpose : Sets again options to the defaults given by Create
Options (me; zerosup, range : out Boolean; R1, R2 : out Real);
---Purpose : Returns active options : <zerosup> is the option ZeroSuppress,
-- <range> is True if a range is set, False else
-- R1,R2 give the range (if it is set)
MainFormat (me) returns CString;
---Purpose : Returns the main format
-- was C++ : return const
FormatForRange (me) returns CString;
---Purpose : Returns the format for range, if set
-- Meaningful only if <range> from Options is True
-- was C++ : return const
Write (me; val : Real; text : CString) returns Integer is static;
---Purpose : Writes a Real value <val> to a string <text> by using the
-- options. Returns the useful Length of produced string.
-- It calls the class method Convert.
-- Warning : <text> is assumed to be wide enough (20-30 is correct)
-- And, even if declared in, its content will be modified
Convert (myclass; val : Real; text : CString;
zerosup : Boolean; Range1,Range2 : Real;
mainform, rangeform : CString)
returns Integer;
---Purpose : This class method converts a Real Value to a string, given
-- options given as arguments. It can be called independantly.
-- Warning : even if declared in, content of <text> will be modified
fields -- options
themainform : Character[12]; -- Main Printing from for Reals
therange1 : Real; -- range for second printing form (if any)
therange2 : Real; -- range for second printing form (if any)
therangeform : Character[12]; -- Printing form applying inside Range
thezerosup : Boolean; -- Trailing Zero Suppression Status
end FloatWriter;