On 03/02/2015 12:18 PM, David Winsemius wrote:
On Feb 3, 2015, at 7:14 AM, Duncan Murdoch wrote:

> On 03/02/2015 9:43 AM, keith.jew...@campdenbri.co.uk wrote:
>> Dear all,
>>
>> I am using writeWebGL to create an HTML page containing an interactive 3D plot. It works fine 
with the default prefix="" but fails when I specify a prefix "for different scenes 
displayed on the same web page" (quoting ?writeWebGL).  I'm sure I'm misreading the help, and would 
appreciate guidance.
>>
>> Briefly, it works fine with the default writeWebGL( ,prefix="", ) and the 
template containing %WebGL%
>> I have not been able to make it work with any other value of prefix; e.g. writeWebGL( 
,prefix="A",) and the template containing %AWebGL%
>>
>> Here is code illustrating the problem.
>>
>> First create three templates:
>> a) Vanilla: copied system.file(file.path("WebGL", "template.html"), package="rgl") to 
file.path(getwd(), "template.html")
>>
>> b) First attempt: ?writeWebGL says # "[the template] should contain a single line containing 
paste("%", prefix, "WebGL%"), e.g. %WebGL% with the default empty prefix"
>> paste("%", "A", "WebGL%")
>> # [1] "% A WebGL%"
>> so file.path(getwd(), "templateA.html") is a copy of (a) replacing %WebGL% 
with % A WebGL%
>>
>> c) Second attempt: file.path(getwd(), "templateB.html") is  a copy of (a) 
replacing %WebGL% with %AWebGL%
>>
>> then, in R
>> #-----------
>> library(rgl)
>> plot3d(1:5, 1:5, 1:5) # generate rgl scene
>> #-----------
>> # a) vanilla
>> writeWebGL(dir=getwd(), template = file.path(getwd(), "template.html"), 
prefix="")
>> # works OK; result opens and works in IE
>> #----------------
>> # b) First attempt, my reading of ?writeWebGL
>> writeWebGL(dir=getwd(), template = file.path(getwd(), "templateA.html"), 
prefix="A")
>> # Error in writeWebGL(dir = getwd(), template = file.path(getwd(), 
"templateA.html"),  :
>> #                       template ‘m://templateA.html’ does not contain 
%AWebGL%
>> # so it looks as if the help is trivially wrong, it should be paste0
>> paste0("%", "A", "WebGL%")
>
> Yes, that's right.  I'll fix it.
>
>> # [1] "%AWebGL%"
>> #----------------
>> # c) second attempt using %AWebGL%
>> writeWebGL(dir=getwd(), template = file.path(getwd(), "templateB.html"), 
prefix="A")
>> # runs without error in R but IE displays "You must enable Javascript to view 
this page properly."
>> #--------------
>>
>> I don't understand why (c) is different from (a).
>
> There may be an error in the generated Javascript.  In Firefox, you could ask 
to see the browser console log, and it would report if there was an error on the 
page; sometimes those make the Javascript fail, and it falls back to the error 
message you saw.  I don't know how/if you can do that in IE.
>
>
>>
>> Here are the system details:
>>
>> R version 3.1.0 (2014-04-10)
>> Platform: i386-w64-mingw32/i386 (32-bit)
>>
>> locale:
>> [1] LC_COLLATE=English_United Kingdom.1252
>> [2] LC_CTYPE=English_United Kingdom.1252
>> [3] LC_MONETARY=English_United Kingdom.1252
>> [4] LC_NUMERIC=C
>> [5] LC_TIME=English_United Kingdom.1252
>>
>> attached base packages:
>> [1] grDevices datasets  splines   graphics  stats     tcltk     utils
>>  [8] tools     methods   base
>>
>> other attached packages:
>> [1] knitr_1.8       animation_2.3   rgl_0.95.1158   CBRIutils_1.0
>
> That's an old version of rgl; current on CRAN is 0.95.1201. 
<http://cran.r-project.org/src/contrib/rgl_0.95.1201.tar.gz> (CRAN OSX currently 
has an old binary; I don't recommend that you use it.  I don't know why they haven't 
updated to the current one.)

I'm not sure why either, but that newer package does fail compilation on both 
trunks of the Mac platform. I have version 1098 on my OSX 10.7.5 box (and I'm 
pretty sure that's the one on my Yosemite-equiped laptop. I just tried 
compiling from source on the Lion platform with the source at CRAN and it fails 
there, too. (Sometimes I am able to get packages to compile that report errors 
on CRAN.)

The first error reported from efforts at installing both 1201 and 1208 versions 
is:

checking for X... libraries , headers
checking for glEnd in -lGL... no
configure: error: missing required library GL

That looks as though it's not finding the OpenGL libraries. I think the usual way to get them on a Mac is to install XQuartz. rgl doesn't have to use X11, but it will (e.g. if you run it from RStudio), and it requires the X11 files for compiling. I haven't experimented a lot with systems that don't have XQuartz installed, but I just saw one yesterday where even the native OpenGL code (what you get when you run rgl within R.app) wouldn't start; after installing XQuartz, it was fixed.

Duncan Murdoch

______________________________________________
R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.

Reply via email to