Dear all,
The documentation on the function open3d in the rgl package, reads:
open3d opens a new rgl device, and sets the parameters as requested.
I want the new rgl device (window) to be sized and positioned in a specific
place on my screen. So, I try to set the "windowRect" parameter as follows:
> library("rgl")
> open3d(windowRect=c(100,100,500,500))
[1] 1
Obviously you can't see where the window appears, so I'll ask for the
"windowRect" parameter:
> par3d()["windowRect"]
$windowRect
[1] 2300 764 2556 1020
As you can see, the window is not positioned at (100,100) nor is the size
400x400. The size is the default 256x256 and the position is where the window
manager would put a new window if its position is unspecified.
[note: I have a dual screen setup so the coordinates are not bogus]
If, however, I use par3d to set the "windowRect", the window goes where it is
supposed to go:
> par3d(windowRect=c(100,100,500,500))
> par3d()["windowRect"]
$windowRect
[1] 104 125 504 525
The (4,25) pixels offset are the border and title bar of the window.
For completeness sake:
This behavior occurs on both Windows+ATI, Linux+ATI, Linux+NVidia.
On Windows is R version 2.7.2, and rgl version 0.81 (installed today).
Does anyone know how to set the windowRect parameter during an open3d call?
Thanks in advance,
Koen Stegen
Royal Meteorological Institute of Belgium
rgl: How to position a window during open3d call
6 messages · Koen Stegen, Duncan Murdoch, Yihui Xie
On 9/17/2008 1:13 PM, Koen Stegen wrote:
Dear all,
The documentation on the function open3d in the rgl package, reads:
open3d opens a new rgl device, and sets the parameters as requested.
I want the new rgl device (window) to be sized and positioned in a specific
place on my screen. So, I try to set the "windowRect" parameter as follows:
> library("rgl")
> open3d(windowRect=c(100,100,500,500))
[1] 1 Obviously you can't see where the window appears, so I'll ask for the "windowRect" parameter:
> par3d()["windowRect"]
$windowRect
[1] 2300 764 2556 1020
As you can see, the window is not positioned at (100,100) nor is the size
400x400. The size is the default 256x256 and the position is where the window
manager would put a new window if its position is unspecified.
[note: I have a dual screen setup so the coordinates are not bogus]
If, however, I use par3d to set the "windowRect", the window goes where it is
supposed to go:
> par3d(windowRect=c(100,100,500,500))
> par3d()["windowRect"]
$windowRect
[1] 104 125 504 525
The (4,25) pixels offset are the border and title bar of the window.
For completeness sake:
This behavior occurs on both Windows+ATI, Linux+ATI, Linux+NVidia.
On Windows is R version 2.7.2, and rgl version 0.81 (installed today).
Does anyone know how to set the windowRect parameter during an open3d call?
Looks like a bug. The open3d function is defined as
> open3d
function (..., params = get("r3dDefaults", envir = .GlobalEnv))
{
rgl.open()
clear3d("material", defaults = params)
params$material <- NULL
if (!is.null(params$bg)) {
do.call("bg3d", params$bg)
params$bg <- NULL
}
do.call("par3d", params)
return(rgl.cur())
}
<environment: namespace:rgl>
and you'll notice that the ... parameters are never used. Not sure when
this error crept in...
The workaround is simply to use par3d() after open3d().
Duncan Murdoch
Thanks in advance, Koen Stegen Royal Meteorological Institute of Belgium
______________________________________________ R-help at r-project.org mailing list 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.
Thanks Duncan, I have also been wondering about this problem for a long time. Regards, Yihui -- Yihui Xie <xieyihui at gmail.com> Phone: +86-(0)10-82509086 Fax: +86-(0)10-82509086 Mobile: +86-15810805877 Homepage: http://www.yihui.name School of Statistics, Room 1037, Mingde Main Building, Renmin University of China, Beijing, 100872, China
On Thu, Sep 18, 2008 at 1:49 AM, Duncan Murdoch <murdoch at stats.uwo.ca> wrote:
On 9/17/2008 1:13 PM, Koen Stegen wrote:
Dear all, The documentation on the function open3d in the rgl package, reads: open3d opens a new rgl device, and sets the parameters as requested. I want the new rgl device (window) to be sized and positioned in a specific place on my screen. So, I try to set the "windowRect" parameter as follows:
> library("rgl")
> open3d(windowRect=c(100,100,500,500))
[1] 1 Obviously you can't see where the window appears, so I'll ask for the "windowRect" parameter:
> par3d()["windowRect"]
$windowRect [1] 2300 764 2556 1020 As you can see, the window is not positioned at (100,100) nor is the size 400x400. The size is the default 256x256 and the position is where the window manager would put a new window if its position is unspecified. [note: I have a dual screen setup so the coordinates are not bogus] If, however, I use par3d to set the "windowRect", the window goes where it is supposed to go:
> par3d(windowRect=c(100,100,500,500)) > par3d()["windowRect"]
$windowRect [1] 104 125 504 525 The (4,25) pixels offset are the border and title bar of the window. For completeness sake: This behavior occurs on both Windows+ATI, Linux+ATI, Linux+NVidia. On Windows is R version 2.7.2, and rgl version 0.81 (installed today). Does anyone know how to set the windowRect parameter during an open3d call?
Looks like a bug. The open3d function is defined as
open3d
function (..., params = get("r3dDefaults", envir = .GlobalEnv))
{
rgl.open()
clear3d("material", defaults = params)
params$material <- NULL
if (!is.null(params$bg)) {
do.call("bg3d", params$bg)
params$bg <- NULL
}
do.call("par3d", params)
return(rgl.cur())
}
<environment: namespace:rgl>
and you'll notice that the ... parameters are never used. Not sure when
this error crept in...
The workaround is simply to use par3d() after open3d().
Duncan Murdoch
Thanks in advance, Koen Stegen Royal Meteorological Institute of Belgium
Yihui Xie wrote:
Thanks Duncan, I have also been wondering about this problem for a long time.
If you suspect a bug in a package, it's good to contact the package maintainer. Often (as in this case) they are unaware of the bug and appreciate the report. Duncan Murdoch
Regards, Yihui -- Yihui Xie <xieyihui at gmail.com> Phone: +86-(0)10-82509086 Fax: +86-(0)10-82509086 Mobile: +86-15810805877 Homepage: http://www.yihui.name School of Statistics, Room 1037, Mingde Main Building, Renmin University of China, Beijing, 100872, China On Thu, Sep 18, 2008 at 1:49 AM, Duncan Murdoch <murdoch at stats.uwo.ca> wrote:
On 9/17/2008 1:13 PM, Koen Stegen wrote:
Dear all, The documentation on the function open3d in the rgl package, reads: open3d opens a new rgl device, and sets the parameters as requested. I want the new rgl device (window) to be sized and positioned in a specific place on my screen. So, I try to set the "windowRect" parameter as follows:
> library("rgl")
> open3d(windowRect=c(100,100,500,500))
[1] 1 Obviously you can't see where the window appears, so I'll ask for the "windowRect" parameter:
> par3d()["windowRect"]
$windowRect [1] 2300 764 2556 1020 As you can see, the window is not positioned at (100,100) nor is the size 400x400. The size is the default 256x256 and the position is where the window manager would put a new window if its position is unspecified. [note: I have a dual screen setup so the coordinates are not bogus] If, however, I use par3d to set the "windowRect", the window goes where it is supposed to go:
> par3d(windowRect=c(100,100,500,500)) > par3d()["windowRect"]
$windowRect
[1] 104 125 504 525
The (4,25) pixels offset are the border and title bar of the window.
For completeness sake:
This behavior occurs on both Windows+ATI, Linux+ATI, Linux+NVidia.
On Windows is R version 2.7.2, and rgl version 0.81 (installed today).
Does anyone know how to set the windowRect parameter during an open3d
call?
Looks like a bug. The open3d function is defined as
open3d
function (..., params = get("r3dDefaults", envir = .GlobalEnv))
{
rgl.open()
clear3d("material", defaults = params)
params$material <- NULL
if (!is.null(params$bg)) {
do.call("bg3d", params$bg)
params$bg <- NULL
}
do.call("par3d", params)
return(rgl.cur())
}
<environment: namespace:rgl>
and you'll notice that the ... parameters are never used. Not sure when
this error crept in...
The workaround is simply to use par3d() after open3d().
Duncan Murdoch
Thanks in advance,
Koen Stegen
Royal Meteorological Institute of Belgium
______________________________________________ R-help at r-project.org mailing list 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.
On 18/09/2008 12:08 AM, Yihui Xie wrote:
Thanks Duncan, I have also been wondering about this problem for a long time.
This is fixed now on R-forge; eventually it will make it into the next rgl release on CRAN. You should be able to download a binary of the development version from R-forge sooner. Make sure you get version 0.81.706 or newer. Duncan Murdoch
Regards, Yihui -- Yihui Xie <xieyihui at gmail.com> Phone: +86-(0)10-82509086 Fax: +86-(0)10-82509086 Mobile: +86-15810805877 Homepage: http://www.yihui.name School of Statistics, Room 1037, Mingde Main Building, Renmin University of China, Beijing, 100872, China On Thu, Sep 18, 2008 at 1:49 AM, Duncan Murdoch <murdoch at stats.uwo.ca> wrote:
On 9/17/2008 1:13 PM, Koen Stegen wrote:
Dear all, The documentation on the function open3d in the rgl package, reads: open3d opens a new rgl device, and sets the parameters as requested. I want the new rgl device (window) to be sized and positioned in a specific place on my screen. So, I try to set the "windowRect" parameter as follows:
> library("rgl")
> open3d(windowRect=c(100,100,500,500))
[1] 1 Obviously you can't see where the window appears, so I'll ask for the "windowRect" parameter:
> par3d()["windowRect"]
$windowRect [1] 2300 764 2556 1020 As you can see, the window is not positioned at (100,100) nor is the size 400x400. The size is the default 256x256 and the position is where the window manager would put a new window if its position is unspecified. [note: I have a dual screen setup so the coordinates are not bogus] If, however, I use par3d to set the "windowRect", the window goes where it is supposed to go:
> par3d(windowRect=c(100,100,500,500)) > par3d()["windowRect"]
$windowRect [1] 104 125 504 525 The (4,25) pixels offset are the border and title bar of the window. For completeness sake: This behavior occurs on both Windows+ATI, Linux+ATI, Linux+NVidia. On Windows is R version 2.7.2, and rgl version 0.81 (installed today). Does anyone know how to set the windowRect parameter during an open3d call?
Looks like a bug. The open3d function is defined as
open3d
function (..., params = get("r3dDefaults", envir = .GlobalEnv))
{
rgl.open()
clear3d("material", defaults = params)
params$material <- NULL
if (!is.null(params$bg)) {
do.call("bg3d", params$bg)
params$bg <- NULL
}
do.call("par3d", params)
return(rgl.cur())
}
<environment: namespace:rgl>
and you'll notice that the ... parameters are never used. Not sure when
this error crept in...
The workaround is simply to use par3d() after open3d().
Duncan Murdoch
Thanks in advance, Koen Stegen Royal Meteorological Institute of Belgium
______________________________________________ R-help at r-project.org mailing list 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.
3 days later
Duncan Murdoch wrote:
This is fixed now on R-forge; eventually it will make it into the next rgl release on CRAN. You should be able to download a binary of the development version from R-forge sooner. Make sure you get version 0.81.706 or newer.
The R-forge version 0.81.706 works as advertised, both on Linux and Windows. Thanks Duncan! Koen Stegen Royal Meteorological Institute of Belgium