knotXW.sa
Generated by gen_html_sa_files from ICSI. Contact gomes@icsi.berkeley.edu for details
-- Copyright (C) 1996 Kouji KODAMA
-- 1996/10
-- 1996/10 X Window system interface. Kouji KODAMA
-- Interface to knotXW.c
external C class KNOTXW is
endprogram is
-- Exit this program.
MAIN::endprogram;
end;
repaint is
-- repaint window for Expose event
KNOTX::repaint;
end;
TrackEventM(event,button,mouseX,mouseY:INT) is
KNOTX::TrackEventK(event,button,mouseX,mouseY);
end;
EditSelectM(select:INT):INT is
return KNOTX::EditSelectK(select);
end;
EffectSelectM(select:INT):INT is
return KNOTX::EffectSelectK(select);
end;
FilesSelectM(select:INT):INT is
return KNOTX::FilesSelectK(select);
end;
InvSelectM(select:INT):INT is
return KNOTX::InvSelectK(select);
end;
OtherSelectM(select:INT):INT is
return KNOTX::OtherSelectK(select);
end;
--------- read/write -------------------
DrawKnotPic(width, height, margin, scalingMode:INT) is
DRAWKNOT_TEX_ALG::DrawKnotPic(K::Knot,width,height,margin,scalingMode.card,DRAW_ALG::smoothDraw,2);
end;
NDataStr2Knot(str:REFERENCE):BOOL is
wordStr:STR:=STR::create_from_external_string(str);
res:BOOL:=NDATA_CNV::NDataStr2Knot(wordStr,inout K::Knot);
if ~res then K::Knot.NoCompo0; end;
return true;
end;
Knot2NDataStr(out str:REFERENCE):BOOL is
wordStr:STR:=#;
res:BOOL:=NDATA_CNV::Knot2NDataStr(K::Knot,out wordStr);
str:=wordStr.array_ptr;
return res;
end;
shared packBraid:BOOL:=true;
shared closeBraid:BOOL:=true;
is_packBraid:BOOL is
return packBraid;
end;
spackBraid(p:INT) is
packBraid:=(p.is_zero.not);
end;
is_closeBraid:BOOL is
return closeBraid;
end;
scloseBraid(p:INT) is
closeBraid:=(p.is_zero.not);
end;
BraidWord2RBraidWord(str1:REFERENCE,out str2:REFERENCE):BOOL is
wordStr:STR:=STR::create_from_external_string(str1);
reply:BOOL:=BRAID_CNV::BraidWord2RBraidWord(inout wordStr,closeBraid);
str2:=wordStr.array_ptr;
return true;
end;
BraidWord2RArtinNormalForm(str1:REFERENCE,out str2:REFERENCE):BOOL is
wordStr:STR:=STR::create_from_external_string(str1);
reply:BOOL:=BRAID_CNV::BraidWord2RArtinNormalForm(inout wordStr);
str2:=wordStr.array_ptr;
return true;
end;
Knot2BraidWord(out str:REFERENCE):BOOL is
wordStr:STR:=#;
res:BOOL:=BRAID_CNV::Knot2BraidWord(K::Knot,out wordStr);
str:=wordStr.array_ptr;
return res;
end;
BraidWord2Knot(str:REFERENCE):BOOL is
wordStr:STR:=STR::create_from_external_string(str);
res:BOOL:=BRAID_CNV::BraidWord2Knot(wordStr,inout K::Knot,packBraid,closeBraid);
if ~res then K::Knot.NoCompo0; end;
return true;
end;
TorusStr2Knot(str:REFERENCE):BOOL is
wordStr:STR:=STR::create_from_external_string(str);
res:BOOL:=TORUS_CNV::Torus2Knot(wordStr,inout K::Knot);
if ~res then K::Knot.NoCompo0; end;
return true;
end;
TwoBridgeStr2Knot(str:REFERENCE):BOOL is
wordStr:STR:=STR::create_from_external_string(str);
res:BOOL:=TWOBRIDGE_CNV::TwoBridge2Knot(wordStr,inout K::Knot);
if ~res then K::Knot.NoCompo0; end;
return true;
end;
PretzelStr2Knot(str:REFERENCE):BOOL is
wordStr:STR:=STR::create_from_external_string(str);
res:BOOL:=PRETZEL_CNV::Pretzel2Knot(wordStr,inout K::Knot);
if ~res then K::Knot.NoCompo0; end;
return true;
end;
---- invariants
VPara(n:INT) is
-- Jones poly. of n-parallel link.
KNOTX::VPara(n);
end;
RepSearch(n,form,branchind,covlk,h1b,h1u,knotgrp,twistAlex,covDistY,covDistBr,covDistLk,covDistH1B,covDistH1U:INT) is
-- group representation
KNOTX::RepSearch(n,form,branchind,covlk,h1b,h1u,knotgrp,twistAlex,
covDistY,covDistBr,covDistLk,
covDistH1B,covDistH1U);
end;
RepSL2pSearch(n,form,twistAlex:INT) is
-- group representation
KNOTX::RepSL2pSearch(n,form.card,twistAlex.card);
end;
------- file read/write -------
LogIsEnabled:BOOL is
return LOGOUT::is_enabled; -- check if log is_enabled from knotXW.c.
end;
ReadKnotN(str:REFERENCE):BOOL is
name:STR:=STR::create_from_external_string(str);
res:BOOL:=KNOTFIO::ReadKnotN(out K::Knot,name);
if ~res then K::Knot.NoCompo0; end;
return res;
end;
WriteKnotN(str:REFERENCE):BOOL is
name:STR:=STR::create_from_external_string(str);
return KNOTFIO::WriteKnotN(K::Knot,name);
end;
WriteKnotNVer1(str:REFERENCE):BOOL is
name:STR:=STR::create_from_external_string(str);
return KNOTFIO::WriteKnotNVer1(K::Knot,name);
end;
WriteBraidN(str:REFERENCE):BOOL is
name:STR:=STR::create_from_external_string(str);
return KNOTFIO::WriteBraidN(K::Knot,name);
end;
WriteNDataN(str:REFERENCE):BOOL is
name::=STR::create_from_external_string(str);
return KNOTFIO::WriteNDataN(K::Knot,name);
end;
GraphWidth:INT;
GraphHeight:INT;
WindowSw(s:INT); --context switch for Draw.1:screen, 0:pixel.
-- knotXProc(argc:INT,argv:C_PTR);
knotXProc(argc:CARD,argv:REFERENCE);
-- X main loop. Use as KNOTXW::knotXProc(argv.size, argv.array_ptr);
FlushPixel:INT; -- copy from pixel to window. return window sw.
DrawLine(x1,y1,x2,y2,palet:INT);
DrawCircle(x,y,r,palet:INT, fill:BOOL);
DrawPoint(x,y,palet:INT);
ClearWindow:INT; -- return window sw.
end;
class TEST_KNOTXW
class TEST_KNOTXW is
inits is
--- polynomial --
POLYS_INTI::init;
POLYM_INTI::init;
-- knot inout --
VERTEXC::setShareds;
K::Knot:=#KNOT; K::Knot.NoCompo0;
end;
main(argv:ARRAY{STR}) is
inits;
KNOTXW::knotXProc(argv.size, argv.array_ptr);
end;
end;