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;