!***************************************************************
! PROFLIBHND       / 2002-03-22 / Vertex Systems
!***************************************************************
!
#CODETOPARAMS#
!
!debug ./JotainCP
Code$= get(CODE)

Type$=""
Width$= ""
Height$= ""
Angle$= ""
!
L= len(Code$)
SP= findstr(Code$," ")
if SP > 1 && SP < L then 
  TmpType$=Code$[1,SP-1]
  A$= Code$[SP+1,0]
  L= len(A$)
  X= findstr(A$,"x")
  if X<L then 
    B$=A$[X+1,0]
  endif
  SP= findstr(B$," ")
  if X > 1 && X < L && SP > 1 && SP < L then 
    SP=SP+X
    Type$=TmpType$
    Width$= A$[1,X-1]
    Height$= A$[X+1,SP-1]
    Angle$= A$[SP+1,0]
  endif
endif

set "TYPE" Type$
set "WIDTH" Width$
set "HEIGHT" Height$
set "ANGLE" Angle$
!
#CODETOPARAMS#
!
#PARAMSTOCODE#
!debug ./JotainPC
!
Type$= get(TYPE)
Width$= get(WIDTH)
Height$= get(HEIGHT)
Angle$= get(ANGLE)
!
! Convert 1:3 -> 18+90
L=len(Angle$)
SP= findstr(Angle$,":")
if SP > 1 && SP < L then
  Tmp$=Angle$[1,SP-1]
  Y=Tmp$
  Tmp$=Angle$[SP+1,0]
  X=Tmp$
  A=atan2(Y,X)+90
  if A>360 then
    A=A-360
  endif
else
  A=Angle$
endif

Angle$= A:N?.1
!
!
Code$= Type$&" "&Width$&"x"&Height$&" "&Angle$
set "CODE" Code$
!
#PARAMSTOCODE#
!
#ADDNEWCODE#
!debug ./JotainADD
!
Dir$= get("LIBPATH")
Code$= get(CODE)
!
call $DIR_THIS/proflibhnd CODETOPARAMS
!
Type$  =get("TYPE") 
Width$ =get("WIDTH")
Height$=get("HEIGHT") 
Angle$ =get("ANGLE")
!
Shape$="simple.prg"
if cmp(Type$,"perus")  != 0 then Shape$="simple.prg"
if cmp(Type$,"viistetty") != 0 then Shape$="komplex.prg"

W= Width$
H= Height$
A= W*H*0.01
A$= A:N?.3
!
IdD= 1
IdP= 2
!
PatHeight$= Dir$&"d_PROFDATA"
dbopen(IdD) PatHeight$,1
PatHeight$= Dir$&"d_PROFPAR"
dbopen(IdP) PatHeight$,1
!
if dbvalid(IdD) < 1  || dbvalid(IdP) < 1 then
  dbclose(IdD)
  dbclose(IdP)
  exit
endif
!
RidP= dbaddrow(IdP,1,"CODE",Code$)
dbputf(IdP) RidP,"TYPE",Type$
dbputf(IdP) RidP,"WIDTH",Width$
dbputf(IdP) RidP,"HEIGHT",Height$
dbputf(IdP) RidP,"ANGLE",Angle$
!
RidD= dbaddrow(IdD,1,"CODE",Code$)
dbputf(IdD) RidD,"ACCURATE",Shape$
dbputf(IdD) RidD,"COARSE",Shape$
dbputf(IdD) RidD,"PUNIT","10"
!
if RidP < 0 || RidD < 0 then 
  dbdelrow(IdD) RidD
  dbdelrow(IdP) RidP
else
  set RETURN "1"
endif
!
dbclose(IdD)
dbclose(IdP)
!
#ADDNEWCODE#
!