Skip to content

Commit 1a3ea1d

Browse files
committed
add new Fortran bindings
1 parent dc6eebc commit 1a3ea1d

11 files changed

Lines changed: 2896 additions & 13 deletions

File tree

CHANGELOG

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
1919
* Add C bindings for annotation text
2020
* Add support for transparency, extension
2121
* Add C bindings for input devices
22+
* Add Fortran bindings
2223

2324
### Changed
2425
* Fixed typos in various headers

src/include/phigs/phigsf77.h

Lines changed: 152 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ C *****************************************************************************
22
C * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER
33
C *
44
C * This file is part of Open PHIGS
5-
C * Copyright (C) 2014 Surplus Users Ham Society
5+
C * Copyright (C) 2022-2023 CERN
66
C *
77
C * Open PHIGS is free software: you can redistribute it and/or modify
88
C * it under the terms of the GNU Lesser General Public License as published by
@@ -18,7 +18,155 @@ C * You should have received a copy of the GNU Lesser General Public License
1818
C * along with Open PHIGS. If not, see <http://www.gnu.org/licenses/>.
1919
C *****************************************************************************
2020

21-
C ---- Linetype ----
22-
INTEGER PLSOLI, PLDASH, PLDOT, PLDASD
23-
PARAMETER(PLSOLI=1, PLDASH=2, PLDOT=3, PLDASD=4)
21+
C Text related
22+
C---- horizontal text alignement
23+
INTEGER PAHNOR, PALEFT, PACENT, PARITE
24+
PARAMETER (PAHNOR=0, PALEFT=1, PACENT=2, PARITE=3)
2425

26+
C---- vertical text alignement
27+
INTEGER PAVNOR, PATOP, PACAP, PAHALF, PABASE, PABOTT
28+
PARAMETER (PAVNOR=0,PATOP=1,PACAP=2,PAHALF=3,PABASE=4,PABOTT=5)
29+
30+
C---- text path
31+
INTEGER PRIGHT, PLEFT, PUP, PDOWN
32+
PARAMETER (PRIGHT=0, PLEFT=1, PUP=2, PDOWN=3)
33+
34+
C---- text precision
35+
INTEGER PSTRP, PCHARP, PSTRKP
36+
PARAMETER (PSTRP=0, PCHARP=1, PSTRKP=2)
37+
38+
C---- line type
39+
INTEGER PLSOLI, PLDASH, PLDOT, PLDASD
40+
PARAMETER(PLSOLI=1, PLDASH=2, PLDOT=3, PLDASD=4)
41+
42+
C---- marker types
43+
INTEGER PPOINT, PPLUS, PAST, POMARK, PXMARK
44+
PARAMETER (PPOINT=1, PPLUS=2, PAST=3, POMARK=4, PXMARK=5)
45+
46+
C---- interior style
47+
INTEGER PISEMP, PHOLLO, PSOLID, PHATCH
48+
PARAMETER ( PISEMP=0, PHOLLO=1, PSOLID=2, PHATCH=3)
49+
50+
C---- Facet data flags
51+
INTEGER PFNO, PFC, PFN, PFCN
52+
PARAMETER (PFNO=0, PFC=1, PFN=2, PFCN=3)
53+
54+
C---- Edge data flags
55+
INTEGER PENO, PEVF
56+
PARAMETER (PENO=0, PEVF=1)
57+
58+
C---- Vertex data flag
59+
INTEGER PCD, PCDC, PCDN, PCDCN
60+
PARAMETER (PCD=0, PCDC=1, PCDN=2, PCDCN=3)
61+
62+
C---- edit mode
63+
INTEGER PINSRT, PREPLC
64+
PARAMETER (PINSRT=0, PREPLC=1)
65+
66+
C---- element types
67+
INTEGER PELEM_ALL
68+
INTEGER PENIL, PEANS, PERNS, PEFA, PEFA3, PEFAS
69+
INTEGER PEFAS3, PEFAS3D, PESFAS3D, PEPLI, PEPLI3
70+
INTEGER PEPM, PEPM3, PETX, PEII, PEICI, PEIS
71+
INTEGER PEBIS, PEISI, PEBISI, PELCI, PELW, PELT
72+
INTEGER PELI, PEMIND, PEMCI, PEMS, PEMT, PEEI
73+
INTEGER PEECI, PEEDW, PEET, PEEF, PETXI
74+
INTEGER PETXF, PETXTPR, PETXTP, PETXTA, PECH
75+
INTEGER PECE, PECS, PECUPV, PETXCI
76+
INTEGER PEIA, PELMT3, PEGMT3, PEVWI
77+
INTEGER PEES, PELB, PEPI, PEHID, PEICR
78+
INTEGER PEBICR, PELICR, PEMCR, PEECR
79+
INTEGER PETXCR, PELSS, PEISM, PEBISM
80+
INTEGER PEIRE, PEBIRE, PERPR, PEBRPR
81+
INTEGER PEFDM, PEFCM, PENET
82+
83+
PARAMETER (PELEM_ALL=0)
84+
PARAMETER (PENIL=1, PEANS=2, PERNS=3, PEFA=4, PEFA3=5, PEFAS=6)
85+
PARAMETER (PEFAS3=7, PEFAS3D=8, PESFAS3D=9, PEPLI=10, PEPLI3=11)
86+
PARAMETER (PEPM=12, PEPM3=13, PETX=14, PEII=15, PEICI=16, PEIS=17)
87+
PARAMETER (PEBIS=18, PEISI=19, PEBISI=20, PELCI=21, PELW=22,
88+
+ PELT=23)
89+
PARAMETER (PELI=24, PEMIND=25, PEMCI=26, PEMS=27, PEMT=28,
90+
+ PEEI=29)
91+
PARAMETER (PEECI=30, PEEDW=31, PEET=32, PEEF=33, PETXI=34)
92+
PARAMETER (PETXF=35, PETXTPR=36, PETXTP=37, PETXTA=38, PECH=39)
93+
PARAMETER (PECE=40, PECS=41, PECUPV=42, PETXCI=43)
94+
PARAMETER (PEIA=44, PELMT3=45, PEGMT3=46, PEVWI=47)
95+
PARAMETER (PEES=48, PELB=49, PEPI=50, PEHID=51, PEICR=52)
96+
PARAMETER (PEBICR=53, PELICR=54, PEMCR=55, PEECR=56)
97+
PARAMETER (PETXCR=57, PELSS=58, PEISM=59, PEBISM=60)
98+
PARAMETER (PEIRE=61, PEBIRE=62, PERPR=63, PEBRPR=64)
99+
PARAMETER (PEFDM=65, PEFCM=66, PENET=67)
100+
101+
C---- light source stuff
102+
INTEGER PAMB, PDIRE, PPOSI, PSPOT
103+
PARAMETER (PAMB=1, PDIRE=2, PPOSI=3, PSPOT=4)
104+
105+
C---- operating mode
106+
INTEGER PREQU, PSAMPL, PEVENT
107+
PARAMETER (PREQU=0, PSAMPL=1, PEVENT=2)
108+
109+
C---- Echo switch
110+
INTEGER PNECHO, PECHO
111+
PARAMETER (PNECHO=0, PECHO=1)
112+
113+
C----- Input classes
114+
INTEGER PNCLAS,PLOCAT,PSTROK,PVALUA,PCHOIC,PPICK,PSTRIN
115+
PARAMETER (PNCLAS=0,PLOCAT=1,PSTROK=2,PVALUA=3,PCHOIC=4,PPICK=5,
116+
+ PSTRIN=6)
117+
INTEGER PEXPOS, PRSIZE, PENWIN, PEXWIN
118+
PARAMETER (PEXPOS=10,PRSIZE=11,PENWIN=12,PEXWIN=13)
119+
120+
C---- Colour model, Color type
121+
INTEGER PIND, PINDIR, PRGB
122+
PARAMETER (PIND=0, PINDIR=0, PRGB=1)
123+
124+
C---- Search direction
125+
INTEGER PBWD, PFWD
126+
PARAMETER (PBWD=0, PFWD=1)
127+
128+
C---- Reflectance model
129+
INTEGER PNORM , PARM , PADRM , PADSRM
130+
PARAMETER (PNORM=1, PARM=2, PADRM=3, PADSRM=4)
131+
132+
C---- Interior shading
133+
INTEGER PNOIS , PCIS
134+
PARAMETER (PNOIS=1, PCIS=2)
135+
136+
C---- composition
137+
INTEGER PCPRE, PCPOST, PCREPL
138+
PARAMETER ( PCPRE=0, PCPOST=1, PCREPL=2 )
139+
140+
C---- control flags
141+
INTEGER PCURVL, PRQSVL
142+
INTEGER PCONDI, PALWAY
143+
INTEGER PPOTOP, PPOBOT
144+
PARAMETER (PCURVL=0, PRQSVL=1)
145+
PARAMETER (PCONDI=0, PALWAY=1)
146+
PARAMETER (PPOTOP=0, PPOBOT=1)
147+
148+
C---- clipping related
149+
INTEGER PMCREP, PMCINT
150+
PARAMETER (PMCREP=1, PMCINT=2)
151+
INTEGER PNCLIP, PCLIP
152+
PARAMETER (PNCLIP=0, PCLIP=1)
153+
154+
C---- structure status inquiry
155+
INTEGER PNOEXS, PEXIST, PNOEMP
156+
PARAMETER (PNOEXS=0, PEXIST=1, PNOEMP=2)
157+
158+
C---- picking related
159+
INTEGER PNONE, POK, PNPICK, PNCHOI
160+
PARAMETER (PNONE=0, POK=1, PNPICK=2, PNCHOI= 2)
161+
162+
C---- view type parallel or perspective
163+
INTEGER PPARL, PPERS
164+
PARAMETER (PPARL=0, PPERS=1)
165+
166+
C---- search success return codes
167+
INTEGER PFAIL, PSUCC
168+
PARAMETER (PFAIL=0, PSUCC=1 )
169+
170+
C---- choice input
171+
INTEGER POFF, PON, PACT
172+
PARAMETER (POFF=0, PON=1, PACT=2)

src/include/phigs/util/ftn.h

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
*
44
* This file is part of Open PHIGS
55
* Copyright (C) 2014 Surplus Users Ham Society
6+
* (C) 2022-2023 CERN
67
*
78
* Open PHIGS is free software: you can redistribute it and/or modify
89
* it under the terms of the GNU Lesser General Public License as published by
@@ -39,6 +40,9 @@ extern "C" {
3940
#define FTN_REAL_ARRAY(NAME) float NAME[]
4041
#define FTN_REAL_ARRAY_GET(NAME, INDEX) NAME[INDEX]
4142

43+
#define FTN_INTEGER_ARRAY(NAME) int NAME[]
44+
#define FTN_INTEGER_ARRAY_GET(NAME, INDEX) NAME[INDEX]
45+
4246
#define FTN_CHARACTER(NAME) char *NAME_str, \
4347
int NAME_len
4448
#define FTN_CHARACTER_GET(NAME) NAME_str

src/libphigs/CMakeLists.txt

Lines changed: 15 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -8,31 +8,33 @@ SET(P_ARCHIVE_SRCS
88
SET(P_C_BINDING_SRCS
99
c_binding/cb.c
1010
c_binding/cb_ar.c
11-
c_binding/cb.c
12-
c_binding/cb_conf.c
1311
c_binding/cb_el.c
1412
c_binding/cb_lite.c
13+
c_binding/cb_phg.c
14+
c_binding/cb_text.c
15+
c_binding/cb_ws.c
16+
c_binding/cb_conf.c
1517
c_binding/cb_extel.c
1618
c_binding/cb_inp.c
1719
c_binding/cb_pgse.c
18-
c_binding/cb_phg.c
1920
c_binding/cb_str.c
20-
c_binding/cb_text.c
2121
c_binding/cb_tr.c
22-
c_binding/cb_ws.c
2322
c_binding/cb_wst.c
2423
)
2524

2625
SET(P_F_BINDING_SRCS
26+
f_binding/fb_ar.c
2727
f_binding/fb_conf.c
2828
f_binding/fb_el.c
29+
f_binding/fb_extel.c
30+
f_binding/fb_inp.c
31+
f_binding/fb_pgse.c
2932
f_binding/fb_phg.c
3033
f_binding/fb_str.c
34+
f_binding/fb_text.c
35+
f_binding/fb_tr.c
3136
f_binding/fb_ws.c
32-
)
33-
34-
SET(P_CONF_SRCS
35-
conf/ophconf.c
37+
f_binding/fb_wst.c
3638
)
3739

3840
SET(P_CSS_SRCS
@@ -121,6 +123,10 @@ SET(P_ERRORS_SRCS
121123
errors/err_num.c
122124
)
123125

126+
SET(P_CONF_SRCS
127+
conf/ophconf.c
128+
)
129+
124130
SET(P_UTILS_SRCS
125131
utils/hdl.c
126132
utils/psl.c

src/libphigs/f_binding/fb_ar.c

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
/******************************************************************************
2+
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER
3+
*
4+
* This file is part of Open PHIGS
5+
* Copyright (C) 2022-2023 CERN
6+
*
7+
* Open PHIGS is free software: you can redistribute it and/or modify
8+
* it under the terms of the GNU Lesser General Public License as published by
9+
* the Free Software Foundation, either version 2.1 of the License, or
10+
* (at your option) any later version.
11+
*
12+
* Open PHIGS is distributed in the hope that it will be useful,
13+
* but WITHOUT ANY WARRANTY; without even the implied warranty of
14+
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15+
* GNU Lesser General Public License for more details.
16+
*
17+
* You should have received a copy of the GNU Lesser General Public License
18+
* along with Open PHIGS. If not, see <http://www.gnu.org/licenses/>.
19+
******************************************************************************/
20+
21+
#include <stdio.h>
22+
#include <stdlib.h>
23+
#include <phg.h>
24+
#include <css.h>
25+
#include <ar.h>
26+
#include <private/phgP.h>
27+
#include <util/ftn.h>
28+
/* nothing here yet */
29+

0 commit comments

Comments
 (0)