- fractional values (min segment width) are now supported in the .graal file
- fractional values are now supported for segment/connector/transistors width - bug fix in segment edition with a scale != 1
This commit is contained in:
parent
1375f7b566
commit
a025203d40
|
@ -83,7 +83,7 @@
|
||||||
\------------------------------------------------------------*/
|
\------------------------------------------------------------*/
|
||||||
|
|
||||||
char GraalSegmentLayer = ALU1;
|
char GraalSegmentLayer = ALU1;
|
||||||
long GraalSegmentWidth = -1;
|
float GraalSegmentWidth = -1.0;
|
||||||
char *GraalSegmentName = (char *)NULL;
|
char *GraalSegmentName = (char *)NULL;
|
||||||
char GraalSegmentWire = GRAAL_FALSE;
|
char GraalSegmentWire = GRAAL_FALSE;
|
||||||
|
|
||||||
|
@ -112,7 +112,7 @@
|
||||||
\------------------------------------------------------------*/
|
\------------------------------------------------------------*/
|
||||||
|
|
||||||
char GraalTransistorType = NTRANS;
|
char GraalTransistorType = NTRANS;
|
||||||
long GraalTransistorWidth = -1;
|
float GraalTransistorWidth = -1.0;
|
||||||
char *GraalTransistorName = (char *)NULL;
|
char *GraalTransistorName = (char *)NULL;
|
||||||
char GraalTransistorWire = GRAAL_FALSE;
|
char GraalTransistorWire = GRAAL_FALSE;
|
||||||
|
|
||||||
|
@ -123,7 +123,7 @@
|
||||||
\------------------------------------------------------------*/
|
\------------------------------------------------------------*/
|
||||||
|
|
||||||
char GraalConnectorLayer = ALU1;
|
char GraalConnectorLayer = ALU1;
|
||||||
long GraalConnectorWidth = -1;
|
float GraalConnectorWidth = -1.0;
|
||||||
char *GraalConnectorName = (char *)NULL;
|
char *GraalConnectorName = (char *)NULL;
|
||||||
char GraalConnectorOrient = GRAAL_NORTH;
|
char GraalConnectorOrient = GRAAL_NORTH;
|
||||||
|
|
||||||
|
@ -206,7 +206,7 @@ void GraalCreateSegmentMbk( LambdaX1, LambdaY1, LambdaX2, LambdaY2 )
|
||||||
|
|
||||||
if ( Delta < 0 ) Delta = - Delta;
|
if ( Delta < 0 ) Delta = - Delta;
|
||||||
|
|
||||||
if ( Delta < GRAAL_SEGMENT_VALUE_TABLE[GraalSegmentLayer][1] )
|
if ( Delta < GRAAL_SCALE * GRAAL_SEGMENT_VALUE_TABLE[GraalSegmentLayer][1] )
|
||||||
{
|
{
|
||||||
GraalErrorMessage( GraalMainWindow, "This segment is too small !" );
|
GraalErrorMessage( GraalMainWindow, "This segment is too small !" );
|
||||||
|
|
||||||
|
@ -248,9 +248,11 @@ void GraalCreateSegmentMbk( LambdaX1, LambdaY1, LambdaX2, LambdaY2 )
|
||||||
Segment =
|
Segment =
|
||||||
|
|
||||||
addphseg( GraalFigureMbk, GraalSegmentLayer,
|
addphseg( GraalFigureMbk, GraalSegmentLayer,
|
||||||
GraalSegmentWidth * SCALE_X,
|
(long)( GraalSegmentWidth * SCALE_X ),
|
||||||
LambdaX1 * GRAAL_SCALE_X, LambdaY1 * GRAAL_SCALE_X,
|
(long)( LambdaX1 * GRAAL_SCALE_X ),
|
||||||
LambdaX2 * GRAAL_SCALE_X, LambdaY2 * GRAAL_SCALE_X,
|
(long)( LambdaY1 * GRAAL_SCALE_X ),
|
||||||
|
(long)( LambdaX2 * GRAAL_SCALE_X ),
|
||||||
|
(long)( LambdaY2 * GRAAL_SCALE_X ),
|
||||||
SegmentName );
|
SegmentName );
|
||||||
|
|
||||||
Segment->USER = (void *)(&GraalFigureMbk->PHSEG);
|
Segment->USER = (void *)(&GraalFigureMbk->PHSEG);
|
||||||
|
@ -308,7 +310,8 @@ void GraalCreateViaMbk( LambdaX1, LambdaY1 )
|
||||||
GraalCreateFigureMbk();
|
GraalCreateFigureMbk();
|
||||||
|
|
||||||
Via = addphvia( GraalFigureMbk, GraalViaType,
|
Via = addphvia( GraalFigureMbk, GraalViaType,
|
||||||
LambdaX1 * GRAAL_SCALE_X, LambdaY1 * GRAAL_SCALE_X, 0, 0, GraalViaName );
|
(long)( LambdaX1 * GRAAL_SCALE_X ),
|
||||||
|
(long)( LambdaY1 * GRAAL_SCALE_X ), 0, 0, GraalViaName );
|
||||||
|
|
||||||
Via->USER = (void *)(&GraalFigureMbk->PHVIA);
|
Via->USER = (void *)(&GraalFigureMbk->PHVIA);
|
||||||
|
|
||||||
|
@ -381,8 +384,8 @@ void GraalCreateBigViaMbk( LambdaX1, LambdaY1, LambdaX2, LambdaY2 )
|
||||||
ViaDx = LambdaX2 - LambdaX1;
|
ViaDx = LambdaX2 - LambdaX1;
|
||||||
ViaDy = LambdaY2 - LambdaY1;
|
ViaDy = LambdaY2 - LambdaY1;
|
||||||
|
|
||||||
if ( ( ViaDx < GRAAL_BIGVIA_VALUE_TABLE[ GraalBigViaType ][0] ) ||
|
if ( ( ViaDx < GRAAL_SCALE * GRAAL_BIGVIA_VALUE_TABLE[ GraalBigViaType ][0] ) ||
|
||||||
( ViaDy < GRAAL_BIGVIA_VALUE_TABLE[ GraalBigViaType ][0] ) )
|
( ViaDy < GRAAL_SCALE * GRAAL_BIGVIA_VALUE_TABLE[ GraalBigViaType ][0] ) )
|
||||||
{
|
{
|
||||||
GraalErrorMessage( GraalMainWindow, "This big via is too small !" );
|
GraalErrorMessage( GraalMainWindow, "This big via is too small !" );
|
||||||
|
|
||||||
|
@ -401,9 +404,10 @@ void GraalCreateBigViaMbk( LambdaX1, LambdaY1, LambdaX2, LambdaY2 )
|
||||||
GraalCreateFigureMbk();
|
GraalCreateFigureMbk();
|
||||||
|
|
||||||
Via = addphvia( GraalFigureMbk, GraalBigViaType,
|
Via = addphvia( GraalFigureMbk, GraalBigViaType,
|
||||||
(( LambdaX1 + LambdaX2 ) >> 1) * GRAAL_SCALE_X,
|
(long)( (( LambdaX1 + LambdaX2 ) / 2.0) * GRAAL_SCALE_X ),
|
||||||
(( LambdaY1 + LambdaY2 ) >> 1) * GRAAL_SCALE_X,
|
(long)( (( LambdaY1 + LambdaY2 ) / 2.0) * GRAAL_SCALE_X ),
|
||||||
ViaDx * GRAAL_SCALE_X, ViaDy * GRAAL_SCALE_X, GraalBigViaName );
|
(long)( ViaDx * GRAAL_SCALE_X ),
|
||||||
|
(long)( ViaDy * GRAAL_SCALE_X ), GraalBigViaName );
|
||||||
|
|
||||||
Via->USER = (void *)(&GraalFigureMbk->PHVIA);
|
Via->USER = (void *)(&GraalFigureMbk->PHVIA);
|
||||||
|
|
||||||
|
@ -471,7 +475,7 @@ void GraalCreateTransistorMbk( LambdaX1, LambdaY1, LambdaX2, LambdaY2 )
|
||||||
|
|
||||||
if ( Delta < 0 ) Delta = - Delta;
|
if ( Delta < 0 ) Delta = - Delta;
|
||||||
|
|
||||||
if ( Delta < GRAAL_SEGMENT_VALUE_TABLE[GraalTransistorType][1] )
|
if ( Delta < GRAAL_SCALE * GRAAL_SEGMENT_VALUE_TABLE[GraalTransistorType][1] )
|
||||||
{
|
{
|
||||||
GraalErrorMessage( GraalMainWindow, "This transistor is too small !" );
|
GraalErrorMessage( GraalMainWindow, "This transistor is too small !" );
|
||||||
|
|
||||||
|
@ -484,9 +488,11 @@ void GraalCreateTransistorMbk( LambdaX1, LambdaY1, LambdaX2, LambdaY2 )
|
||||||
Transistor =
|
Transistor =
|
||||||
|
|
||||||
addphseg( GraalFigureMbk, GraalTransistorType,
|
addphseg( GraalFigureMbk, GraalTransistorType,
|
||||||
GraalTransistorWidth * SCALE_X,
|
(long)( GraalTransistorWidth * SCALE_X ),
|
||||||
LambdaX1 * GRAAL_SCALE_X, LambdaY1 * GRAAL_SCALE_X,
|
(long)( LambdaX1 * GRAAL_SCALE_X ),
|
||||||
LambdaX2 * GRAAL_SCALE_X, LambdaY2 * GRAAL_SCALE_X,
|
(long)( LambdaY1 * GRAAL_SCALE_X ),
|
||||||
|
(long)( LambdaX2 * GRAAL_SCALE_X ),
|
||||||
|
(long)( LambdaY2 * GRAAL_SCALE_X ),
|
||||||
GraalTransistorName );
|
GraalTransistorName );
|
||||||
|
|
||||||
Transistor->USER = (void *)(&GraalFigureMbk->PHSEG);
|
Transistor->USER = (void *)(&GraalFigureMbk->PHSEG);
|
||||||
|
@ -543,8 +549,8 @@ void GraalCreateConnectorMbk( LambdaX1, LambdaY1 )
|
||||||
|
|
||||||
rdsbegin();
|
rdsbegin();
|
||||||
|
|
||||||
LambdaX1 = LambdaX1 * GRAAL_SCALE_X;
|
LambdaX1 = (long)(LambdaX1 * GRAAL_SCALE_X);
|
||||||
LambdaY1 = LambdaY1 * GRAAL_SCALE_X;
|
LambdaY1 = (long)(LambdaY1 * GRAAL_SCALE_X);
|
||||||
|
|
||||||
switch ( GraalConnectorOrient )
|
switch ( GraalConnectorOrient )
|
||||||
{
|
{
|
||||||
|
@ -575,7 +581,7 @@ void GraalCreateConnectorMbk( LambdaX1, LambdaY1 )
|
||||||
GraalConnectorName,
|
GraalConnectorName,
|
||||||
LambdaX1, LambdaY1,
|
LambdaX1, LambdaY1,
|
||||||
GraalConnectorLayer,
|
GraalConnectorLayer,
|
||||||
GraalConnectorWidth * SCALE_X );
|
(long)( GraalConnectorWidth * SCALE_X ) );
|
||||||
|
|
||||||
Connector->USER = (void *)(&GraalFigureMbk->PHCON);
|
Connector->USER = (void *)(&GraalFigureMbk->PHCON);
|
||||||
|
|
||||||
|
@ -651,7 +657,8 @@ void GraalCreateReferenceMbk( LambdaX1, LambdaY1 )
|
||||||
addphref( GraalFigureMbk,
|
addphref( GraalFigureMbk,
|
||||||
(GraalReferenceType == MBK_REF_REF) ? "ref_ref":"ref_con" ,
|
(GraalReferenceType == MBK_REF_REF) ? "ref_ref":"ref_con" ,
|
||||||
GraalReferenceName,
|
GraalReferenceName,
|
||||||
LambdaX1 * GRAAL_SCALE_X, LambdaY1 * GRAAL_SCALE_X );
|
(long)( LambdaX1 * GRAAL_SCALE_X ),
|
||||||
|
(long)( LambdaY1 * GRAAL_SCALE_X ) );
|
||||||
|
|
||||||
Reference->USER = (void *)(&GraalFigureMbk->PHREF);
|
Reference->USER = (void *)(&GraalFigureMbk->PHREF);
|
||||||
|
|
||||||
|
@ -767,7 +774,8 @@ void GraalCreateInstanceMbk( LambdaX1, LambdaY1 )
|
||||||
GraalInstanceModel,
|
GraalInstanceModel,
|
||||||
GraalInstanceName,
|
GraalInstanceName,
|
||||||
GraalInstanceSym,
|
GraalInstanceSym,
|
||||||
LambdaX1 * GRAAL_SCALE_X, LambdaY1 * GRAAL_SCALE_X );
|
(long)( LambdaX1 * GRAAL_SCALE_X ),
|
||||||
|
(long)( LambdaY1 * GRAAL_SCALE_X ) );
|
||||||
|
|
||||||
InstanceMbk->NEXT = SaveInstance;
|
InstanceMbk->NEXT = SaveInstance;
|
||||||
InstanceMbk->USER = (void *)(&GraalFigureMbk->PHINS);
|
InstanceMbk->USER = (void *)(&GraalFigureMbk->PHINS);
|
||||||
|
@ -850,10 +858,10 @@ void GraalCreateAbutmentBoxMbk( LambdaX1, LambdaY1, LambdaX2, LambdaY2 )
|
||||||
|
|
||||||
GraalCreateFigureMbk();
|
GraalCreateFigureMbk();
|
||||||
|
|
||||||
GraalFigureMbk->XAB1 = LambdaX1 * GRAAL_SCALE_X;
|
GraalFigureMbk->XAB1 = (long)( LambdaX1 * GRAAL_SCALE_X );
|
||||||
GraalFigureMbk->YAB1 = LambdaY1 * GRAAL_SCALE_X;
|
GraalFigureMbk->YAB1 = (long)( LambdaY1 * GRAAL_SCALE_X );
|
||||||
GraalFigureMbk->XAB2 = LambdaX2 * GRAAL_SCALE_X;
|
GraalFigureMbk->XAB2 = (long)( LambdaX2 * GRAAL_SCALE_X );
|
||||||
GraalFigureMbk->YAB2 = LambdaY2 * GRAAL_SCALE_X;
|
GraalFigureMbk->YAB2 = (long)( LambdaY2 * GRAAL_SCALE_X );
|
||||||
|
|
||||||
Rectangle = GraalAddAbox();
|
Rectangle = GraalAddAbox();
|
||||||
|
|
||||||
|
|
|
@ -69,7 +69,7 @@
|
||||||
\------------------------------------------------------------*/
|
\------------------------------------------------------------*/
|
||||||
|
|
||||||
extern char GraalSegmentLayer;
|
extern char GraalSegmentLayer;
|
||||||
extern long GraalSegmentWidth;
|
extern float GraalSegmentWidth;
|
||||||
extern char *GraalSegmentName;
|
extern char *GraalSegmentName;
|
||||||
extern char GraalSegmentWire;
|
extern char GraalSegmentWire;
|
||||||
|
|
||||||
|
@ -99,7 +99,7 @@
|
||||||
|
|
||||||
extern char GraalTransistorType;
|
extern char GraalTransistorType;
|
||||||
extern char *GraalTransistorName;
|
extern char *GraalTransistorName;
|
||||||
extern long GraalTransistorWidth;
|
extern float GraalTransistorWidth;
|
||||||
extern char GraalTransistorWire;
|
extern char GraalTransistorWire;
|
||||||
|
|
||||||
/*------------------------------------------------------------\
|
/*------------------------------------------------------------\
|
||||||
|
@ -109,7 +109,7 @@
|
||||||
\------------------------------------------------------------*/
|
\------------------------------------------------------------*/
|
||||||
|
|
||||||
extern char GraalConnectorLayer;
|
extern char GraalConnectorLayer;
|
||||||
extern long GraalConnectorWidth;
|
extern float GraalConnectorWidth;
|
||||||
extern char *GraalConnectorName;
|
extern char *GraalConnectorName;
|
||||||
extern char GraalConnectorOrient;
|
extern char GraalConnectorOrient;
|
||||||
|
|
||||||
|
|
|
@ -43,6 +43,7 @@
|
||||||
\------------------------------------------------------------*/
|
\------------------------------------------------------------*/
|
||||||
|
|
||||||
# include <stdio.h>
|
# include <stdio.h>
|
||||||
|
# include <stdlib.h>
|
||||||
# include <string.h>
|
# include <string.h>
|
||||||
# include <Xm/Xm.h>
|
# include <Xm/Xm.h>
|
||||||
|
|
||||||
|
@ -308,7 +309,8 @@ void CallbackChangeSegmentWidthOk( MyWidget, ClientData, CallData )
|
||||||
XmSelectionBoxCallbackStruct *CallData;
|
XmSelectionBoxCallbackStruct *CallData;
|
||||||
{
|
{
|
||||||
char *WidthSet;
|
char *WidthSet;
|
||||||
long NewWidth;
|
float NewWidth;
|
||||||
|
float Factor;
|
||||||
|
|
||||||
rdsbegin();
|
rdsbegin();
|
||||||
|
|
||||||
|
@ -324,9 +326,11 @@ void CallbackChangeSegmentWidthOk( MyWidget, ClientData, CallData )
|
||||||
|
|
||||||
if ( WidthSet != (char *)NULL )
|
if ( WidthSet != (char *)NULL )
|
||||||
{
|
{
|
||||||
NewWidth = atoi( WidthSet );
|
Factor = RDS_LAMBDA / RDS_PHYSICAL_GRID;
|
||||||
|
NewWidth = atof( WidthSet );
|
||||||
|
NewWidth = (float)( (long)( NewWidth * Factor / 2.0 ) * 2 / Factor );
|
||||||
|
|
||||||
if ( NewWidth >= GRAAL_SEGMENT_VALUE_TABLE[ GraalSegmentLayer ][0] )
|
if ( NewWidth >= GRAAL_SEGMENT_VALUE_TABLE[ GraalSegmentLayer ][0] )
|
||||||
{
|
{
|
||||||
GraalSegmentWidth = NewWidth;
|
GraalSegmentWidth = NewWidth;
|
||||||
}
|
}
|
||||||
|
@ -463,7 +467,8 @@ void CallbackChangeTransistorWidthOk( MyWidget, ClientData, CallData )
|
||||||
XmSelectionBoxCallbackStruct *CallData;
|
XmSelectionBoxCallbackStruct *CallData;
|
||||||
{
|
{
|
||||||
char *WidthSet;
|
char *WidthSet;
|
||||||
long NewWidth;
|
float NewWidth;
|
||||||
|
float Factor;
|
||||||
|
|
||||||
rdsbegin();
|
rdsbegin();
|
||||||
|
|
||||||
|
@ -479,7 +484,9 @@ void CallbackChangeTransistorWidthOk( MyWidget, ClientData, CallData )
|
||||||
|
|
||||||
if ( WidthSet != (char *)NULL )
|
if ( WidthSet != (char *)NULL )
|
||||||
{
|
{
|
||||||
NewWidth = atoi( WidthSet );
|
Factor = RDS_LAMBDA / RDS_PHYSICAL_GRID;
|
||||||
|
NewWidth = atof( WidthSet );
|
||||||
|
NewWidth = (float)( (long)( NewWidth * Factor / 2.0 ) * 2 / Factor );
|
||||||
|
|
||||||
if ( NewWidth >= GRAAL_SEGMENT_VALUE_TABLE[ GraalTransistorType ][0] )
|
if ( NewWidth >= GRAAL_SEGMENT_VALUE_TABLE[ GraalTransistorType ][0] )
|
||||||
{
|
{
|
||||||
|
@ -618,7 +625,8 @@ void CallbackChangeConnectorWidthOk( MyWidget, ClientData, CallData )
|
||||||
XmSelectionBoxCallbackStruct *CallData;
|
XmSelectionBoxCallbackStruct *CallData;
|
||||||
{
|
{
|
||||||
char *WidthSet;
|
char *WidthSet;
|
||||||
long NewWidth;
|
float NewWidth;
|
||||||
|
float Factor;
|
||||||
|
|
||||||
rdsbegin();
|
rdsbegin();
|
||||||
|
|
||||||
|
@ -634,7 +642,9 @@ void CallbackChangeConnectorWidthOk( MyWidget, ClientData, CallData )
|
||||||
|
|
||||||
if ( WidthSet != (char *)NULL )
|
if ( WidthSet != (char *)NULL )
|
||||||
{
|
{
|
||||||
NewWidth = atoi( WidthSet );
|
Factor = RDS_LAMBDA / RDS_PHYSICAL_GRID;
|
||||||
|
NewWidth = atof( WidthSet );
|
||||||
|
NewWidth = (float)( (long)( NewWidth * Factor / 2.0 ) * 2 / Factor );
|
||||||
|
|
||||||
if ( NewWidth >= GRAAL_SEGMENT_VALUE_TABLE[ GraalConnectorLayer ][0] )
|
if ( NewWidth >= GRAAL_SEGMENT_VALUE_TABLE[ GraalConnectorLayer ][0] )
|
||||||
{
|
{
|
||||||
|
|
|
@ -230,7 +230,7 @@ void CallbackCreateSegment( MyWidget, ClientData, CallData )
|
||||||
{
|
{
|
||||||
rdsbegin();
|
rdsbegin();
|
||||||
|
|
||||||
if ( GraalSegmentWidth == -1 )
|
if ( GraalSegmentWidth == -1.0 )
|
||||||
{
|
{
|
||||||
GraalSegmentWidth = GRAAL_SEGMENT_VALUE_TABLE[ GraalSegmentLayer ][0];
|
GraalSegmentWidth = GRAAL_SEGMENT_VALUE_TABLE[ GraalSegmentLayer ][0];
|
||||||
}
|
}
|
||||||
|
@ -363,7 +363,7 @@ void CallbackCreateConnector( MyWidget, ClientData, CallData )
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if ( GraalConnectorWidth == -1 )
|
if ( GraalConnectorWidth == -1.0 )
|
||||||
{
|
{
|
||||||
GraalConnectorWidth = GRAAL_SEGMENT_VALUE_TABLE[ GraalConnectorLayer ][0];
|
GraalConnectorWidth = GRAAL_SEGMENT_VALUE_TABLE[ GraalConnectorLayer ][0];
|
||||||
}
|
}
|
||||||
|
@ -391,7 +391,7 @@ void CallbackCreateTransistor( MyWidget, ClientData, CallData )
|
||||||
{
|
{
|
||||||
rdsbegin();
|
rdsbegin();
|
||||||
|
|
||||||
if ( GraalTransistorWidth == -1 )
|
if ( GraalTransistorWidth == -1.0 )
|
||||||
{
|
{
|
||||||
GraalTransistorWidth = GRAAL_SEGMENT_VALUE_TABLE[ GraalTransistorType ][0];
|
GraalTransistorWidth = GRAAL_SEGMENT_VALUE_TABLE[ GraalTransistorType ][0];
|
||||||
}
|
}
|
||||||
|
|
|
@ -95,7 +95,7 @@ void GraalPromptCreateSegment()
|
||||||
{
|
{
|
||||||
GraalDisplayMessage( GRAAL_MESSAGE_MODE, "Create Segment" );
|
GraalDisplayMessage( GRAAL_MESSAGE_MODE, "Create Segment" );
|
||||||
|
|
||||||
sprintf( MessageBuffer, "Layer: %s Width: %2d Name: %s",
|
sprintf( MessageBuffer, "Layer: %s Width: %.2f Name: %s",
|
||||||
GRAAL_SEGMENT_NAME_TABLE[ GraalSegmentLayer ][0] ,
|
GRAAL_SEGMENT_NAME_TABLE[ GraalSegmentLayer ][0] ,
|
||||||
GraalSegmentWidth,
|
GraalSegmentWidth,
|
||||||
( GraalSegmentName ) ? GraalSegmentName : "none" );
|
( GraalSegmentName ) ? GraalSegmentName : "none" );
|
||||||
|
@ -127,7 +127,7 @@ void GraalPromptCreateConnector()
|
||||||
{
|
{
|
||||||
GraalDisplayMessage( GRAAL_MESSAGE_MODE, "Create Connector" );
|
GraalDisplayMessage( GRAAL_MESSAGE_MODE, "Create Connector" );
|
||||||
|
|
||||||
sprintf( MessageBuffer, "Layer: %s Width: %2d Orient: %s",
|
sprintf( MessageBuffer, "Layer: %s Width: %.2f Orient: %s",
|
||||||
GRAAL_CONNECTOR_NAME_TABLE[ GraalConnectorLayer ][0],
|
GRAAL_CONNECTOR_NAME_TABLE[ GraalConnectorLayer ][0],
|
||||||
GraalConnectorWidth,
|
GraalConnectorWidth,
|
||||||
GRAAL_ORIENT_NAME_TABLE[ GraalConnectorOrient ][0] );
|
GRAAL_ORIENT_NAME_TABLE[ GraalConnectorOrient ][0] );
|
||||||
|
@ -217,13 +217,13 @@ void GraalPromptCreateTransistor()
|
||||||
|
|
||||||
if ( GraalTransistorName == (char *)NULL )
|
if ( GraalTransistorName == (char *)NULL )
|
||||||
{
|
{
|
||||||
sprintf( MessageBuffer, "Type: %s Width: %2d Name: none",
|
sprintf( MessageBuffer, "Type: %s Width: %.2f Name: none",
|
||||||
GRAAL_TRANSISTOR_NAME_TABLE[ GraalTransistorType ][0],
|
GRAAL_TRANSISTOR_NAME_TABLE[ GraalTransistorType ][0],
|
||||||
GraalTransistorWidth );
|
GraalTransistorWidth );
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
sprintf( MessageBuffer, "Type: %s Width: %2d Name: %s",
|
sprintf( MessageBuffer, "Type: %s Width: %.2f Name: %s",
|
||||||
GRAAL_TRANSISTOR_NAME_TABLE[ GraalTransistorType ][0],
|
GRAAL_TRANSISTOR_NAME_TABLE[ GraalTransistorType ][0],
|
||||||
GraalTransistorWidth, GraalTransistorName );
|
GraalTransistorWidth, GraalTransistorName );
|
||||||
}
|
}
|
||||||
|
|
|
@ -43,6 +43,7 @@
|
||||||
\------------------------------------------------------------*/
|
\------------------------------------------------------------*/
|
||||||
|
|
||||||
# include <stdio.h>
|
# include <stdio.h>
|
||||||
|
# include <stdlib.h>
|
||||||
# include <string.h>
|
# include <string.h>
|
||||||
# include <Xm/Xm.h>
|
# include <Xm/Xm.h>
|
||||||
# include <Xm/FileSB.h>
|
# include <Xm/FileSB.h>
|
||||||
|
@ -411,7 +412,8 @@ void CallbackModifySegmentWidthOk( MyWidget, ClientData, CallData )
|
||||||
XmSelectionBoxCallbackStruct *CallData;
|
XmSelectionBoxCallbackStruct *CallData;
|
||||||
{
|
{
|
||||||
char *WidthSet;
|
char *WidthSet;
|
||||||
long NewWidth;
|
float NewWidth;
|
||||||
|
float Factor;
|
||||||
|
|
||||||
rdsbegin();
|
rdsbegin();
|
||||||
|
|
||||||
|
@ -425,7 +427,9 @@ void CallbackModifySegmentWidthOk( MyWidget, ClientData, CallData )
|
||||||
|
|
||||||
if ( WidthSet != (char *)NULL )
|
if ( WidthSet != (char *)NULL )
|
||||||
{
|
{
|
||||||
NewWidth = atoi( WidthSet );
|
Factor = RDS_LAMBDA / RDS_PHYSICAL_GRID;
|
||||||
|
NewWidth = atof( WidthSet );
|
||||||
|
NewWidth = (float)( (long)( NewWidth * Factor / 2.0 ) * 2 / Factor );
|
||||||
|
|
||||||
if ( NewWidth >= GRAAL_SEGMENT_VALUE_TABLE[ GraalSegmentMLayer ][0] )
|
if ( NewWidth >= GRAAL_SEGMENT_VALUE_TABLE[ GraalSegmentMLayer ][0] )
|
||||||
{
|
{
|
||||||
|
@ -547,7 +551,8 @@ void CallbackModifyTransistorWidthOk( MyWidget, ClientData, CallData )
|
||||||
XmSelectionBoxCallbackStruct *CallData;
|
XmSelectionBoxCallbackStruct *CallData;
|
||||||
{
|
{
|
||||||
char *WidthSet;
|
char *WidthSet;
|
||||||
long NewWidth;
|
float NewWidth;
|
||||||
|
float Factor;
|
||||||
|
|
||||||
rdsbegin();
|
rdsbegin();
|
||||||
|
|
||||||
|
@ -561,9 +566,11 @@ void CallbackModifyTransistorWidthOk( MyWidget, ClientData, CallData )
|
||||||
|
|
||||||
if ( WidthSet != (char *)NULL )
|
if ( WidthSet != (char *)NULL )
|
||||||
{
|
{
|
||||||
NewWidth = atoi( WidthSet );
|
Factor = RDS_LAMBDA / RDS_PHYSICAL_GRID;
|
||||||
|
NewWidth = atof( WidthSet );
|
||||||
|
NewWidth = (float)( (long)( NewWidth * Factor / 2.0 ) * 2 / Factor );
|
||||||
|
|
||||||
if ( NewWidth >= GRAAL_SEGMENT_VALUE_TABLE[ GraalTransistorMType ][0] )
|
if ( NewWidth >= GRAAL_SEGMENT_VALUE_TABLE[ GraalTransistorMType ][0] )
|
||||||
{
|
{
|
||||||
GraalTransistorMWidth = NewWidth;
|
GraalTransistorMWidth = NewWidth;
|
||||||
}
|
}
|
||||||
|
@ -676,7 +683,8 @@ void CallbackModifyConnectorWidthOk( MyWidget, ClientData, CallData )
|
||||||
XmSelectionBoxCallbackStruct *CallData;
|
XmSelectionBoxCallbackStruct *CallData;
|
||||||
{
|
{
|
||||||
char *WidthSet;
|
char *WidthSet;
|
||||||
long NewWidth;
|
float NewWidth;
|
||||||
|
float Factor;
|
||||||
|
|
||||||
rdsbegin();
|
rdsbegin();
|
||||||
|
|
||||||
|
@ -690,9 +698,11 @@ void CallbackModifyConnectorWidthOk( MyWidget, ClientData, CallData )
|
||||||
|
|
||||||
if ( WidthSet != (char *)NULL )
|
if ( WidthSet != (char *)NULL )
|
||||||
{
|
{
|
||||||
NewWidth = atoi( WidthSet );
|
Factor = RDS_LAMBDA / RDS_PHYSICAL_GRID;
|
||||||
|
NewWidth = atof( WidthSet );
|
||||||
|
NewWidth = (float)( (long)( NewWidth * Factor / 2.0 ) * 2 / Factor );
|
||||||
|
|
||||||
if ( NewWidth >= GRAAL_SEGMENT_VALUE_TABLE[ GraalConnectorMLayer ][0] )
|
if ( NewWidth >= GRAAL_SEGMENT_VALUE_TABLE[ GraalConnectorMLayer ][0] )
|
||||||
{
|
{
|
||||||
GraalConnectorMWidth = NewWidth;
|
GraalConnectorMWidth = NewWidth;
|
||||||
}
|
}
|
||||||
|
|
|
@ -152,10 +152,10 @@ void GraalEditTreatUndo( HeadUndo )
|
||||||
{
|
{
|
||||||
ClearGraalDeleted( Rec );
|
ClearGraalDeleted( Rec );
|
||||||
|
|
||||||
GraalFigureMbk->XAB1 = Rec->X * GRAAL_SCALE_X / GRAAL_RDS_LAMBDA;
|
GraalFigureMbk->XAB1 = (long)( Rec->X * GRAAL_SCALE_X / GRAAL_RDS_LAMBDA );
|
||||||
GraalFigureMbk->YAB1 = Rec->Y * GRAAL_SCALE_X / GRAAL_RDS_LAMBDA;
|
GraalFigureMbk->YAB1 = (long)( Rec->Y * GRAAL_SCALE_X / GRAAL_RDS_LAMBDA );
|
||||||
GraalFigureMbk->XAB2 = ( Rec->X + Rec->DX ) * GRAAL_SCALE_X / GRAAL_RDS_LAMBDA;
|
GraalFigureMbk->XAB2 = (long)( ( Rec->X + Rec->DX ) * GRAAL_SCALE_X / GRAAL_RDS_LAMBDA );
|
||||||
GraalFigureMbk->YAB2 = ( Rec->Y + Rec->DY ) * GRAAL_SCALE_X / GRAAL_RDS_LAMBDA;
|
GraalFigureMbk->YAB2 = (long)( ( Rec->Y + Rec->DY ) * GRAAL_SCALE_X / GRAAL_RDS_LAMBDA );
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -464,8 +464,8 @@ void GraalEditCopy( LambdaX1, LambdaY1, LambdaX2, LambdaY2, Mode )
|
||||||
|
|
||||||
rdsbegin();
|
rdsbegin();
|
||||||
|
|
||||||
DeltaX = ( LambdaX2 - LambdaX1 ) * GRAAL_SCALE_X;
|
DeltaX = (long)( ( LambdaX2 - LambdaX1 ) * GRAAL_SCALE_X );
|
||||||
DeltaY = ( LambdaY2 - LambdaY1 ) * GRAAL_SCALE_X;
|
DeltaY = (long)( ( LambdaY2 - LambdaY1 ) * GRAAL_SCALE_X );
|
||||||
|
|
||||||
FirstUndo = 1;
|
FirstUndo = 1;
|
||||||
|
|
||||||
|
@ -666,8 +666,8 @@ void GraalEditMove( LambdaX1, LambdaY1, LambdaX2, LambdaY2, Mode )
|
||||||
|
|
||||||
rdsbegin();
|
rdsbegin();
|
||||||
|
|
||||||
DeltaX = ( LambdaX2 - LambdaX1 ) * GRAAL_SCALE_X;
|
DeltaX = (long)( ( LambdaX2 - LambdaX1 ) * GRAAL_SCALE_X );
|
||||||
DeltaY = ( LambdaY2 - LambdaY1 ) * GRAAL_SCALE_X;
|
DeltaY = (long)( ( LambdaY2 - LambdaY1 ) * GRAAL_SCALE_X );
|
||||||
|
|
||||||
FirstUndo = 1;
|
FirstUndo = 1;
|
||||||
|
|
||||||
|
@ -1100,10 +1100,10 @@ void GraalEditStretch( LambdaX1, LambdaY1, LambdaX2, LambdaY2, Mode )
|
||||||
|
|
||||||
Orient = 0;
|
Orient = 0;
|
||||||
|
|
||||||
LambdaX1 = LambdaX1 * GRAAL_SCALE_X;
|
LambdaX1 = (long)( LambdaX1 * GRAAL_SCALE_X );
|
||||||
LambdaX2 = LambdaX2 * GRAAL_SCALE_X;
|
LambdaX2 = (long)( LambdaX2 * GRAAL_SCALE_X );
|
||||||
LambdaY1 = LambdaY1 * GRAAL_SCALE_X;
|
LambdaY1 = (long)( LambdaY1 * GRAAL_SCALE_X );
|
||||||
LambdaY2 = LambdaY2 * GRAAL_SCALE_X;
|
LambdaY2 = (long)( LambdaY2 * GRAAL_SCALE_X );
|
||||||
|
|
||||||
if ( LambdaX2 != LambdaX1 )
|
if ( LambdaX2 != LambdaX1 )
|
||||||
{
|
{
|
||||||
|
@ -1310,7 +1310,7 @@ void GraalEditStretch( LambdaX1, LambdaY1, LambdaX2, LambdaY2, Mode )
|
||||||
X2 = ((phseg_list *)Pointer)->X2;
|
X2 = ((phseg_list *)Pointer)->X2;
|
||||||
Y2 = ((phseg_list *)Pointer)->Y2;
|
Y2 = ((phseg_list *)Pointer)->Y2;
|
||||||
|
|
||||||
Length = GRAAL_SEGMENT_VALUE_TABLE[ ((phseg_list *)Pointer)->LAYER ][1] * GRAAL_SCALE_X;
|
Length = (long)( GRAAL_SEGMENT_VALUE_TABLE[ ((phseg_list *)Pointer)->LAYER ][1] * SCALE_X );
|
||||||
|
|
||||||
Stretch = 0;
|
Stretch = 0;
|
||||||
|
|
||||||
|
@ -1410,7 +1410,7 @@ void GraalEditStretch( LambdaX1, LambdaY1, LambdaX2, LambdaY2, Mode )
|
||||||
X2 = X1 + DXvia;
|
X2 = X1 + DXvia;
|
||||||
Y2 = Y1 + DYvia;
|
Y2 = Y1 + DYvia;
|
||||||
|
|
||||||
Length = GRAAL_BIGVIA_VALUE_TABLE[ ((phvia_list *)Pointer)->TYPE ][0] * GRAAL_SCALE_X;
|
Length = (long)( GRAAL_BIGVIA_VALUE_TABLE[ ((phvia_list *)Pointer)->TYPE ][0] * SCALE_X );
|
||||||
|
|
||||||
Stretch = 0;
|
Stretch = 0;
|
||||||
|
|
||||||
|
|
|
@ -475,7 +475,7 @@ void GraalPromptModifySegment()
|
||||||
|
|
||||||
GraalDisplayMessage( GRAAL_MESSAGE_MODE, "Modify Segment" );
|
GraalDisplayMessage( GRAAL_MESSAGE_MODE, "Modify Segment" );
|
||||||
|
|
||||||
sprintf( MessageBuffer, "Layer: %s Width: %2d Name: %s",
|
sprintf( MessageBuffer, "Layer: %s Width: %.2f Name: %s",
|
||||||
GRAAL_SEGMENT_NAME_TABLE[ GraalSegmentMLayer ][0] ,
|
GRAAL_SEGMENT_NAME_TABLE[ GraalSegmentMLayer ][0] ,
|
||||||
GraalSegmentMWidth,
|
GraalSegmentMWidth,
|
||||||
( GraalSegmentMName ) ? GraalSegmentMName : "none" );
|
( GraalSegmentMName ) ? GraalSegmentMName : "none" );
|
||||||
|
@ -499,7 +499,7 @@ void GraalPromptModifyConnector()
|
||||||
|
|
||||||
GraalDisplayMessage( GRAAL_MESSAGE_MODE, "Modify Connector" );
|
GraalDisplayMessage( GRAAL_MESSAGE_MODE, "Modify Connector" );
|
||||||
|
|
||||||
sprintf( MessageBuffer, "Layer: %s Width: %2d Orient: %s Name: %s",
|
sprintf( MessageBuffer, "Layer: %s Width: %.2f Orient: %s Name: %s",
|
||||||
GRAAL_CONNECTOR_NAME_TABLE[ GraalConnectorMLayer ][0],
|
GRAAL_CONNECTOR_NAME_TABLE[ GraalConnectorMLayer ][0],
|
||||||
GraalConnectorMWidth,
|
GraalConnectorMWidth,
|
||||||
GRAAL_ORIENT_NAME_TABLE[ GraalConnectorMOrient ][0],
|
GRAAL_ORIENT_NAME_TABLE[ GraalConnectorMOrient ][0],
|
||||||
|
@ -603,13 +603,13 @@ void GraalPromptModifyTransistor()
|
||||||
|
|
||||||
if ( GraalTransistorMName == (char *)NULL )
|
if ( GraalTransistorMName == (char *)NULL )
|
||||||
{
|
{
|
||||||
sprintf( MessageBuffer, "Type: %s Width: %2d Name: None",
|
sprintf( MessageBuffer, "Type: %s Width: %.2f Name: None",
|
||||||
GRAAL_TRANSISTOR_NAME_TABLE[ GraalTransistorMType ][0],
|
GRAAL_TRANSISTOR_NAME_TABLE[ GraalTransistorMType ][0],
|
||||||
GraalTransistorMWidth );
|
GraalTransistorMWidth );
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
sprintf( MessageBuffer, "Type: %s Width: %2d Name: %s",
|
sprintf( MessageBuffer, "Type: %s Width: %.2f Name: %s",
|
||||||
GRAAL_TRANSISTOR_NAME_TABLE[ GraalTransistorMType ][0],
|
GRAAL_TRANSISTOR_NAME_TABLE[ GraalTransistorMType ][0],
|
||||||
GraalTransistorMWidth, GraalTransistorMName );
|
GraalTransistorMWidth, GraalTransistorMName );
|
||||||
}
|
}
|
||||||
|
|
|
@ -91,7 +91,7 @@
|
||||||
\------------------------------------------------------------*/
|
\------------------------------------------------------------*/
|
||||||
|
|
||||||
char GraalSegmentMLayer;
|
char GraalSegmentMLayer;
|
||||||
long GraalSegmentMWidth;
|
float GraalSegmentMWidth;
|
||||||
char *GraalSegmentMName;
|
char *GraalSegmentMName;
|
||||||
|
|
||||||
/*------------------------------------------------------------\
|
/*------------------------------------------------------------\
|
||||||
|
@ -111,7 +111,7 @@
|
||||||
|
|
||||||
char GraalTransistorMType;
|
char GraalTransistorMType;
|
||||||
char *GraalTransistorMName;
|
char *GraalTransistorMName;
|
||||||
long GraalTransistorMWidth;
|
float GraalTransistorMWidth;
|
||||||
|
|
||||||
/*------------------------------------------------------------\
|
/*------------------------------------------------------------\
|
||||||
| |
|
| |
|
||||||
|
@ -120,7 +120,7 @@
|
||||||
\------------------------------------------------------------*/
|
\------------------------------------------------------------*/
|
||||||
|
|
||||||
char GraalConnectorMLayer;
|
char GraalConnectorMLayer;
|
||||||
long GraalConnectorMWidth;
|
float GraalConnectorMWidth;
|
||||||
char *GraalConnectorMName;
|
char *GraalConnectorMName;
|
||||||
char GraalConnectorMOrient;
|
char GraalConnectorMOrient;
|
||||||
|
|
||||||
|
@ -169,9 +169,9 @@ char GraalTransistorChanged( Transistor )
|
||||||
{
|
{
|
||||||
return
|
return
|
||||||
|
|
||||||
( ( Transistor->NAME != GraalTransistorMName ) ||
|
( ( Transistor->NAME != GraalTransistorMName ) ||
|
||||||
( Transistor->LAYER != GraalTransistorMType ) ||
|
( Transistor->LAYER != GraalTransistorMType ) ||
|
||||||
( ( Transistor->WIDTH / SCALE_X ) != GraalTransistorMWidth ) );
|
( ( Transistor->WIDTH / (float)SCALE_X ) != GraalTransistorMWidth ) );
|
||||||
}
|
}
|
||||||
|
|
||||||
/*------------------------------------------------------------\
|
/*------------------------------------------------------------\
|
||||||
|
@ -186,9 +186,9 @@ char GraalSegmentChanged( Segment )
|
||||||
{
|
{
|
||||||
return
|
return
|
||||||
|
|
||||||
( ( Segment->NAME != GraalSegmentMName ) ||
|
( ( Segment->NAME != GraalSegmentMName ) ||
|
||||||
( Segment->LAYER != GraalSegmentMLayer ) ||
|
( Segment->LAYER != GraalSegmentMLayer ) ||
|
||||||
( ( Segment->WIDTH / SCALE_X ) != GraalSegmentMWidth ) );
|
( ( Segment->WIDTH / (float)SCALE_X ) != GraalSegmentMWidth ) );
|
||||||
}
|
}
|
||||||
|
|
||||||
/*------------------------------------------------------------\
|
/*------------------------------------------------------------\
|
||||||
|
@ -217,10 +217,10 @@ char GraalConnectorChanged( Connector )
|
||||||
{
|
{
|
||||||
return
|
return
|
||||||
|
|
||||||
( ( Connector->NAME != GraalConnectorMName ) ||
|
( ( Connector->NAME != GraalConnectorMName ) ||
|
||||||
( Connector->LAYER != GraalConnectorMLayer ) ||
|
( Connector->LAYER != GraalConnectorMLayer ) ||
|
||||||
( ( Connector->WIDTH / SCALE_X ) != GraalConnectorMWidth ) ||
|
( ( Connector->WIDTH / (float)SCALE_X ) != GraalConnectorMWidth ) ||
|
||||||
( GraalSaveConnectorMOrient != GraalConnectorMOrient ) );
|
( GraalSaveConnectorMOrient != GraalConnectorMOrient ) );
|
||||||
}
|
}
|
||||||
|
|
||||||
/*------------------------------------------------------------\
|
/*------------------------------------------------------------\
|
||||||
|
@ -302,7 +302,7 @@ void GraalEditModify()
|
||||||
GraalAcceptRectangle( Rectangle );
|
GraalAcceptRectangle( Rectangle );
|
||||||
GraalDisplayRectangle( Rectangle );
|
GraalDisplayRectangle( Rectangle );
|
||||||
|
|
||||||
GraalTransistorMWidth = ((phseg_list *)Pointer)->WIDTH / SCALE_X;
|
GraalTransistorMWidth = (float)( ((phseg_list *)Pointer)->WIDTH / (float)SCALE_X );
|
||||||
GraalTransistorMType = ((phseg_list *)Pointer)->LAYER;
|
GraalTransistorMType = ((phseg_list *)Pointer)->LAYER;
|
||||||
GraalTransistorMName = ((phseg_list *)Pointer)->NAME;
|
GraalTransistorMName = ((phseg_list *)Pointer)->NAME;
|
||||||
|
|
||||||
|
@ -341,7 +341,7 @@ void GraalEditModify()
|
||||||
|
|
||||||
addphseg( GraalFigureMbk,
|
addphseg( GraalFigureMbk,
|
||||||
GraalTransistorMType ,
|
GraalTransistorMType ,
|
||||||
GraalTransistorMWidth * SCALE_X,
|
(long)( GraalTransistorMWidth * SCALE_X ),
|
||||||
((phseg_list *)Pointer)->X1,
|
((phseg_list *)Pointer)->X1,
|
||||||
((phseg_list *)Pointer)->Y1,
|
((phseg_list *)Pointer)->Y1,
|
||||||
((phseg_list *)Pointer)->X2,
|
((phseg_list *)Pointer)->X2,
|
||||||
|
@ -385,7 +385,7 @@ void GraalEditModify()
|
||||||
GraalAcceptRectangle( Rectangle );
|
GraalAcceptRectangle( Rectangle );
|
||||||
GraalDisplayRectangle( Rectangle );
|
GraalDisplayRectangle( Rectangle );
|
||||||
|
|
||||||
GraalSegmentMWidth = ((phseg_list *)Pointer)->WIDTH / SCALE_X;
|
GraalSegmentMWidth = (float)( ((phseg_list *)Pointer)->WIDTH / (float)SCALE_X );
|
||||||
GraalSegmentMLayer = ((phseg_list *)Pointer)->LAYER;
|
GraalSegmentMLayer = ((phseg_list *)Pointer)->LAYER;
|
||||||
GraalSegmentMName = ((phseg_list *)Pointer)->NAME;
|
GraalSegmentMName = ((phseg_list *)Pointer)->NAME;
|
||||||
|
|
||||||
|
@ -424,7 +424,7 @@ void GraalEditModify()
|
||||||
|
|
||||||
addphseg( GraalFigureMbk,
|
addphseg( GraalFigureMbk,
|
||||||
GraalSegmentMLayer,
|
GraalSegmentMLayer,
|
||||||
GraalSegmentMWidth * SCALE_X,
|
(long)( GraalSegmentMWidth * SCALE_X ),
|
||||||
((phseg_list *)Pointer)->X1,
|
((phseg_list *)Pointer)->X1,
|
||||||
((phseg_list *)Pointer)->Y1,
|
((phseg_list *)Pointer)->Y1,
|
||||||
((phseg_list *)Pointer)->X2,
|
((phseg_list *)Pointer)->X2,
|
||||||
|
@ -641,7 +641,7 @@ void GraalEditModify()
|
||||||
|
|
||||||
GraalConnectorMName = ((phcon_list *)Pointer)->NAME;
|
GraalConnectorMName = ((phcon_list *)Pointer)->NAME;
|
||||||
GraalConnectorMLayer = ((phcon_list *)Pointer)->LAYER;
|
GraalConnectorMLayer = ((phcon_list *)Pointer)->LAYER;
|
||||||
GraalConnectorMWidth = ((phcon_list *)Pointer)->WIDTH / SCALE_X;
|
GraalConnectorMWidth = (float)( ((phcon_list *)Pointer)->WIDTH / (float)SCALE_X );
|
||||||
|
|
||||||
switch( ((phcon_list *)Pointer)->ORIENT )
|
switch( ((phcon_list *)Pointer)->ORIENT )
|
||||||
{
|
{
|
||||||
|
@ -700,7 +700,7 @@ void GraalEditModify()
|
||||||
((phcon_list *)Pointer)->XCON,
|
((phcon_list *)Pointer)->XCON,
|
||||||
((phcon_list *)Pointer)->YCON,
|
((phcon_list *)Pointer)->YCON,
|
||||||
GraalConnectorMLayer,
|
GraalConnectorMLayer,
|
||||||
GraalConnectorMWidth * SCALE_X );
|
(long)( GraalConnectorMWidth * SCALE_X ) );
|
||||||
|
|
||||||
((phcon_list *)Element)->USER = (void *)(&GraalFigureMbk->PHCON);
|
((phcon_list *)Element)->USER = (void *)(&GraalFigureMbk->PHCON);
|
||||||
|
|
||||||
|
|
|
@ -72,7 +72,7 @@
|
||||||
\------------------------------------------------------------*/
|
\------------------------------------------------------------*/
|
||||||
|
|
||||||
extern char GraalSegmentMLayer;
|
extern char GraalSegmentMLayer;
|
||||||
extern long GraalSegmentMWidth;
|
extern float GraalSegmentMWidth;
|
||||||
extern char *GraalSegmentMName;
|
extern char *GraalSegmentMName;
|
||||||
|
|
||||||
/*------------------------------------------------------------\
|
/*------------------------------------------------------------\
|
||||||
|
@ -92,7 +92,7 @@
|
||||||
|
|
||||||
extern char GraalTransistorMType;
|
extern char GraalTransistorMType;
|
||||||
extern char *GraalTransistorMName;
|
extern char *GraalTransistorMName;
|
||||||
extern long GraalTransistorMWidth;
|
extern float GraalTransistorMWidth;
|
||||||
|
|
||||||
/*------------------------------------------------------------\
|
/*------------------------------------------------------------\
|
||||||
| |
|
| |
|
||||||
|
@ -101,7 +101,7 @@
|
||||||
\------------------------------------------------------------*/
|
\------------------------------------------------------------*/
|
||||||
|
|
||||||
extern char GraalConnectorMLayer;
|
extern char GraalConnectorMLayer;
|
||||||
extern long GraalConnectorMWidth;
|
extern float GraalConnectorMWidth;
|
||||||
extern char *GraalConnectorMName;
|
extern char *GraalConnectorMName;
|
||||||
extern char GraalConnectorMOrient;
|
extern char GraalConnectorMOrient;
|
||||||
|
|
||||||
|
|
|
@ -4417,8 +4417,8 @@ void CallbackModifySegmentLayer( MyWidget, ClientData, CallData )
|
||||||
caddr_t ClientData;
|
caddr_t ClientData;
|
||||||
caddr_t CallData;
|
caddr_t CallData;
|
||||||
{
|
{
|
||||||
long MinWidth;
|
float MinWidth;
|
||||||
int NewLayer;
|
int NewLayer;
|
||||||
|
|
||||||
rdsbegin();
|
rdsbegin();
|
||||||
|
|
||||||
|
@ -4543,7 +4543,7 @@ void CallbackModifyTransistorType( MyWidget, ClientData, CallData )
|
||||||
caddr_t ClientData;
|
caddr_t ClientData;
|
||||||
caddr_t CallData;
|
caddr_t CallData;
|
||||||
{
|
{
|
||||||
long MinWidth;
|
float MinWidth;
|
||||||
|
|
||||||
rdsbegin();
|
rdsbegin();
|
||||||
|
|
||||||
|
@ -4658,12 +4658,12 @@ void CallbackModifyConnectorLayer( MyWidget, ClientData, CallData )
|
||||||
caddr_t ClientData;
|
caddr_t ClientData;
|
||||||
caddr_t CallData;
|
caddr_t CallData;
|
||||||
{
|
{
|
||||||
long MinWidth;
|
float MinWidth;
|
||||||
|
|
||||||
rdsbegin();
|
rdsbegin();
|
||||||
|
|
||||||
GraalConnectorMLayer = (int)ClientData;
|
GraalConnectorMLayer = (int)ClientData;
|
||||||
MinWidth = GRAAL_SEGMENT_VALUE_TABLE[ GraalConnectorMLayer ][0];
|
MinWidth = GRAAL_SEGMENT_VALUE_TABLE[ GraalConnectorMLayer ][0];
|
||||||
|
|
||||||
if ( GraalConnectorMWidth < MinWidth ) GraalConnectorMWidth = MinWidth;
|
if ( GraalConnectorMWidth < MinWidth ) GraalConnectorMWidth = MinWidth;
|
||||||
|
|
||||||
|
|
|
@ -565,8 +565,8 @@ void GraalToolsHierarchyShow( LambdaX1, LambdaY1 )
|
||||||
{
|
{
|
||||||
GraalSetMouseCursor( GraalGraphicWindow, GRAAL_WATCH_CURSOR );
|
GraalSetMouseCursor( GraalGraphicWindow, GRAAL_WATCH_CURSOR );
|
||||||
|
|
||||||
LambdaX1 *= GRAAL_SCALE_X;
|
LambdaX1 = (long)( LambdaX1 * GRAAL_SCALE_X );
|
||||||
LambdaY1 *= GRAAL_SCALE_X;
|
LambdaY1 = (long)( LambdaY1 * GRAAL_SCALE_X );
|
||||||
|
|
||||||
sprintf( GraalScanHierarchyShow, "FIGURE %s : (%.2f, %.2f)\n",
|
sprintf( GraalScanHierarchyShow, "FIGURE %s : (%.2f, %.2f)\n",
|
||||||
GraalFigureMbk->NAME,
|
GraalFigureMbk->NAME,
|
||||||
|
|
|
@ -362,12 +362,12 @@ char *GraalGetInformations()
|
||||||
|
|
||||||
if ( GraalFigureMbk != (phfig_list *)NULL )
|
if ( GraalFigureMbk != (phfig_list *)NULL )
|
||||||
{
|
{
|
||||||
sprintf( Scan, " FIGURE : %s\n\n XAB1 : %d\n YAB1 : %d\n XAB2 : %d\n YAB2 : %d\n\n",
|
sprintf( Scan, " FIGURE : %s\n\n XAB1 : %ld\n YAB1 : %ld\n XAB2 : %ld\n YAB2 : %ld\n\n",
|
||||||
GraalFigureMbk->NAME,
|
GraalFigureMbk->NAME,
|
||||||
GraalFigureMbk->XAB1 / GRAAL_SCALE_X,
|
(long)( GraalFigureMbk->XAB1 / GRAAL_SCALE_X ),
|
||||||
GraalFigureMbk->YAB1 / GRAAL_SCALE_X,
|
(long)( GraalFigureMbk->YAB1 / GRAAL_SCALE_X ),
|
||||||
GraalFigureMbk->XAB2 / GRAAL_SCALE_X,
|
(long)( GraalFigureMbk->XAB2 / GRAAL_SCALE_X ),
|
||||||
GraalFigureMbk->YAB2 / GRAAL_SCALE_X );
|
(long)( GraalFigureMbk->YAB2 / GRAAL_SCALE_X ) );
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|
|
@ -360,10 +360,10 @@ void GraalPeekInstance( Rectangle, LambdaX1, LambdaY1, LambdaX2, LambdaY2 )
|
||||||
InstanceMbk->TRANSF
|
InstanceMbk->TRANSF
|
||||||
);
|
);
|
||||||
|
|
||||||
Xab1 = RfmRoundLow( Xab1 * GRAAL_RDS_LAMBDA / GRAAL_SCALE_X );
|
Xab1 = RfmRoundLow( (long)( Xab1 * GRAAL_RDS_LAMBDA / GRAAL_SCALE_X ) );
|
||||||
Yab1 = RfmRoundLow( Yab1 * GRAAL_RDS_LAMBDA / GRAAL_SCALE_X );
|
Yab1 = RfmRoundLow( (long)( Yab1 * GRAAL_RDS_LAMBDA / GRAAL_SCALE_X ) );
|
||||||
Xab2 = RfmRoundHigh( Xab2 * GRAAL_RDS_LAMBDA / GRAAL_SCALE_X );
|
Xab2 = RfmRoundHigh( (long)( Xab2 * GRAAL_RDS_LAMBDA / GRAAL_SCALE_X ) );
|
||||||
Yab2 = RfmRoundHigh( Yab2 * GRAAL_RDS_LAMBDA / GRAAL_SCALE_X );
|
Yab2 = RfmRoundHigh( (long)( Yab2 * GRAAL_RDS_LAMBDA / GRAAL_SCALE_X ) );
|
||||||
|
|
||||||
if ( Xab1 > Xab2 ) { Swap = Xab1; Xab1 = Xab2; Xab2 = Swap; }
|
if ( Xab1 > Xab2 ) { Swap = Xab1; Xab1 = Xab2; Xab2 = Swap; }
|
||||||
if ( Yab1 > Yab2 ) { Swap = Yab1; Yab1 = Yab2; Yab2 = Swap; }
|
if ( Yab1 > Yab2 ) { Swap = Yab1; Yab1 = Yab2; Yab2 = Swap; }
|
||||||
|
|
|
@ -170,10 +170,10 @@
|
||||||
extern char *GRAAL_SEGMENT_NAME_TABLE[ MBK_MAX_LAYER ][ 3 ];
|
extern char *GRAAL_SEGMENT_NAME_TABLE[ MBK_MAX_LAYER ][ 3 ];
|
||||||
extern char *GRAAL_TRANSISTOR_NAME_TABLE[ MBK_MAX_LAYER ][ 3 ];
|
extern char *GRAAL_TRANSISTOR_NAME_TABLE[ MBK_MAX_LAYER ][ 3 ];
|
||||||
extern char *GRAAL_CONNECTOR_NAME_TABLE[ MBK_MAX_LAYER ][ 3 ];
|
extern char *GRAAL_CONNECTOR_NAME_TABLE[ MBK_MAX_LAYER ][ 3 ];
|
||||||
extern long GRAAL_SEGMENT_VALUE_TABLE[ MBK_MAX_LAYER ][ 2 ];
|
extern float GRAAL_SEGMENT_VALUE_TABLE[ MBK_MAX_LAYER ][ 2 ];
|
||||||
extern char *GRAAL_VIA_NAME_TABLE[ MBK_MAX_VIA ][ 3 ];
|
extern char *GRAAL_VIA_NAME_TABLE[ MBK_MAX_VIA ][ 3 ];
|
||||||
extern char *GRAAL_BIGVIA_NAME_TABLE[ MBK_MAX_VIA ][ 3 ];
|
extern char *GRAAL_BIGVIA_NAME_TABLE[ MBK_MAX_VIA ][ 3 ];
|
||||||
extern long GRAAL_BIGVIA_VALUE_TABLE[ MBK_MAX_LAYER ][ 1 ];
|
extern float GRAAL_BIGVIA_VALUE_TABLE[ MBK_MAX_LAYER ][ 1 ];
|
||||||
extern char *GRAAL_REFERENCE_NAME_TABLE[ MBK_MAX_REFERENCE ][ 3 ];
|
extern char *GRAAL_REFERENCE_NAME_TABLE[ MBK_MAX_REFERENCE ][ 3 ];
|
||||||
extern char *GRAAL_ORIENT_NAME_TABLE[ MBK_MAX_ORIENT ][ 3 ];
|
extern char *GRAAL_ORIENT_NAME_TABLE[ MBK_MAX_ORIENT ][ 3 ];
|
||||||
extern char *GRAAL_SYMMETRY_NAME_TABLE[ MBK_MAX_SYMMETRY ][ 3 ];
|
extern char *GRAAL_SYMMETRY_NAME_TABLE[ MBK_MAX_SYMMETRY ][ 3 ];
|
||||||
|
@ -189,7 +189,7 @@
|
||||||
extern float GRAAL_LOWER_SEGMENT_STEP;
|
extern float GRAAL_LOWER_SEGMENT_STEP;
|
||||||
extern float GRAAL_LOWER_CONNECTOR_STEP;
|
extern float GRAAL_LOWER_CONNECTOR_STEP;
|
||||||
extern long GRAAL_RDS_LAMBDA;
|
extern long GRAAL_RDS_LAMBDA;
|
||||||
extern long GRAAL_SCALE_X;
|
extern float GRAAL_SCALE_X;
|
||||||
extern long GRAAL_SCALE;
|
extern long GRAAL_SCALE;
|
||||||
extern char GRAAL_XOR_CURSOR;
|
extern char GRAAL_XOR_CURSOR;
|
||||||
|
|
||||||
|
|
|
@ -74,7 +74,7 @@
|
||||||
char *GRAAL_TECHNO_NAME = (char *)NULL;
|
char *GRAAL_TECHNO_NAME = (char *)NULL;
|
||||||
|
|
||||||
long GRAAL_RDS_LAMBDA = 0;
|
long GRAAL_RDS_LAMBDA = 0;
|
||||||
long GRAAL_SCALE_X = 0;
|
float GRAAL_SCALE_X = 0.0;
|
||||||
long GRAAL_SCALE = 1;
|
long GRAAL_SCALE = 1;
|
||||||
|
|
||||||
/*------------------------------------------------------------\
|
/*------------------------------------------------------------\
|
||||||
|
@ -100,8 +100,8 @@
|
||||||
char *GRAAL_CURSOR_COLOR_NAME;
|
char *GRAAL_CURSOR_COLOR_NAME;
|
||||||
int GRAAL_RDS_LAYER_PATTERN_TABLE[ RDS_ALL_LAYER ];
|
int GRAAL_RDS_LAYER_PATTERN_TABLE[ RDS_ALL_LAYER ];
|
||||||
|
|
||||||
long GRAAL_SEGMENT_VALUE_TABLE[ MBK_MAX_LAYER ][ 2 ];
|
float GRAAL_SEGMENT_VALUE_TABLE[ MBK_MAX_LAYER ][ 2 ];
|
||||||
long GRAAL_BIGVIA_VALUE_TABLE[ MBK_MAX_LAYER ][ 1 ];
|
float GRAAL_BIGVIA_VALUE_TABLE[ MBK_MAX_LAYER ][ 1 ];
|
||||||
long GRAAL_PEEK_BOUND;
|
long GRAAL_PEEK_BOUND;
|
||||||
long GRAAL_CURSOR_SIZE;
|
long GRAAL_CURSOR_SIZE;
|
||||||
|
|
||||||
|
@ -884,7 +884,7 @@ void GsbReadSegmentValue()
|
||||||
else
|
else
|
||||||
if ( GET_SEGMENT_LAYER( Layer, 0 ) != RDS_SEGMENT_EMPTY )
|
if ( GET_SEGMENT_LAYER( Layer, 0 ) != RDS_SEGMENT_EMPTY )
|
||||||
{
|
{
|
||||||
GRAAL_SEGMENT_VALUE_TABLE [ Layer ][ Field ] = GsbGetStringValue( FirstWord );
|
GRAAL_SEGMENT_VALUE_TABLE [ Layer ][ Field ] = GsbGetStringFloat( FirstWord );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -953,7 +953,7 @@ void GsbReadBigViaValue()
|
||||||
if ( ( GET_BIGVIA_HOLE_LAYER( Layer, 0 ) != RDS_BIGVIA_HOLE_EMPTY ) ||
|
if ( ( GET_BIGVIA_HOLE_LAYER( Layer, 0 ) != RDS_BIGVIA_HOLE_EMPTY ) ||
|
||||||
( GET_TURNVIA_LAYER( Layer, 0 ) != RDS_TURNVIA_EMPTY ) )
|
( GET_TURNVIA_LAYER( Layer, 0 ) != RDS_TURNVIA_EMPTY ) )
|
||||||
{
|
{
|
||||||
GRAAL_BIGVIA_VALUE_TABLE [ Layer ][ 0 ] = GsbGetStringValue( FirstWord );
|
GRAAL_BIGVIA_VALUE_TABLE [ Layer ][ 0 ] = GsbGetStringFloat( FirstWord );
|
||||||
}
|
}
|
||||||
|
|
||||||
FirstWord = GsbGetNextWord( 0, 1 );
|
FirstWord = GsbGetNextWord( 0, 1 );
|
||||||
|
@ -1632,7 +1632,7 @@ void GraalLoadParameters()
|
||||||
}
|
}
|
||||||
|
|
||||||
GRAAL_RDS_LAMBDA = RDS_LAMBDA / GRAAL_SCALE;
|
GRAAL_RDS_LAMBDA = RDS_LAMBDA / GRAAL_SCALE;
|
||||||
GRAAL_SCALE_X = SCALE_X / GRAAL_SCALE;
|
GRAAL_SCALE_X = (float)SCALE_X / (float)GRAAL_SCALE;
|
||||||
|
|
||||||
if ( ! KeywordDefined )
|
if ( ! KeywordDefined )
|
||||||
{
|
{
|
||||||
|
@ -1767,7 +1767,7 @@ void GraalViewParameters()
|
||||||
|
|
||||||
for ( Layer = 0; Layer < MBK_MAX_LAYER; Layer++ )
|
for ( Layer = 0; Layer < MBK_MAX_LAYER; Layer++ )
|
||||||
{
|
{
|
||||||
fprintf( stdout, "\nLayer:%d %s %s %s %d %d",
|
fprintf( stdout, "\nLayer:%d %s %s %s %e %e",
|
||||||
Layer,
|
Layer,
|
||||||
GRAAL_SEGMENT_NAME_TABLE[ Layer ][0],
|
GRAAL_SEGMENT_NAME_TABLE[ Layer ][0],
|
||||||
GRAAL_SEGMENT_NAME_TABLE[ Layer ][1],
|
GRAAL_SEGMENT_NAME_TABLE[ Layer ][1],
|
||||||
|
|
Loading…
Reference in New Issue