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
Oleksii Turkot
CrystFEL
Commits
3c896e87
Commit
3c896e87
authored
Nov 15, 2011
by
Thomas White
Browse files
Remove render_hkl --povray and remenants of cubeit
parent
8557420b
Changes
7
Hide whitespace changes
Inline
Side-by-side
Makefile.am
View file @
3c896e87
...
...
@@ -3,9 +3,8 @@ SUBDIRS = lib doc/reference libcrystfel
ACLOCAL_AMFLAGS
=
-I
m4
bin_PROGRAMS
=
src/pattern_sim src/process_hkl src/get_hkl src/indexamajig
\
src/compare_hkl src/powder_plot src/render_hkl
\
src/calibrate_detector src/partialator
\
src/check_hkl src/partial_sim
src/compare_hkl src/powder_plot src/calibrate_detector
\
src/partialator src/check_hkl src/partial_sim
noinst_PROGRAMS
=
tests/list_check tests/integration_check
\
tests/pr_gradient_check tests/symmetry_check
...
...
@@ -24,6 +23,10 @@ if BUILD_HDFSEE
bin_PROGRAMS
+=
src/hdfsee
endif
if
HAVE_CAIRO
bin_PROGRAMS
+=
src/render_hkl
endif
AM_CFLAGS
=
-Wall
AM_CPPFLAGS
=
-DDATADIR
=
\"
"
$(datadir)
"
\"
-I
$(top_builddir)
/lib
AM_CPPFLAGS
+=
-I
$(top_srcdir)
/lib
...
...
@@ -56,7 +59,9 @@ src_check_hkl_SOURCES = src/check_hkl.c
src_powder_plot_SOURCES
=
src/powder_plot.c
src_render_hkl_SOURCES
=
src/render_hkl.c src/povray.c
if
HAVE_CAIRO
src_render_hkl_SOURCES
=
src/render_hkl.c
endif
src_calibrate_detector_SOURCES
=
src/calibrate_detector.c
...
...
@@ -79,9 +84,8 @@ tests_pr_gradient_check_SOURCES = tests/pr_gradient_check.c \
INCLUDES
=
-I
$(top_srcdir)
/libcrystfel/src
-I
$(top_srcdir)
/data
EXTRA_DIST
+=
src/dw-hdfsee.h src/hdfsee.h src/povray.h
\
src/render_hkl.h src/post-refinement.h src/hrs-scaling.h
\
src/scaling-report.h
EXTRA_DIST
+=
src/dw-hdfsee.h src/hdfsee.h src/render_hkl.h
\
src/post-refinement.h src/hrs-scaling.h src/scaling-report.h
crystfeldir
=
$(datadir)
/crystfel
crystfel_DATA
=
data/diffraction.cl data/defs.h data/hdfsee.ui
...
...
Makefile.in
View file @
3c896e87
...
...
@@ -38,22 +38,23 @@ host_triplet = @host@
bin_PROGRAMS
=
src/pattern_sim
$(EXEEXT)
src/process_hkl
$(EXEEXT)
\
src/get_hkl
$(EXEEXT)
src/indexamajig
$(EXEEXT)
\
src/compare_hkl
$(EXEEXT)
src/powder_plot
$(EXEEXT)
\
src/
render_hkl
$(EXEEXT)
src/calibrate_detec
tor
$(EXEEXT)
\
src/
partialator
$(EXEEXT)
src/
check_hkl
$(EXEEXT)
\
src/partial_sim
$(
EXEEXT)
$(am__EXEEXT_
1
)
src/
calibrate_detector
$(EXEEXT)
src/partiala
tor
$(EXEEXT)
\
src/
check_hkl
$(EXEEXT)
src/
partial_sim
$(EXEEXT)
\
$(am__
EXEEXT
_1
)
$(am__EXEEXT_
2
)
noinst_PROGRAMS
=
tests/list_check
$(EXEEXT)
\
tests/integration_check
$(EXEEXT)
\
tests/pr_gradient_check
$(EXEEXT)
tests/symmetry_check
$(EXEEXT)
\
$(am__EXEEXT_
2
)
$(am__EXEEXT_
3
)
TESTS
=
tests/list_check
$(EXEEXT)
tests/first_merge_check
\
tests/second_merge_check tests/third_merge_check
\
tests/fourth_merge_check tests/integration_check
$(EXEEXT)
\
tests/pr_gradient_check
$(EXEEXT)
tests/symmetry_check
$(EXEEXT)
\
$(am__EXEEXT_
2
)
$(am__EXEEXT_
3
)
@BUILD_HDFSEE_TRUE@
am__append_1
=
src/hdfsee
@HAVE_
OPENCL
_TRUE@
am__append_2
=
tests/gpu_sim_check
@HAVE_
CAIRO
_TRUE@
am__append_2
=
src/render_hkl
@HAVE_OPENCL_TRUE@
am__append_3
=
tests/gpu_sim_check
@HAVE_CAIRO_TRUE@
am__append_4
=
src/scaling-report.c
@HAVE_OPENCL_TRUE@
am__append_4
=
tests/gpu_sim_check
@HAVE_CAIRO_TRUE@
am__append_5
=
src/scaling-report.c
subdir
=
.
DIST_COMMON
=
README
$(am__configure_deps)
$(srcdir)
/Makefile.am
\
$(srcdir)
/Makefile.in
$(srcdir)
/config.h.in
\
...
...
@@ -84,10 +85,11 @@ CONFIG_HEADER = config.h
CONFIG_CLEAN_FILES
=
CONFIG_CLEAN_VPATH_FILES
=
@BUILD_HDFSEE_TRUE@
am__EXEEXT_1
=
src/hdfsee
$(EXEEXT)
@HAVE_CAIRO_TRUE@
am__EXEEXT_2
=
src/render_hkl
$(EXEEXT)
am__installdirs
=
"
$(DESTDIR)$(bindir)
"
"
$(DESTDIR)$(man1dir)
"
\
"
$(DESTDIR)$(crystfeldir)
"
"
$(DESTDIR)$(crystfeldocdir)
"
\
"
$(DESTDIR)$(scriptdir)
"
@HAVE_OPENCL_TRUE@
am__EXEEXT_
2
=
tests/gpu_sim_check
$(EXEEXT)
@HAVE_OPENCL_TRUE@
am__EXEEXT_
3
=
tests/gpu_sim_check
$(EXEEXT)
PROGRAMS
=
$(bin_PROGRAMS)
$(noinst_PROGRAMS)
am__dirstamp
=
$(am__leading_dot)
dirstamp
am_src_calibrate_detector_OBJECTS
=
src/calibrate_detector.
$(OBJEXT)
...
...
@@ -155,8 +157,8 @@ src_process_hkl_OBJECTS = $(am_src_process_hkl_OBJECTS)
src_process_hkl_LDADD
=
$(LDADD)
src_process_hkl_DEPENDENCIES
=
$(top_builddir)
/lib/libgnu.a
\
$(top_builddir)
/libcrystfel/libcrystfel.la
am_src_render_hkl_
OBJECTS
=
src/render_hkl.
$(OBJEXT)
\
src/povray
.
$(OBJEXT)
am_
_
src_render_hkl_
SOURCES_DIST
=
src/render_hkl.
c
@HAVE_CAIRO_TRUE@
am_src_render_hkl_OBJECTS
=
src/render_hkl
.
$(OBJEXT)
src_render_hkl_OBJECTS
=
$(am_src_render_hkl_OBJECTS)
src_render_hkl_LDADD
=
$(LDADD)
src_render_hkl_DEPENDENCIES
=
$(top_builddir)
/lib/libgnu.a
\
...
...
@@ -235,7 +237,7 @@ DIST_SOURCES = $(src_calibrate_detector_SOURCES) \
$(src_indexamajig_SOURCES)
$(src_partial_sim_SOURCES)
\
$(am__src_partialator_SOURCES_DIST)
$(src_pattern_sim_SOURCES)
\
$(src_powder_plot_SOURCES)
$(src_process_hkl_SOURCES)
\
$(src_render_hkl_SOURCES)
\
$(
am__
src_render_hkl_SOURCES
_DIST
)
\
$(am__tests_gpu_sim_check_SOURCES_DIST)
\
$(tests_integration_check_SOURCES)
$(tests_list_check_SOURCES)
\
$(tests_pr_gradient_check_SOURCES)
\
...
...
@@ -541,7 +543,7 @@ EXTRA_DIST = configure m4/gnulib-cache.m4 tests/first_merge_check \
tests/second_merge_check tests/third_merge_check
\
tests/fourth_merge_check tests/first_merge_check.hkl
\
tests/third_merge_check.hkl tests/fourth_merge_check.hkl
\
src/dw-hdfsee.h src/hdfsee.h
src/povray.h
src/render_hkl.h
\
src/dw-hdfsee.h src/hdfsee.h src/render_hkl.h
\
src/post-refinement.h src/hrs-scaling.h src/scaling-report.h
\
$(crystfel_DATA)
doc/twin-calculator.pdf
\
doc/examples/lcls-dec.geom
\
...
...
@@ -574,10 +576,10 @@ src_get_hkl_SOURCES = src/get_hkl.c
src_compare_hkl_SOURCES
=
src/compare_hkl.c
src_check_hkl_SOURCES
=
src/check_hkl.c
src_powder_plot_SOURCES
=
src/powder_plot.c
src_render_hkl_SOURCES
=
src/render_hkl.c
src/povray.c
@HAVE_CAIRO_TRUE@
src_render_hkl_SOURCES
=
src/render_hkl.c
src_calibrate_detector_SOURCES
=
src/calibrate_detector.c
src_partialator_SOURCES
=
src/partialator.c src/post-refinement.c
\
src/hrs-scaling.c
$(am__append_
4
)
src/hrs-scaling.c
$(am__append_
5
)
tests_list_check_SOURCES
=
tests/list_check.c
tests_integration_check_SOURCES
=
tests/integration_check.c
tests_symmetry_check_SOURCES
=
tests/symmetry_check.c
...
...
@@ -790,8 +792,6 @@ src/process_hkl$(EXEEXT): $(src_process_hkl_OBJECTS) $(src_process_hkl_DEPENDENC
$(AM_V_CCLD)$(LINK)
$(src_process_hkl_OBJECTS)
$(src_process_hkl_LDADD)
$(LIBS)
src/render_hkl.$(OBJEXT)
:
src/$(am__dirstamp)
\
src/$(DEPDIR)/$(am__dirstamp)
src/povray.$(OBJEXT)
:
src/$(am__dirstamp)
\
src/$(DEPDIR)/$(am__dirstamp)
src/render_hkl$(EXEEXT)
:
$(src_render_hkl_OBJECTS) $(src_render_hkl_DEPENDENCIES) src/$(am__dirstamp)
@
rm
-f
src/render_hkl
$(EXEEXT)
$(AM_V_CCLD)$(LINK)
$(src_render_hkl_OBJECTS)
$(src_render_hkl_LDADD)
$(LIBS)
...
...
@@ -841,7 +841,6 @@ mostlyclean-compile:
-
rm
-f
src/partialator.
$(OBJEXT)
-
rm
-f
src/pattern_sim.
$(OBJEXT)
-
rm
-f
src/post-refinement.
$(OBJEXT)
-
rm
-f
src/povray.
$(OBJEXT)
-
rm
-f
src/powder_plot.
$(OBJEXT)
-
rm
-f
src/process_hkl.
$(OBJEXT)
-
rm
-f
src/render_hkl.
$(OBJEXT)
...
...
@@ -867,7 +866,6 @@ distclean-compile:
@AMDEP_TRUE@@am__include@
@am__quote@src/$(DEPDIR)/partialator.Po@am__quote@
@AMDEP_TRUE@@am__include@
@am__quote@src/$(DEPDIR)/pattern_sim.Po@am__quote@
@AMDEP_TRUE@@am__include@
@am__quote@src/$(DEPDIR)/post-refinement.Po@am__quote@
@AMDEP_TRUE@@am__include@
@am__quote@src/$(DEPDIR)/povray.Po@am__quote@
@AMDEP_TRUE@@am__include@
@am__quote@src/$(DEPDIR)/powder_plot.Po@am__quote@
@AMDEP_TRUE@@am__include@
@am__quote@src/$(DEPDIR)/process_hkl.Po@am__quote@
@AMDEP_TRUE@@am__include@
@am__quote@src/$(DEPDIR)/render_hkl.Po@am__quote@
...
...
configure
View file @
3c896e87
...
...
@@ -630,8 +630,6 @@ HAVE_FFTW_FALSE
HAVE_FFTW_TRUE
HAVE_CAIRO_FALSE
HAVE_CAIRO_TRUE
BUILD_CUBEIT_FALSE
BUILD_CUBEIT_TRUE
BUILD_HDFSEE_FALSE
BUILD_HDFSEE_TRUE
HAVE_OPENCL_FALSE
...
...
@@ -14001,16 +13999,6 @@ else
fi
if
test
x
$have_cairo
=
xtrue
\
-a
x
$have_libpng
=
xtrue
;
then
BUILD_CUBEIT_TRUE
=
BUILD_CUBEIT_FALSE
=
'#'
else
BUILD_CUBEIT_TRUE
=
'#'
BUILD_CUBEIT_FALSE
=
fi
if
test
x
$have_cairo
=
xtrue
;
then
HAVE_CAIRO_TRUE
=
HAVE_CAIRO_FALSE
=
'#'
...
...
@@ -14487,10 +14475,6 @@ if test -z "${BUILD_HDFSEE_TRUE}" && test -z "${BUILD_HDFSEE_FALSE}"; then
as_fn_error
$?
"conditional
\"
BUILD_HDFSEE
\"
was never defined.
Usually this means the macro was only invoked conditionally."
"
$LINENO
"
5
fi
if
test
-z
"
${
BUILD_CUBEIT_TRUE
}
"
&&
test
-z
"
${
BUILD_CUBEIT_FALSE
}
"
;
then
as_fn_error
$?
"conditional
\"
BUILD_CUBEIT
\"
was never defined.
Usually this means the macro was only invoked conditionally."
"
$LINENO
"
5
fi
if
test
-z
"
${
HAVE_CAIRO_TRUE
}
"
&&
test
-z
"
${
HAVE_CAIRO_FALSE
}
"
;
then
as_fn_error
$?
"conditional
\"
HAVE_CAIRO
\"
was never defined.
Usually this means the macro was only invoked conditionally."
"
$LINENO
"
5
...
...
configure.ac
View file @
3c896e87
...
...
@@ -246,9 +246,6 @@ AM_CONDITIONAL([BUILD_HDFSEE], test x$have_gdk_pixbuf = xtrue \
-a "x$have_gtk" = "xtrue" \
-a "x$have_cairo" = "xtrue")
AM_CONDITIONAL([BUILD_CUBEIT], test x$have_cairo = xtrue \
-a x$have_libpng = xtrue)
AM_CONDITIONAL([HAVE_CAIRO], test x$have_cairo = xtrue)
AM_CONDITIONAL([HAVE_FFTW], test x$have_fftw = xtrue)
...
...
src/povray.c
deleted
100644 → 0
View file @
8557420b
/*
* povray.c
*
* Invoke POV-ray
*
* (c) 2006-2010 Thomas White <taw@physics.org>
*
* Part of CrystFEL - crystallography with a FEL
*
*/
#ifdef HAVE_CONFIG_H
#include
<config.h>
#endif
#include
<sys/types.h>
#include
<sys/wait.h>
#include
<unistd.h>
#include
"cell.h"
#include
"utils.h"
#include
"symmetry.h"
#include
"render_hkl.h"
#include
"povray.h"
#define MAX_PROC (256)
int
povray_render_animation
(
UnitCell
*
cell
,
RefList
*
list
,
unsigned
int
nproc
,
const
SymOpList
*
sym
,
int
wght
,
double
boost
,
double
scale_top
)
{
FILE
*
fh
;
double
asx
,
asy
,
asz
;
double
bsx
,
bsy
,
bsz
;
double
csx
,
csy
,
csz
;
pid_t
pids
[
MAX_PROC
];
float
max
;
int
i
;
Reflection
*
refl
;
RefListIterator
*
iter
;
SymOpMask
*
m
;
if
(
(
nproc
>
MAX_PROC
)
||
(
nproc
<
1
)
)
{
ERROR
(
"Number of processes must be a number between 1 and %i
\n
"
,
MAX_PROC
);
return
1
;
}
fh
=
fopen
(
"render.pov"
,
"w"
);
fprintf
(
fh
,
"/* POV-Ray scene written by CrystFEL */
\n\n
"
);
fprintf
(
fh
,
"#include
\"
colors.inc
\"\n
"
);
fprintf
(
fh
,
"#include
\"
textures.inc
\"\n\n
"
);
fprintf
(
fh
,
"global_settings {
\n
"
);
fprintf
(
fh
,
" assumed_gamma 1.0
\n
"
);
fprintf
(
fh
,
" ambient_light 5.0
\n
"
);
fprintf
(
fh
,
"}
\n\n
"
);
/* First quarter */
fprintf
(
fh
,
"#if ( (clock >= 0) & (clock <= 124) )
\n
"
);
fprintf
(
fh
,
"camera { location <0.0, -3.0, 0.0>"
" sky z direction 1.1*y
\n
"
" right -x*(image_width/image_height)
\n
"
" look_at <0.0, 0.0, 0.0> }
\n\n
"
);
fprintf
(
fh
,
"#end
\n
"
);
/* Second quarter */
fprintf
(
fh
,
"#if ( (clock >= 125) & (clock <= 249) )
\n
"
);
fprintf
(
fh
,
"camera { location <0.0,"
" -(2.0+cos(radians((clock-125)*(180/125)))), 0.0>"
" sky z direction 1.1*y
\n
"
" right -x*(image_width/image_height)
\n
"
" look_at <0.0, 0.0, 0.0> }
\n\n
"
);
fprintf
(
fh
,
"#end
\n
"
);
/* Third quarter */
fprintf
(
fh
,
"#if ( (clock >= 250) & (clock <= 374) )
\n
"
);
fprintf
(
fh
,
"camera { location <0.0, -1.0, 0.0>"
" sky z direction 1.1*y
\n
"
" right -x*(image_width/image_height)
\n
"
" look_at <0.0, 0.0, 0.0> }
\n\n
"
);
fprintf
(
fh
,
"#end
\n
"
);
/* Fourth quarter */
fprintf
(
fh
,
"#if ( (clock >= 375) & (clock <= 500) )
\n
"
);
fprintf
(
fh
,
"camera { location <0.0,"
" -(2.0+cos(radians((clock-375)*(180/125)+180))), 0.0>"
" sky z direction 1.1*y
\n
"
" right -x*(image_width/image_height)
\n
"
" look_at <0.0, 0.0, 0.0> }
\n\n
"
);
fprintf
(
fh
,
"#end
\n
"
);
fprintf
(
fh
,
"light_source { <-3.0 -3.0 3.0> White }
\n
"
);
fprintf
(
fh
,
"light_source { <+3.0 -3.0 3.0> White }
\n
"
);
fprintf
(
fh
,
"light_source { <0.0, -3.0, 0.0> 2*White }
\n
"
);
fprintf
(
fh
,
"plane {z,-2.0 pigment { rgb <0.0, 0.0, 0.1> } }
\n
"
);
fprintf
(
fh
,
"plane {-z,-2.0 pigment { rgb <0.0, 0.0, 0.05> } }
\n\n
"
);
cell_get_reciprocal
(
cell
,
&
asx
,
&
asy
,
&
asz
,
&
bsx
,
&
bsy
,
&
bsz
,
&
csx
,
&
csy
,
&
csz
);
fprintf
(
fh
,
"#declare WCA = (720/19);
\n
"
);
fprintf
(
fh
,
"#declare WCL = (360/8.5);
\n
"
);
fprintf
(
fh
,
"#declare TA = (4.875);
\n
"
);
fprintf
(
fh
,
"#declare TB = (1.125);
\n
"
);
fprintf
(
fh
,
"#declare TRANS =
\n
"
);
fprintf
(
fh
,
"transform {
\n
"
);
/* First half */
/* Acceleration */
fprintf
(
fh
,
"#if ( clock <= 24 )
\n
"
"rotate <0, 0, 0.5*WCA*(clock/25)*(clock/25)>
\n
"
"#end
\n
"
/* Cruise */
"#if ( (clock >= 25) & (clock <= 224) )
\n
"
"rotate <0, 0, (WCA/2)+WCA*((clock-25)/25)>
\n
"
"#end
\n
"
/* Overlap */
/* Deceleration */
"#if ( (clock >= 225) & (clock <= 274) )
\n
"
"rotate <0, 0, 360-WCA + WCA*((clock-225)/25) "
" - 0.5*(WCA/2)*((clock-225)/25)*((clock-225)/25) >
\n
"
"#end
\n
"
/* Acceleration */
"#if ( (clock >= 225) & (clock <= 274) )
\n
"
"rotate <0.5*(WCL/2)*((clock-225)/25)*((clock-225)/25), 0, 0>
\n
"
"#end
\n
"
/* Second half */
/* Cruise */
"#if ( (clock >= 275) & (clock <= 396) )
\n
"
"rotate <WCL + WCL*((clock-275)/25), 0, 0>
\n
"
"#end
\n
"
/* Deceleration to pause */
"#if ( (clock >= 397) & (clock <= 421) )
\n
"
"rotate <(1+TA)*WCL+ WCL*((clock-397)/25) "
" - 0.5*WCL*((clock-397)/25)*((clock-397)/25), 0, 0 >
\n
"
"#end
\n
"
/* Acceleration after pause */
"#if ( (clock >= 422) & (clock <= 446) )
\n
"
"rotate <(1.5+TA)*WCL"
" + 0.5*WCL*((clock-422)/25)*((clock-422)/25), 0, 0>
\n
"
"#end
\n
"
/* Final Cruise */
"#if ( (clock >= 447) & (clock <= 474) )
\n
"
"rotate <(2+TA)*WCL + WCL*((clock-447)/25), 0, 0>
\n
"
"#end
\n
"
/* Final Deceleration */
"#if ( (clock >= 475) & (clock <= 499) )
\n
"
"rotate <(2+TA+TB)*WCL + WCL*((clock-475)/25) "
" - 0.5*WCL*((clock-475)/25)*((clock-475)/25), 0, 0 >
\n
"
"#end
\n
"
);
fprintf
(
fh
,
"}
\n
"
);
m
=
new_symopmask
(
sym
);
max
=
0
.
0
;
for
(
refl
=
first_refl
(
list
,
&
iter
);
refl
!=
NULL
;
refl
=
next_refl
(
refl
,
iter
)
)
{
float
val
;
signed
int
h
,
k
,
l
;
get_indices
(
refl
,
&
h
,
&
k
,
&
l
);
special_position
(
sym
,
m
,
h
,
k
,
l
);
switch
(
wght
)
{
case
WGHT_I
:
val
=
get_intensity
(
refl
);
break
;
case
WGHT_SQRTI
:
val
=
get_intensity
(
refl
);
val
=
(
val
>
0
.
0
)
?
sqrt
(
val
)
:
0
.
0
;
break
;
case
WGHT_COUNTS
:
val
=
get_redundancy
(
refl
);
val
/=
(
double
)
num_equivs
(
sym
,
m
);
break
;
case
WGHT_RAWCOUNTS
:
val
=
get_redundancy
(
refl
);
break
;
default
:
ERROR
(
"Invalid weighting.
\n
"
);
abort
();
}
if
(
val
>
max
)
max
=
val
;
}
max
/=
boost
;
/* Use manual scale top if specified */
if
(
scale_top
>
0
.
0
)
{
max
=
scale_top
;
}
for
(
refl
=
first_refl
(
list
,
&
iter
);
refl
!=
NULL
;
refl
=
next_refl
(
refl
,
iter
)
)
{
signed
int
h
,
k
,
l
;
float
radius
;
int
s
;
float
val
,
p
,
r
,
g
,
b
,
trans
;
int
j
;
int
neq
;
get_indices
(
refl
,
&
h
,
&
k
,
&
l
);
special_position
(
sym
,
m
,
h
,
k
,
l
);
neq
=
num_equivs
(
sym
,
m
);
switch
(
wght
)
{
case
WGHT_I
:
val
=
get_intensity
(
refl
);
break
;
case
WGHT_SQRTI
:
val
=
get_intensity
(
refl
);
val
=
(
val
>
0
.
0
)
?
sqrt
(
val
)
:
0
.
0
;
break
;
case
WGHT_COUNTS
:
val
=
get_redundancy
(
refl
);
val
/=
(
double
)
neq
;
break
;
case
WGHT_RAWCOUNTS
:
val
=
get_redundancy
(
refl
);
break
;
default
:
ERROR
(
"Invalid weighting.
\n
"
);
abort
();
}
s
=
val
/
(
max
/
6
);
p
=
fmod
(
val
,
max
/
6
);
p
/=
(
max
/
6
);
r
=
0
;
g
=
0
;
b
=
0
;
if
(
(
val
<
0
.
0
)
)
{
s
=
0
;
p
=
1
.
0
;
}
if
(
(
val
>
max
)
)
{
s
=
6
;
}
switch
(
s
)
{
case
0
:
/* Black to blue */
r
=
0
.
0
;
g
=
0
.
0
;
b
=
p
;
break
;
case
1
:
/* Blue to green */
r
=
0
.
0
;
g
=
p
;
b
=
1
.
0
-
p
;
break
;
case
2
:
/* Green to red */
r
=
p
;
g
=
1
.
0
-
p
;
b
=
0
.
0
;
break
;
case
3
:
/* Red to Orange */
r
=
1
.
0
;
g
=
0
.
5
*
p
;
b
=
0
.
0
;
break
;
case
4
:
/* Orange to Yellow */
r
=
1
.
0
;
g
=
0
.
5
+
0
.
5
*
p
;
b
=
0
.
0
;
break
;
case
5
:
/* Yellow to White */
r
=
1
.
0
;
g
=
1
.
0
;
b
=
1
.
0
*
p
;
break
;
case
6
:
/* Pixel has hit the maximum value */
r
=
1
.
0
;
g
=
1
.
0
;
b
=
1
.
0
;
break
;
}
if
(
val
<=
0
.
0
)
continue
;
radius
=
0
.
01
*
pow
(
val
,
0
.
25
)
/
pow
(
max
,
0
.
25
);
trans
=
1
.
0
-
(
val
/
max
);
/* For each equivalent */
for
(
j
=
0
;
j
<
neq
;
j
++
)
{
signed
int
he
,
ke
,
le
;
float
x
,
y
,
z
;
get_equiv
(
sym
,
m
,
j
,
h
,
k
,
l
,
&
he
,
&
ke
,
&
le
);
x
=
asx
*
he
+
bsx
*
ke
+
csx
*
le
;
y
=
asy
*
he
+
bsy
*
ke
+
csy
*
le
;
z
=
asz
*
he
+
bsz
*
ke
+
csz
*
le
;
fprintf
(
fh
,
"sphere { <%.5f, %.5f, %.5f>, %.5f "
"texture{pigment{color rgb <%f, %f, %f>"
" transmit %f} "
"finish { reflection %f } }
\n
"
"transform { TRANS }
\n
"
"}
\n
"
,
x
/
1e9
,
y
/
1e9
,
z
/
1e9
,
radius
,
r
,
g
,
b
,
trans
,
0
.
1
*
(
1
.
0
-
trans
));
}
}
free_symopmask
(
m
);
fprintf
(
fh
,
"
\n
"
);
fclose
(
fh
);
for
(
i
=
0
;
i
<
nproc
;
i
++
)
{
pids
[
i
]
=
fork
();
if
(
!
(
(
pids
[
i
]
!=
0
)
&&
(
pids
[
i
]
!=
-
1
)
)
)
{
if
(
pids
[
i
]
==
-
1
)
{
ERROR
(
"fork() failed.
\n
"
);
}
else
{
char
minf
[
256
];
char
maxf
[
256
];
float
nf
,
xf
,
nsec
;
nsec
=
500
.
0
/
(
float
)
nproc
;
nf
=
nsec
*
(
float
)
i
;
xf
=
(
nsec
*
(
float
)
i
+
nsec
)
-
1
.
0
;
snprintf
(
minf
,
255
,
"+SF%i"
,
(
int
)
nf
);
snprintf
(
maxf
,
255
,
"+EF%i"
,
(
int
)
xf
);
/* Forked successfully, child process */
execlp
(
"povray"
,
""
,
"+W1024"
,
"+H768"
,
"+Irender.pov"
,
"+Orender.png"
,
"+KFI0"
,
"+KFF499"
,
"+KI0"
,
"+KF499"
,
minf
,
maxf
,
"-D"
,
NULL
);
}
}
/* else start the next one */
}
for
(
i
=
0
;
i
<
nproc
;
i
++
)
{
int
r
;
waitpid
(
pids
[
i
],
&
r
,
0
);
}
return
0
;
}
src/povray.h
deleted
100644 → 0
View file @
8557420b
/*
* povray.h
*
* Invoke POV-ray
*
* (c) 2006-2011 Thomas White <taw@physics.org>
*
* Part of CrystFEL - crystallography with a FEL
*
*/
#ifdef HAVE_CONFIG_H
#include
<config.h>
#endif
#ifndef POVRAY_H
#define POVRAY_H
#include
"reflist.h"
#include
"cell.h"
#include
"symmetry.h"
extern
int
povray_render_animation
(
UnitCell
*
cell
,
RefList
*
list
,
unsigned
int
nproc
,
const
SymOpList
*
sym
,
int
wght
,
double
boost
,
double
scale_top
);
#endif
/* POVRAY_H */
src/render_hkl.c
View file @
3c896e87
...
...
@@ -26,7 +26,6 @@
#endif
#include
"utils.h"
#include
"povray.h"
#include
"symmetry.h"
#include
"render.h"
#include
"render_hkl.h"
...
...
@@ -41,12 +40,7 @@ static void show_help(const char *s)
{
printf
(
"Syntax: %s [options] <file.hkl>
\n\n
"
,
s
);
printf
(
"Render intensity lists in various ways.
\n
"
"
\n
"
" --povray Render a 3D animation using POV-ray.
\n
"
#ifdef HAVE_CAIRO
" --zone-axis Render a 2D zone axis pattern.
\n
"
#endif
"Render intensity lists in 2D slices.
\n
"
"
\n
"
" -d, --down=<h>,<k>,<l> Indices for the axis in the downward direction.
\n
"
" Default: 1,0,0.
\n
"
...
...
@@ -565,7 +559,6 @@ int main(int argc, char *argv[])
UnitCell
*
cell
;
RefList
*
list
;
char
*
infile
;
int
config_povray
=
0
;
int
config_zoneaxis
=
0
;
int
config_sqrt
=
0
;
int
config_colkey
=
0
;
...
...
@@ -590,7 +583,6 @@ int main(int argc, char *argv[])
/* Long options */
const
struct
option
longopts
[]
=
{
{
"help"
,
0
,
NULL
,
'h'
},
{
"povray"
,
0
,
&
config_povray
,
1
},
{
"zone-axis"
,
0
,
&
config_zoneaxis
,
1
},
{
"output"
,
1
,
NULL
,
'o'
},
{
"pdb"
,
1
,
NULL
,
'p'
},
...
...
@@ -675,6 +667,11 @@ int main(int argc, char *argv[])
}
if
(
config_zoneaxis
)
{
ERROR
(
"Friendly warning: The --zone-axis option isn't needed"
" any longer (I ignored it for you).
\n
"
);
}
if
(
(
pdb
==
NULL
)
&&
!
config_colkey
)
{
ERROR
(
"You must specify the PDB containing the unit cell.
\n
"
);
return
1
;
...
...
@@ -692,7 +689,6 @@ int main(int argc, char *argv[])
if
(
outfile
==
NULL
)
outfile
=
strdup
(
"za.pdf"
);
if
(
strcmp
(
weighting
,
"I"
)
==
0
)
{
wght