160 lines
4.4 KiB
C
Executable File
160 lines
4.4 KiB
C
Executable File
/**********************************************************************
|
|
*<
|
|
FILE: units.h
|
|
|
|
DESCRIPTION: Include file for real-world units support
|
|
|
|
CREATED BY: Tom Hudson
|
|
|
|
HISTORY:
|
|
|
|
*> Copyright (c) 1995, All Rights Reserved.
|
|
**********************************************************************/
|
|
|
|
#ifndef _UNITS_H_
|
|
|
|
#define _UNITS_H_
|
|
|
|
// The unit types we support
|
|
#define UNITS_INCHES 0
|
|
#define UNITS_FEET 1
|
|
#define UNITS_MILES 2
|
|
#define UNITS_MILLIMETERS 3
|
|
#define UNITS_CENTIMETERS 4
|
|
#define UNITS_METERS 5
|
|
#define UNITS_KILOMETERS 6
|
|
|
|
#define MAX_UNIT_TYPES 7
|
|
|
|
// The unit display types
|
|
#define UNITDISP_GENERIC 0
|
|
#define UNITDISP_METRIC 1
|
|
#define UNITDISP_US 2
|
|
#define UNITDISP_CUSTOM 3
|
|
|
|
#define MAX_UNITDISP_TYPES 4
|
|
|
|
// Metric display options
|
|
#define UNIT_METRIC_DISP_MM 0
|
|
#define UNIT_METRIC_DISP_CM 1
|
|
#define UNIT_METRIC_DISP_M 2
|
|
#define UNIT_METRIC_DISP_KM 3
|
|
|
|
#define MAX_METRIC_DISP_TYPES 4
|
|
|
|
// US display options
|
|
#define UNIT_US_DISP_FRAC_IN 0
|
|
#define UNIT_US_DISP_DEC_IN 1
|
|
#define UNIT_US_DISP_FRAC_FT 2
|
|
#define UNIT_US_DISP_DEC_FT 3
|
|
#define UNIT_US_DISP_FT_FRAC_IN 4
|
|
#define UNIT_US_DISP_FT_DEC_IN 5
|
|
|
|
#define MAX_US_DISP_TYPES 6
|
|
|
|
// US display options
|
|
#define UNIT_FRAC_1_1 0
|
|
#define UNIT_FRAC_1_2 1
|
|
#define UNIT_FRAC_1_4 2
|
|
#define UNIT_FRAC_1_8 3
|
|
#define UNIT_FRAC_1_10 4
|
|
#define UNIT_FRAC_1_16 5
|
|
#define UNIT_FRAC_1_32 6
|
|
#define UNIT_FRAC_1_64 7
|
|
#define UNIT_FRAC_1_100 8
|
|
|
|
#define MAX_FRAC_TYPES 9
|
|
|
|
// Units designator types
|
|
#define UNIT_DESIG_MM 0
|
|
#define UNIT_DESIG_CM 1
|
|
#define UNIT_DESIG_M 2
|
|
#define UNIT_DESIG_KM 3
|
|
#define UNIT_DESIG_IN 4
|
|
#define UNIT_DESIG_FT 5
|
|
#define UNIT_DESIG_CUSTOM 6
|
|
|
|
#define UNIT_DESIG_TYPES 7
|
|
|
|
// Display information structure
|
|
|
|
typedef struct {
|
|
int dispType; // Display type (UNITDISP_GENERIC, UNITDISP_METRIC, UNITDISP_US, UNITDISP_CUSTOM)
|
|
int metricDisp; // Metric display option
|
|
int usDisp; // US display option
|
|
int usFrac; // US fraction option
|
|
TSTR customName; // Custom unit name
|
|
float customValue; // Custom unit value
|
|
int customUnit; // Custom unit reference
|
|
} DispInfo;
|
|
/*
|
|
typedef struct {
|
|
int lightingSystem; // Lighting unit display system {LIGHTING_UNIT_DISPLAY_INTERNATIONAL,
|
|
// LIGHTING_UNIT_DISPLAY_AMERICAN }
|
|
TSTR luminanceUnits; // The string describing the luminance units
|
|
TSTR illuminanceUnits; // The string describing the illuminance units
|
|
} LightDispInfo;
|
|
*/
|
|
// Get the master scale in terms of the specified unit type
|
|
// i.e. GetMasterScale(UNITS_INCHES) gives number of inches per unit
|
|
// Returns -1.0 if invalid unit type supplied
|
|
double CoreExport GetMasterScale(int type);
|
|
|
|
void CoreExport GetMasterUnitInfo(int *type,float *scale);
|
|
int CoreExport SetMasterUnitInfo(int type,float scale);
|
|
void CoreExport GetUnitDisplayInfo(DispInfo *info);
|
|
int CoreExport SetUnitDisplayInfo(DispInfo *info);
|
|
int CoreExport GetUnitDisplayType();
|
|
int CoreExport SetUnitDisplayType(int type);
|
|
BOOL CoreExport IsValidUnitCharacter(int ch); // Returns TRUE if character valid for unit type
|
|
|
|
// The US unit defaults
|
|
#define US_UNIT_DEFAULT_FEET 0
|
|
#define US_UNIT_DEFAULT_INCHES 1
|
|
|
|
// Get/set the default units for US entry fields -- Inches or feet
|
|
CoreExport void SetUSDefaultUnit(int type);
|
|
CoreExport int GetUSDefaultUnit();
|
|
|
|
TCHAR CoreExport *GetFirstUnitName();
|
|
TCHAR CoreExport *GetNextUnitName();
|
|
TCHAR CoreExport *GetFirstMetricDisp();
|
|
TCHAR CoreExport *GetNextMetricDisp();
|
|
TCHAR CoreExport *GetFirstUSDisp();
|
|
TCHAR CoreExport *GetNextUSDisp();
|
|
TCHAR CoreExport *GetFirstFraction();
|
|
TCHAR CoreExport *GetNextFraction();
|
|
TCHAR CoreExport *FormatUniverseValue(float value);
|
|
float CoreExport DecodeUniverseValue(TCHAR *string, BOOL *valid = NULL);
|
|
|
|
|
|
//
|
|
// Time units
|
|
//
|
|
|
|
// Ways to display time
|
|
enum TimeDisp {
|
|
DISPTIME_FRAMES,
|
|
DISPTIME_SMPTE,
|
|
DISPTIME_FRAMETICKS,
|
|
DISPTIME_TIMETICKS
|
|
};
|
|
|
|
// Formats a time value into a string based on the current frame rate, etc.
|
|
void CoreExport TimeToString(TimeValue t,TSTR &string);
|
|
BOOL CoreExport StringToTime(TSTR string,TimeValue &t);
|
|
|
|
CoreExport int GetFrameRate();
|
|
CoreExport void SetFrameRate(int rate);
|
|
CoreExport int GetTicksPerFrame();
|
|
CoreExport void SetTicksPerFrame(int ticks);
|
|
CoreExport TimeDisp GetTimeDisplayMode();
|
|
CoreExport void SetTimeDisplayMode(TimeDisp m);
|
|
CoreExport int LegalFrameRate(int r);
|
|
|
|
#ifdef DESIGN_VER
|
|
TCHAR CoreExport *FormatUniverseValue(TCHAR *value);
|
|
#endif
|
|
|
|
#endif // _UNITS_H_
|