Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
nomad-lab
VR-demos
Commits
ff174423
Commit
ff174423
authored
Apr 18, 2017
by
Ruben Jesus Garcia Hernandez
Browse files
Add http authentification using token.
Explicitly disable pagination Add missing files to openvr project
parent
ed9e6db9
Changes
4
Hide whitespace changes
Inline
Side-by-side
NOMADVRLib/ConfigFile.cpp
View file @
ff174423
...
...
@@ -52,6 +52,7 @@ const char * loadConfigFileErrors[] =
"No basis vectors, but repetitions requested"
,
//-13
"Error loading config file"
,
// -14
"Error reading atomglyph"
,
//-15
"Error reading token"
,
//-16
"Error loading xyz file, add 100 to see the error"
,
//<-100
"Error loading cube file, add 100 to see the error"
,
//<-200
"Error loading json file, add 200 to see the error"
,
//<-300
...
...
@@ -67,9 +68,9 @@ else
int
readString
(
FILE
*
f
,
char
*
s
)
{
char
s2
[
100
];
char
s2
[
2048
];
int
r
,
c
;
r
=
fscanf
(
f
,
"%
99
s"
,
s2
);
r
=
fscanf
(
f
,
"%
2047
s"
,
s2
);
if
(
r
!=
1
)
return
-
1
;
if
(
s2
[
0
]
!=
'"'
)
{
...
...
@@ -135,6 +136,7 @@ int loadConfigFile(const char * f)
for
(
int
i
=
0
;
i
<
3
;
i
++
)
userpos
[
i
]
=
0
;
solid
=
0
;
char
*
token
=
0
;
//
FILE
*
F
=
fopen
(
f
,
"r"
);
if
(
F
==
0
)
...
...
@@ -312,7 +314,7 @@ int loadConfigFile(const char * f)
sprintf
(
url
,
"%s%s"
,
base_url
,
material
);
//rgh fixme, we know only one
eprintf
(
"load config file start, before readAtomsJsonURL"
);
e
=
readAtomsJsonURL
(
url
,
&
numAtoms
,
&
timesteps
,
&
atoms
,
abc
,
&
clonedAtoms
);
e
=
readAtomsJsonURL
(
url
,
&
numAtoms
,
&
timesteps
,
&
atoms
,
abc
,
&
clonedAtoms
,
token
);
eprintf
(
"load config file start, after readAtomsJsonURL"
);
if
(
e
<
0
)
return
e
-
300
;
...
...
@@ -348,6 +350,13 @@ int loadConfigFile(const char * f)
solid
=
new
Solid
(
Solid
::
Type
::
Tetrahedron
);
else
return
-
15
;
}
else
if
(
!
strcmp
(
s
,
"token"
))
{
if
(
token
)
delete
(
token
);
token
=
new
char
[
2048
];
r
=
readString
(
F
,
token
);
if
(
r
!=
0
)
return
-
16
;
}
else
if
(
!
strcmp
(
s
,
"
\x0d
"
))
{
//discard windows newline (problem in Sebastian Kokott's phone (?!)
continue
;
}
else
{
...
...
NOMADVRLib/atoms.cpp
View file @
ff174423
...
...
@@ -312,7 +312,7 @@ const char * readAtomsJsonErrors[] = {
};
int
readAtomsJsonURL
(
const
char
*
const
f
,
int
**
numatoms
,
int
*
timesteps
,
float
***
pos
,
float
abc
[
3
][
3
],
std
::
vector
<
float
>**
clonedAtoms
)
std
::
vector
<
float
>**
clonedAtoms
,
const
char
*
const
token
)
{
eprintf
(
"readAtomsJsonURL start"
);
...
...
@@ -327,12 +327,12 @@ if (r==1)
if
(
r
<
2
)
{
#if defined(WIN32)
//possibly https or other unsupported protocol, fall back to wget
return
readAtomsJsonURLwget
(
f
,
numatoms
,
timesteps
,
pos
,
abc
,
clonedAtoms
);
return
readAtomsJsonURLwget
(
f
,
numatoms
,
timesteps
,
pos
,
abc
,
clonedAtoms
,
token
);
#else
return
-
3
;
#endif
}
sprintf
(
url
,
"%s%s"
,
page
,
"/cells"
);
sprintf
(
url
,
"%s%s"
,
page
,
"/cells
?pagination=off
"
);
sprintf
(
file
,
"%s%s"
,
TMPDIR
,
"material_cells.json"
);
out
=
fopen
(
file
,
"w"
);
if
(
out
==
nullptr
)
{
...
...
@@ -341,13 +341,27 @@ if (out==nullptr) {
}
happyhttp
::
Connection
conn
(
host
,
port
);
conn
.
setcallbacks
(
nullptr
,
OnData
,
nullptr
,
0
);
conn
.
request
(
"GET"
,
url
,
0
,
0
,
0
);
//https://github.com/Zintinio/HappyHTTP/issues/9
const
char
*
headers
[
3
];
char
base64
[
2048
];
if
(
token
)
{
headers
[
0
]
=
"Authorization"
;
sprintf
(
base64
,
"Basic %s"
,
token
);
headers
[
1
]
=
base64
;
headers
[
2
]
=
0
;
conn
.
request
(
"GET"
,
url
,
headers
,
0
,
0
);
}
else
{
conn
.
request
(
"GET"
,
url
,
0
,
0
,
0
);
}
while
(
conn
.
outstanding
()
)
conn
.
pump
();
fclose
(
out
);
conn
.
close
();
sprintf
(
url
,
"%s%s"
,
page
,
"/elements"
);
sprintf
(
url
,
"%s%s"
,
page
,
"/elements
?pagination=off
"
);
sprintf
(
file
,
"%s%s"
,
TMPDIR
,
"material_elements.json"
);
out
=
fopen
(
file
,
"w"
);
...
...
@@ -355,7 +369,13 @@ if (out==nullptr) {
eprintf
(
"Could not open file for writing: %s"
,
file
);
return
-
1
;
}
conn
.
request
(
"GET"
,
url
,
0
,
0
,
0
);
if
(
token
)
{
conn
.
request
(
"GET"
,
url
,
headers
,
0
,
0
);
}
else
{
conn
.
request
(
"GET"
,
url
,
0
,
0
,
0
);
}
while
(
conn
.
outstanding
()
)
conn
.
pump
();
}
catch
(
const
happyhttp
::
Wobbly
&
w
)
{
...
...
@@ -366,6 +386,10 @@ while( conn.outstanding() )
eprintf
(
"error %s
\n
"
,
w
.
what
());
#endif
fclose
(
out
);
#if defined(WIN32)
return
readAtomsJsonURLwget
(
f
,
numatoms
,
timesteps
,
pos
,
abc
,
clonedAtoms
,
token
);
#endif
return
-
3
;
}
fclose
(
out
);
...
...
@@ -376,23 +400,31 @@ fclose(out);
char
file
[
2048
];
sprintf
(
file
,
"%s%s"
,
TMPDIR
,
"material"
);
eprintf
(
"readAtomsJsonURL before return"
);
return
readAtomsJson
(
file
,
numatoms
,
timesteps
,
pos
,
abc
,
clonedAtoms
);
return
readAtomsJson
(
file
,
numatoms
,
timesteps
,
pos
,
abc
,
clonedAtoms
,
token
);
}
#if defined(WIN32)
//base64 encoded token
int
readAtomsJsonURLwget
(
const
char
*
const
f
,
int
**
numatoms
,
int
*
timesteps
,
float
***
pos
,
float
abc
[
3
][
3
],
std
::
vector
<
float
>**
clonedAtoms
)
std
::
vector
<
float
>**
clonedAtoms
,
const
char
*
const
token
)
{
char
cmd
[
2048
];
int
ret
;
sprintf
(
cmd
,
"wget %s/cells -O material_cells.json"
,
f
);
if
(
token
)
sprintf
(
cmd
,
"wget --header
\"
Authorization:Basic %s
\"
%s/cells?pagination=off -O material_cells.json"
,
token
,
f
);
else
sprintf
(
cmd
,
"wget %s/cells?pagination=off -O material_cells.json"
,
f
);
ret
=
system
(
cmd
);
if
(
ret
!=
0
)
return
(
-
3
);
sprintf
(
cmd
,
"wget %s/elements -O material_elements.json"
,
f
);
if
(
token
)
sprintf
(
cmd
,
"wget --header
\"
Authorization:Basic %s
\"
%s/elements?pagination=off -O material_elements.json"
,
token
,
f
);
else
sprintf
(
cmd
,
"wget %s/elements?pagination=off -O material_elements.json"
,
f
);
ret
=
system
(
cmd
);
if
(
ret
!=
0
)
return
(
-
3
);
return
readAtomsJson
(
"material"
,
numatoms
,
timesteps
,
pos
,
abc
,
clonedAtoms
);
return
readAtomsJson
(
"material"
,
numatoms
,
timesteps
,
pos
,
abc
,
clonedAtoms
,
token
);
}
#endif
...
...
@@ -410,7 +442,7 @@ void add (std::vector<float> *v, float x, float y, float z, float a)
}
int
readAtomsJson
(
const
char
*
const
f
,
int
**
numatoms
,
int
*
timesteps
,
float
***
pos
,
float
abc
[
3
][
3
],
std
::
vector
<
float
>**
clonedAtoms
)
std
::
vector
<
float
>**
clonedAtoms
,
const
char
*
const
token
)
{
eprintf
(
"readAtomsJson start"
);
char
file
[
512
];
...
...
NOMADVRLib/atoms.hpp
View file @
ff174423
...
...
@@ -15,10 +15,10 @@ extern const char * TMPDIR;
int
readAtomsXYZ
(
const
char
*
const
file
,
int
**
numatoms
,
int
*
timesteps
,
float
***
pos
);
int
readAtomsCube
(
const
char
*
const
file
,
int
**
numatoms
,
int
*
timesteps
,
float
***
pos
);
int
readAtomsJson
(
const
char
*
const
file
,
int
**
numatoms
,
int
*
timesteps
,
float
***
pos
,
float
abc
[
3
][
3
],
std
::
vector
<
float
>**
clonedAtoms
);
int
readAtomsJsonURL
(
const
char
*
const
f
,
int
**
numatoms
,
int
*
timesteps
,
float
***
pos
,
float
abc
[
3
][
3
],
std
::
vector
<
float
>**
clonedAtoms
);
int
readAtomsJson
(
const
char
*
const
file
,
int
**
numatoms
,
int
*
timesteps
,
float
***
pos
,
float
abc
[
3
][
3
],
std
::
vector
<
float
>**
clonedAtoms
,
const
char
*
const
token
=
0
);
int
readAtomsJsonURL
(
const
char
*
const
f
,
int
**
numatoms
,
int
*
timesteps
,
float
***
pos
,
float
abc
[
3
][
3
],
std
::
vector
<
float
>**
clonedAtoms
,
const
char
*
const
token
=
0
);
#if defined(WIN32)
int
readAtomsJsonURLwget
(
const
char
*
const
f
,
int
**
numatoms
,
int
*
timesteps
,
float
***
pos
,
float
abc
[
3
][
3
],
std
::
vector
<
float
>**
clonedAtoms
);
int
readAtomsJsonURLwget
(
const
char
*
const
f
,
int
**
numatoms
,
int
*
timesteps
,
float
***
pos
,
float
abc
[
3
][
3
],
std
::
vector
<
float
>**
clonedAtoms
,
const
char
*
const
token
=
0
);
#endif
const
float
MISSINGRADIUS
=
0.2
f
;
const
float
MISSINGR
=
1.
f
;
...
...
OpenVR/TimestepData/hellovr_opengl.vcxproj
View file @
ff174423
...
...
@@ -178,6 +178,7 @@
<ClCompile
Include=
"NOMADVRLib\atomsGL.cpp"
/>
<ClCompile
Include=
"NOMADVRLib\CompileGLShader.cpp"
/>
<ClCompile
Include=
"NOMADVRLib\ConfigFile.cpp"
/>
<ClCompile
Include=
"NOMADVRLib\IsoShaders.cpp"
/>
<ClCompile
Include=
"NOMADVRLib\IsosurfacesGL.cpp"
/>
<ClCompile
Include=
"NOMADVRLib\polyhedron.cpp"
/>
<ClCompile
Include=
"NOMADVRLib\TessShaders.cpp"
/>
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment