home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
DOS/V Power Report 1997 March
/
VPR9703A.ISO
/
VPR_DATA
/
DOGA
/
SOURCES
/
POLYEDIT.LZH
/
MACRO
/
BUTTON.M
< prev
next >
Wrap
Text File
|
1996-07-24
|
10KB
|
303 lines
var private ue_ya = "FFFFFE7FFDBFFBDFF7EFEFF7C3C3FBDFFBDFFBDFFBDFFBDFFBDFFBDFF81FFFFF";
var private hida_ya = "FFFFFFFFFDFFF9FFF5FFEC01DFFDBFFDBFFDDFFDEC01F5FFF9FFFDFFFFFFFFFF";
var private migi_ya = "FFFFFFFFFFBFFF9FFFAF8037BFFBBFFDBFFDBFFB8037FFAFFF9FFFBFFFFFFFFF";
var private shita_ya = "FFFFF81FFBDFFBDFFBDFFBDFFBDFFBDFFBDFC3C3EFF7F7EFFBDFFDBFFE7FFFFF";
var private ue_rot = "E7FFE1FFEC7FCF1FDFC787E7FBDFF9DFFDCFFDEFFCE7FEF7FEF7FE07FFFFFFFF";
var private hida_rot = "FFFFFBFFE3FF0BFF3BFFBCFF9E1FDFC3CFFBEFFBE47BF31BF3C3FFFFFFFFFFFF";
var private migi_rot = "FFFFFFDFFFC7FFD0FFDCFF3DF879C3FBDFF3DFF7DE27D8CFC3CFFFFFFFFFFFFF";
var private shita_rot = "FFFFFFFFFE07FEF7FEF7FCE7FDEFFDCFF9DFFBDF87E7DFC7CF1FEC7FE1FFE7FF";
var private hida_turn = "FE1FC1DFCFDFF7DFEFEFEFEFDF2FDECFDEFFDEFFDF03EFFBEFFBF7FBF9FBFE03";
var private migi_turn = "F87FFB83FBF3FBEFF7F7F7F7F4FBF37BFF7BFF7BC0FBDFF7DFF7DFEFDF9FC07F";
var private back_ya = "FFFFFE7FFDBFFBDFF7EFEFF7C183FDBFFDBFFBDFFBDFFBDFF7EFF7EFF00FFFFF";
var private front_ya = "FFFFFC3FFDBFFDBFFBDFFBDFFBDFF7EFF7EFC7E3EFF7F7EFFBDFFDBFFE7FFFFF";
var private zoomup = "03C07BDE77EE7BDE5C3A2BD4F7EFF7EFF7EFF7EF2BD45C3A7BDE77EE7BDE03C0";
var private zoomdown = "DFFBA99575AEBDBDDC3BBDBD8181F7EFF7EF8181BDBDDC3BBDBD75AEA995DFFB";
var private nearver = "EFF8EFF8EFF8E807EDF7EEF7EDF7EBF7EDD7EEA7EF77C7FF0000C7FFEFFFEFFF";
var private reversex = "FEFFFE7F003F001FFFFF001F801FCFFFEFFFFF88FFDDFFEBFFF7FFEBFFDDFF88";
var private reversey = "FEFFFE7F003F001FFFFF001F801FCFFFEFFFFF88FFDDFFEBFFF7FFF7FFF7FFE3";
var private reversez = "FEFFFE7F003F001FFFFF001F801FCFFFEFFFFFC1FFDDFFFBFFF7FFEFFFDDFFC1";
var private fit = "FFFFFFFFFFFF8441BEF7BEF7BEF78EF7BEF7BEF7BEF7BEF7BC63FFFFFFFFFFFF";
var private center = "FEFFFEFFFEFFFEFFFEFFFEFFFEFFFC7F0000FC7FFEFFFEFFFEFFFEFFFEFFFEFF";
var private save = "DFFFAEFF74FFBAFFDEFFEEFFDE80809EFF9EF800F801F820F870F820F800F800";
var private load = "001F03DF03DF001F043F0E1F041F003F005F00AEFF74FFBAFFDEFFEEFFDEFF80";
var private in1 = "DFFFAEFF74FFBAFFDEFFEE80DEFE80EEFFCEFDEEFDEEFDEEFDEEFDEEFDFEFC00";
var private in2 = "DFFFAEFF74FFBAFFDEFFEE80DEFE80CEFFB6FDF6FDEEFDDEFDBEFD86FDFEFC00";
var private in3 = "DFFFAEFF74FFBAFFDEFFEE80DEFE80CEFFB6FDF6FDCEFDF6FDB6FDCEFDFEFC00";
var private out1 = "003F7FBF7BBF73BF7BBF7BBF7BBF7BBF7BDF7FAE0174FFBAFFDEFFEEFFDEFF80";
var private out2 = "003F7FBF73BF6DBF7DBF7BBF77BF6FBF61DF7FAE0174FFBAFFDEFFEEFFDEFF80";
var private out3 = "003F7FBF73BF6DBF7DBF73BF7DBF6DBF73DF7FAE0174FFBAFFDEFFEEFFDEFF80";
//var private zoomup = "01FF7DFF7C017DFD7DFD7DFD01FDDEFDDF7DDFB5DFD5DFE5DF85DFFDC001FFFF";
//var private zoomdown = "00037FFB5FFB6FFB76FB7AFB7CFB70FB7FFB7F817FBD7FBD7FBD003DFF81FFFF";
//var private v1 = "FFEFFFEFFFF3FFF3FFFCFC3FFF3FFEBFFDBFFBFFF7FFEFFFFFFF3FFF3FFFFFFF";
//var private v2 = "FFFF80BDBEDB80FBBE9080D5FFD50055AFD5885DAB458AD5ACD708D7E658FFFF";
//var private v3 = "FFFFFFFFFFFFFFFFFFFFFC7FF83FF83FF83FFC7FFFFFFFFFFFFFFFFFFFFFFFFF";
function Hold_Save( number )
{
var tempdir, temp;
var sel[3];
var i, j;
var obj;
tempdir = getenv( "temp" );
if( tempdir == "" )
tempdir = getenv( "TEMP" );
if( substr( tempdir, -1 ) != "\\" )
tempdir = tempdir+"\\";
sel[0] = Select();
SelectAll( TRUE );
sel[1] = Select();
PolyInvisible( FALSE );
SelectAll( TRUE );
sel[2] = Select();
obj = ObjAppend( "_temp"+number, tempdir+"_temp"+number+".suf" );
temp = WriteFile( obj );
if( temp == FALSE )
{
Warning();
Message( "ファイルのセーブに失敗したようです。\n"
+"ディスクの容量が足りない可能性が高いですが、\n"
+"それ以外の理由かもしれません。");
Select( sel[1] );
PolyInvisible( invisible_flag );
Select( sel[0] );
ObjDelete( obj );
return FALSE;
}
ObjDelete( obj );
hold_objnumber[number] = Objects();
hold_invisibleflag[number] = invisible_flag;
hold_sel[number][0] = sel[0];
hold_sel[number][1] = sel[1];
for( i = 0; i< hold_objnumber[number]; i++ )
{
SelectObj( i, TRUE, SELECT_UPDATE );
hold_objsel[number][i] = Select();
hold_objname[number][i] = ObjName( i );
hold_objfile[number][i] = ObjFile( i );
hold_objflag[number][i] = ObjEdit( i );
}
Select( sel[1] );
PolyInvisible( invisible_flag );
Select( sel[0] );
return TRUE;
}
function Hold_Load( number )
{
var tempdir;
var add_sel, prev_sel;
var i, obj;
tempdir = getenv( "temp" );
if( tempdir == "" )
tempdir = getenv( "TEMP" );
if( substr( tempdir, -1 ) != "\\" )
tempdir = tempdir+"\\";
prev_sel = Select();
SelectAll( FALSE, SELECT_UPDATE );
i = ReadFile( tempdir+"_temp"+number+".suf" );
if( i < 0 )
{
Message( "ファイルの読み込みに失敗しました" );
Select( prev_sel );
return;
}
PolyInvisible( FALSE );
SelectAll( TRUE, SELECT_XOR );
PolyDelete();
while( Objects() > 1 )
ObjDelete( 0 );
for( i = 0; i< hold_objnumber[number]; i++ )
{
obj = ObjAppend( hold_objname[number][i], hold_objfile[number][i] );
Select(hold_objsel[number][i]);
ObjChange( obj );
ObjEdit( obj ,hold_objflag[number][i] );
}
if( ObjDelete( 0 ) == FALSE )
Warning();
Select( hold_sel[number][1] );
invisible_flag = hold_invisibleflag[number];
PolyInvisible( invisible_flag );
Select( hold_sel[number][0] );
UpdateAll();
quit_flag = TRUE;
}
function ReverseXYZ( type )
{
var temp;
temp = Position(Cursor());
if( type == 1 )
Cursor( vector(-vx(temp), vy(temp), vz(temp)));
else if( type == 2 )
Cursor( vector(vx(temp), -vy(temp), vz(temp)));
else
Cursor( vector(vx(temp), vy(temp), -vz(temp)));
}
function private FuncMoveUpper()
PersMove( 0, 0, -100 );
function private FuncMoveLeft()
PersMove( 0, -100, 0 );
function private FuncMoveRight()
PersMove( 0, 100, 0 );
function private FuncMoveLower()
PersMove( 0, 0, 100 );
function private FuncRollUpper()
PersRot( 0, -10, 0 );
function private FuncRollLeft()
PersRot( 0, 0, 10 );
function private FuncRollRight()
PersRot( 0, 0, -10 );
function private FuncRollLower()
PersRot( 0, 10, 0 );
function private FuncTurnLeft()
PersRot( -10, 0, 0 );
function private FuncTurnRight()
PersRot( 10, 0, 0 );
function private FuncMoveBack()
PersMove( -100, 0, 0 );
function private FuncMoveFront()
PersMove( 100, 0, 0 );
function private FuncZoomUp()
ZoomUp();
function private FuncZoomDown()
ZoomDown();
function private FuncNearVertex()
_Vertex();
function private FuncReverseX()
ReverseXYZ( 1 );
function private FuncReverseY()
ReverseXYZ( 2 );
function private FuncReverseZ()
ReverseXYZ( 3 );
function private FuncFit()
Fit();
function private FuncCenter()
DispCenter();
function private FuncHoldSave0()
{
var temp;
temp = Hold_Save( 0 );
if( temp == TRUE )
{
ButtonEnable( load0_id, BUTTON_ENABLE );
UpdateButton( load0_id );
}
}
function private FuncHoldLoad0()
Hold_Load( 0 );
function private FuncHoldSave1()
{
var temp;
temp = Hold_Save( 1 );
if( temp == TRUE )
{
ButtonEnable( load1_id, BUTTON_ENABLE );
UpdateButton( load1_id );
}
}
function private FuncHoldLoad1()
Hold_Load( 1 );
function private FuncHoldSave2()
{
var temp;
temp = Hold_Save( 2 );
if( temp == TRUE )
{
ButtonEnable( load2_id, BUTTON_ENABLE );
UpdateButton( load2_id );
}
}
function private FuncHoldLoad2()
Hold_Load( 2 );
function MakeButton()
{
var const W0 = 0;
var const W1 = BUTTON_WIDTH/2;
var const W2 = BUTTON_WIDTH;
var const M = BUTTON_ENABLE | BUTTON_REPEAT;
moveupper_id = CreateButton( W1, BUTTON_HEIGHT* 0 ,ue_ya, FuncMoveUpper, M);
moveleft_id = CreateButton( W0, BUTTON_HEIGHT* 2/2 ,hida_ya, FuncMoveLeft, M);
moveright_id = CreateButton( W2, BUTTON_HEIGHT* 2/2 ,migi_ya, FuncMoveRight, M);
movelower_id = CreateButton( W1, BUTTON_HEIGHT* 4/2 ,shita_ya, FuncMoveLower, M);
rotupper_id = CreateButton( W1, BUTTON_HEIGHT* 7/2 ,ue_rot, FuncRollUpper, M);
rotleft_id = CreateButton( W0, BUTTON_HEIGHT* 9/2 ,hida_rot, FuncRollLeft, M);
rotright_id = CreateButton( W2, BUTTON_HEIGHT* 9/2 ,migi_rot, FuncRollRight, M);
rotlower_id = CreateButton( W1, BUTTON_HEIGHT*11/2 ,shita_rot, FuncRollLower, M);
turnleft_id = CreateButton( W0, BUTTON_HEIGHT*14/2 ,hida_turn, FuncTurnLeft, M);
turnright_id = CreateButton( W2, BUTTON_HEIGHT*14/2 ,migi_turn, FuncTurnRight, M);
moveback_id = CreateButton( W1, BUTTON_HEIGHT*17/2 ,back_ya, FuncMoveBack, M);
movefront_id = CreateButton( W1, BUTTON_HEIGHT*19/2 ,front_ya, FuncMoveFront, M);
zoomup_id = CreateButton( W0, BUTTON_HEIGHT*22/2 ,zoomup, FuncZoomUp);
zoomdown_id = CreateButton( W2, BUTTON_HEIGHT*22/2 ,zoomdown, FuncZoomDown);
fit_id = CreateButton( W0, BUTTON_HEIGHT*24/2 ,fit, FuncFit);
center_id = CreateButton( W2, BUTTON_HEIGHT*24/2 ,center, FuncCenter);
nearvertex_id = CreateButton( W0, BUTTON_HEIGHT*27/2 ,nearver, FuncNearVertex);
reversex_id = CreateButton( W2, BUTTON_HEIGHT*27/2 ,reversex, FuncReverseX);
reversey_id = CreateButton( W0, BUTTON_HEIGHT*29/2 ,reversey, FuncReverseY);
reversez_id = CreateButton( W2, BUTTON_HEIGHT*29/2 ,reversez, FuncReverseZ);
if(( MACHINE == "WINDOWS" ) & ( EXPERT != TRUE ))
allsave_id = CreateButton( W0, BUTTON_HEIGHT*32/2 ,save, SaveAll );
else
allsave_id = CreateButton( W0, BUTTON_HEIGHT*32/2 ,save, SaveAllSuf );
load_id = CreateButton( W2, BUTTON_HEIGHT*32/2 ,load, Load );
save0_id = CreateButton( W0, BUTTON_HEIGHT*35/2 ,in1, FuncHoldSave0 );
load0_id = CreateButton( W2, BUTTON_HEIGHT*35/2 ,out1, FuncHoldLoad0 );
save1_id = CreateButton( W0, BUTTON_HEIGHT*37/2 ,in2, FuncHoldSave1 );
load1_id = CreateButton( W2, BUTTON_HEIGHT*37/2 ,out2, FuncHoldLoad1 );
save2_id = CreateButton( W0, BUTTON_HEIGHT*39/2 ,in3, FuncHoldSave2 );
load2_id = CreateButton( W2, BUTTON_HEIGHT*39/2 ,out3, FuncHoldLoad2 );
ButtonEnable( load0_id, BUTTON_DISABLE );
ButtonEnable( load1_id, BUTTON_DISABLE );
ButtonEnable( load2_id, BUTTON_DISABLE );
UpdateButton();
// CreateButton(0, BUTTON_HEIGHT*17/2,
// "5555aaaa5555aaaa5555aaaa5555aaaa5555aaaa5555aaaa5555aaaa5555aaaa",
// FuncRollLower);
// UpdateAll();
}