You can subscribe to this list here.
| 2002 |
Jan
(15) |
Feb
|
Mar
|
Apr
(8) |
May
(21) |
Jun
(7) |
Jul
(13) |
Aug
|
Sep
(5) |
Oct
(3) |
Nov
(2) |
Dec
(4) |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2003 |
Jan
(3) |
Feb
(9) |
Mar
(20) |
Apr
(13) |
May
(8) |
Jun
(6) |
Jul
|
Aug
|
Sep
(20) |
Oct
|
Nov
(2) |
Dec
|
| 2004 |
Jan
(1) |
Feb
(2) |
Mar
|
Apr
|
May
|
Jun
|
Jul
(11) |
Aug
(3) |
Sep
(15) |
Oct
(3) |
Nov
(17) |
Dec
(1) |
| 2005 |
Jan
(1) |
Feb
(3) |
Mar
(5) |
Apr
(7) |
May
|
Jun
(14) |
Jul
(5) |
Aug
(4) |
Sep
|
Oct
|
Nov
|
Dec
|
| 2006 |
Jan
|
Feb
|
Mar
|
Apr
(2) |
May
|
Jun
(1) |
Jul
(1) |
Aug
(4) |
Sep
(12) |
Oct
(1) |
Nov
(3) |
Dec
(6) |
| 2007 |
Jan
(4) |
Feb
(18) |
Mar
(6) |
Apr
|
May
|
Jun
(36) |
Jul
(1) |
Aug
(9) |
Sep
(2) |
Oct
(2) |
Nov
|
Dec
|
| 2008 |
Jan
|
Feb
|
Mar
(1) |
Apr
|
May
|
Jun
(12) |
Jul
(3) |
Aug
(6) |
Sep
(9) |
Oct
(9) |
Nov
(25) |
Dec
(5) |
| 2009 |
Jan
(7) |
Feb
(22) |
Mar
(4) |
Apr
|
May
|
Jun
|
Jul
(1) |
Aug
|
Sep
|
Oct
|
Nov
(2) |
Dec
|
| 2010 |
Jan
|
Feb
|
Mar
(1) |
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
(3) |
Oct
(2) |
Nov
(7) |
Dec
|
| 2011 |
Jan
|
Feb
(1) |
Mar
(19) |
Apr
(5) |
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
| 2012 |
Jan
|
Feb
|
Mar
|
Apr
(6) |
May
(2) |
Jun
|
Jul
|
Aug
(2) |
Sep
(2) |
Oct
(16) |
Nov
|
Dec
(1) |
| 2013 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
(1) |
Jul
(4) |
Aug
(3) |
Sep
(1) |
Oct
(1) |
Nov
|
Dec
|
| 2016 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
(6) |
Sep
|
Oct
|
Nov
|
Dec
|
|
From: John H. <jo...@co...> - 2004-08-13 09:03:01
|
How do you build the python bindings? I'm currently running: scons EnablePython=True BoostPythonDir=/blah/ But I'm not getting anything sensible built. What should I be running to get the python bindings out? jh -- "It is the final proof of God's omnipotence that he need not exist in order to save us." -- Peter De Vries |
|
From: kevin m. <ke...@su...> - 2004-07-29 14:08:14
|
---------------------------- Original Message ---------------------------- Subject: Re: [ggt-devel] Vec*EulerAngle? From: "kevin meinert" <ke...@su...> Date: Thu, July 29, 2004 8:17 am To: bb...@ma... -------------------------------------------------------------------------- If you don't see it in gmtl already, then yes, please write one. It would be in xform.h I believe if it already existed. Also, if you could provide a list of tests for your new euler*vec and xform( vec, euler, vec ) that assert on each one that would be good too since we test everything in GMTL, i.e. nothing goes in without a test. See xform.h for examples of interfaces. Just make your tests in a simple main.cpp for simplicity and we can add them in. *--*---*---*----*-----*------*------*-----*----*---*---*--* Kevin Meinert /_/ home - http://www.vrsource.org/~kevin \ / music - http://www.subatomicglue.com \/ __ \/ \__ \_\ > Thanks for your answer, > are there plans to implement > operator* for euler&Vec? > If so, I can do it when I'll have > free time. > Otherwise it should be removed from > the documentation. > > kevin meinert wrote: > >> >> most likely that operation is undefined. i.e. there is no xform() or operator* for Euler/vec >> >> try matrix or quat. remember you can convert euler to matrix >> >> newvec = gmtl::xform( gmtl::makeRot<gmtl::Matrix44f>( gmtl::EulerAngle( 4,5,6 ) ), oldvec ); >> >> try that... >> >> >> >> >> I'm wondering if we should add a vec operator to the AxisAngle class that >> returns a pointer to the internal vec memory - since the vector part is in >> yzw, we'd cast the &mData[1] to a Vec3f* >> >> *--*---*---*----*-----*------*------*-----*----*---*---*--* >> Kevin Meinert /_/ >> home - http://www.vrsource.org/~kevin \ / >> music - http://www.subatomicglue.com \/ __ \/ >> \__ >> \_\ >> >> >>>I tried to rotate a vector as >>>described in FAQ, i.e. multiply it >>>by rotational datatype(EulerAngle), >>>but program does not compile. >>>Is documentation outdated or this is >>>not implemented? >>>Here's my test program: >>> >>>#include <gmtl/gmtl.h> >>>#include <iostream> >>> >>>int main( void ) >>>{ >>> gmtl::EulerAngleXYZf >>>ang(gmtl::Math::deg2Rad(1.0f), 0.0, >>>0.0); >>> gmtl::Vec3f vec(1.0, 0.0, 0.0); >>> std::cout << vec << std::endl; >>> vec = vec*ang; >>> std::cout << vec << std::endl; >>>} >>> >>> >>> >>>------------------------------------------------------- >>>This SF.Net email is sponsored by BEA Weblogic Workshop >>>FREE Java Enterprise J2EE developer tools! >>>Get your free copy of BEA WebLogic Workshop 8.1 today. >>>http://ads.osdn.com/?ad_id=4721&alloc_id=10040&op=click >>>_______________________________________________ >>>ggt-devel mailing list >>>ggt...@li... >>>https://lists.sourceforge.net/lists/listinfo/ggt-devel >>> >> >> >> >> >> ------------------------------------------------------- >> This SF.Net email is sponsored by BEA Weblogic Workshop >> FREE Java Enterprise J2EE developer tools! >> Get your free copy of BEA WebLogic Workshop 8.1 today. >> http://ads.osdn.com/?ad_id=4721&alloc_id=10040&op=click >> _______________________________________________ >> ggt-devel mailing list >> ggt...@li... >> https://lists.sourceforge.net/lists/listinfo/ggt-devel >> >> > > > |
|
From: Mikhail G. <bb...@ma...> - 2004-07-29 12:41:39
|
Thanks for your answer, are there plans to implement operator* for euler&Vec? If so, I can do it when I'll have free time. Otherwise it should be removed from the documentation. kevin meinert wrote: > > most likely that operation is undefined. i.e. there is no xform() or > operator* for Euler/vec > > try matrix or quat. remember you can convert euler to matrix > > newvec = gmtl::xform( gmtl::makeRot<gmtl::Matrix44f>( gmtl::EulerAngle( > 4,5,6 ) ), oldvec ); > > try that... > > > > > I'm wondering if we should add a vec operator to the AxisAngle class that > returns a pointer to the internal vec memory - since the vector part is in > yzw, we'd cast the &mData[1] to a Vec3f* > > *--*---*---*----*-----*------*------*-----*----*---*---*--* > Kevin Meinert /_/ > home - http://www.vrsource.org/~kevin \ / > music - http://www.subatomicglue.com \/ __ \/ > \__ > \_\ > > >>I tried to rotate a vector as >>described in FAQ, i.e. multiply it >>by rotational datatype(EulerAngle), >>but program does not compile. >>Is documentation outdated or this is >>not implemented? >>Here's my test program: >> >>#include <gmtl/gmtl.h> >>#include <iostream> >> >>int main( void ) >>{ >> gmtl::EulerAngleXYZf >>ang(gmtl::Math::deg2Rad(1.0f), 0.0, >>0.0); >> gmtl::Vec3f vec(1.0, 0.0, 0.0); >> std::cout << vec << std::endl; >> vec = vec*ang; >> std::cout << vec << std::endl; >>} >> >> >> >>------------------------------------------------------- >>This SF.Net email is sponsored by BEA Weblogic Workshop >>FREE Java Enterprise J2EE developer tools! >>Get your free copy of BEA WebLogic Workshop 8.1 today. >>http://ads.osdn.com/?ad_id=4721&alloc_id=10040&op=click >>_______________________________________________ >>ggt-devel mailing list >>ggt...@li... >>https://lists.sourceforge.net/lists/listinfo/ggt-devel >> > > > > > ------------------------------------------------------- > This SF.Net email is sponsored by BEA Weblogic Workshop > FREE Java Enterprise J2EE developer tools! > Get your free copy of BEA WebLogic Workshop 8.1 today. > http://ads.osdn.com/?ad_id=4721&alloc_id=10040&op=click > _______________________________________________ > ggt-devel mailing list > ggt...@li... > https://lists.sourceforge.net/lists/listinfo/ggt-devel > > |
|
From: kevin m. <ke...@su...> - 2004-07-28 18:51:41
|
something that I do in my own projects when I'm adding little helper
functions like this is to have a file gmtlExtend.h where I add my own
functions into the gmtl namespace:
file gmtlExtend.h:
namespace gmtl
{
void setRotZ( float );
}
This way you can wrap up any setRot calls you need to do this. or any
simple trig functions like what you showed us. Currently we don't have
plans to put trig style rotations in gmtl - except for the existing
quat/matrix classes which use it to set the members. But if you build up
a good gmtlExtend.h library, pitch it back to us and we can consider
including it. Right now, for one function, it seems like your own project
specific extension would be better until we figure out the usefulness and
how much this kind of interface would help people.
Of course, if the other developers have an opinion, voice it here on the
list and we can go from there...
*--*---*---*----*-----*------*------*-----*----*---*---*--*
Kevin Meinert /_/
home - http://www.vrsource.org/~kevin \ /
music - http://www.subatomicglue.com \/ __ \/
\__
\_\
> Well, what I want is to rotate Axis
> component of AxisAngle, but only
> around one axis.
> something like this:
>
> //rotate around Z axis
>
> gmtl::AxisAnglef aa;
> float oldx = aa[1], oldy = aa[2];
> aa[1] = oldx*cos(theta) -
> oldy*sin(theta);
> aa[2] = oldx*sin(theta) +
> oldy*sin(theta);
>
> It would be simpler and more
> readable to write
>
> gmtl::setRotZ(aa, theta);
>
> kevin meinert wrote:
>> If you have come code (or pseudo code) in mind, post it to the list,
>> we'll
>> take a look to see what specific functionality you need, and if it is
>> something that we forgot in gmtl, we'd be happy to include it.
>>
>>
>> For an AxisAngle, isn't rotation about one axis simply setting the axis
>> and the angle? I'm not sure what more you could want. Maybe when you
>> post the code I'll understand better.
>>
>> *--*---*---*----*-----*------*------*-----*----*---*---*--*
>> Kevin Meinert /_/
>> home - http://www.vrsource.org/~kevin \ /
>> music - http://www.subatomicglue.com \/ __ \/
>> \__
>> \_\
>>
>>
>>>kevin meinert wrote:
>>>
>>>>can't you set the angle/axis directly on the AxisAngle class? I don't
>>>>have the code handy to look at so I'm guessing...
>>>>
>>>>there's probably a setter or a constructor for this...
>>>
>>>yes, there is operator[] and I can
>>>do it by hand.
>>>But I think it would be simpler for
>>>the programmer to have separate
>>>functions to do rotation around one
>>>axis.
>>>I can contribute these, if you want.
>>>
>>>
>>>>*--*---*---*----*-----*------*------*-----*----*---*---*--*
>>>>Kevin Meinert /_/
>>>>home - http://www.vrsource.org/~kevin \ /
>>>>music - http://www.subatomicglue.com \/ __ \/
>>>> \__
>>>> \_\
>>>>
>>>>
>>>>
>>>>>Hello,
>>>>>I'm using gmtl(specifically, your
>>>>>AxisAngle class).
>>>>>Currently, I find gmtl's method of
>>>>>rotating axis component of AxisAngle
>>>>>representation inconvenient.
>>>>>I have to extract Vec from
>>>>>AxisAngle, build a rotation matrix,
>>>>>multiply Vec by it and use setAxis
>>>>>to set the axis component. I have to
>>>>>do it even if I need rotation only
>>>>>around one axis.
>>>>>It would be nice if I could write
>>>>>like this:
>>>>> AxisAngle aa; float xangle;
>>>>> gmtl::setRotX(aa, xangle);
>>>>>Or maybe I just don't understand
>>>>>something about Axis-Angle
>>>>>representation?
>>>>>
>>>>>
>>>>>
>>>>>-------------------------------------------------------
>>>>>This SF.Net email is sponsored by BEA Weblogic Workshop
>>>>>FREE Java Enterprise J2EE developer tools!
>>>>>Get your free copy of BEA WebLogic Workshop 8.1 today.
>>>>>http://ads.osdn.com/?ad_id=4721&alloc_id=10040&op=click
>>>>>_______________________________________________
>>>>>ggt-devel mailing list
>>>>>ggt...@li...
>>>>>https://lists.sourceforge.net/lists/listinfo/ggt-devel
>>>>>
>>>>
>>>>
>>>>
>>>>
>>>
>>>
>>>
>>>-------------------------------------------------------
>>>This SF.Net email is sponsored by BEA Weblogic Workshop
>>>FREE Java Enterprise J2EE developer tools!
>>>Get your free copy of BEA WebLogic Workshop 8.1 today.
>>>http://ads.osdn.com/?ad_id=4721&alloc_id=10040&op=click
>>>_______________________________________________
>>>ggt-devel mailing list
>>>ggt...@li...
>>>https://lists.sourceforge.net/lists/listinfo/ggt-devel
>>>
>>
>>
>>
>>
>> -------------------------------------------------------
>> This SF.Net email is sponsored by BEA Weblogic Workshop
>> FREE Java Enterprise J2EE developer tools!
>> Get your free copy of BEA WebLogic Workshop 8.1 today.
>> http://ads.osdn.com/?ad_id=4721&alloc_id=10040&op=click
>> _______________________________________________
>> ggt-devel mailing list
>> ggt...@li...
>> https://lists.sourceforge.net/lists/listinfo/ggt-devel
>>
>>
>
>
>
|
|
From: kevin m. <ke...@su...> - 2004-07-28 18:43:21
|
most likely that operation is undefined. i.e. there is no xform() or operator* for Euler/vec try matrix or quat. remember you can convert euler to matrix newvec = gmtl::xform( gmtl::makeRot<gmtl::Matrix44f>( gmtl::EulerAngle( 4,5,6 ) ), oldvec ); try that... I'm wondering if we should add a vec operator to the AxisAngle class that returns a pointer to the internal vec memory - since the vector part is in yzw, we'd cast the &mData[1] to a Vec3f* *--*---*---*----*-----*------*------*-----*----*---*---*--* Kevin Meinert /_/ home - http://www.vrsource.org/~kevin \ / music - http://www.subatomicglue.com \/ __ \/ \__ \_\ > I tried to rotate a vector as > described in FAQ, i.e. multiply it > by rotational datatype(EulerAngle), > but program does not compile. > Is documentation outdated or this is > not implemented? > Here's my test program: > > #include <gmtl/gmtl.h> > #include <iostream> > > int main( void ) > { > gmtl::EulerAngleXYZf > ang(gmtl::Math::deg2Rad(1.0f), 0.0, > 0.0); > gmtl::Vec3f vec(1.0, 0.0, 0.0); > std::cout << vec << std::endl; > vec = vec*ang; > std::cout << vec << std::endl; > } > > > > ------------------------------------------------------- > This SF.Net email is sponsored by BEA Weblogic Workshop > FREE Java Enterprise J2EE developer tools! > Get your free copy of BEA WebLogic Workshop 8.1 today. > http://ads.osdn.com/?ad_id=4721&alloc_id=10040&op=click > _______________________________________________ > ggt-devel mailing list > ggt...@li... > https://lists.sourceforge.net/lists/listinfo/ggt-devel > |
|
From: Mikhail G. <bb...@ma...> - 2004-07-23 20:16:26
|
Well, what I want is to rotate Axis component of AxisAngle, but only around one axis. something like this: //rotate around Z axis gmtl::AxisAnglef aa; float oldx = aa[1], oldy = aa[2]; aa[1] = oldx*cos(theta) - oldy*sin(theta); aa[2] = oldx*sin(theta) + oldy*sin(theta); It would be simpler and more readable to write gmtl::setRotZ(aa, theta); kevin meinert wrote: > If you have come code (or pseudo code) in mind, post it to the list, we'll > take a look to see what specific functionality you need, and if it is > something that we forgot in gmtl, we'd be happy to include it. > > > For an AxisAngle, isn't rotation about one axis simply setting the axis > and the angle? I'm not sure what more you could want. Maybe when you > post the code I'll understand better. > > *--*---*---*----*-----*------*------*-----*----*---*---*--* > Kevin Meinert /_/ > home - http://www.vrsource.org/~kevin \ / > music - http://www.subatomicglue.com \/ __ \/ > \__ > \_\ > > >> kevin meinert wrote: >> >>> can't you set the angle/axis directly on the AxisAngle class? I don't >>> have the code handy to look at so I'm guessing... >>> >>> there's probably a setter or a constructor for this... >> >> >> yes, there is operator[] and I can >> do it by hand. >> But I think it would be simpler for >> the programmer to have separate >> functions to do rotation around one >> axis. >> I can contribute these, if you want. >> >> >>> *--*---*---*----*-----*------*------*-----*----*---*---*--* >>> Kevin Meinert /_/ >>> home - http://www.vrsource.org/~kevin \ / >>> music - http://www.subatomicglue.com \/ __ \/ >>> \__ >>> \_\ >>> >>> >>> >>>> Hello, >>>> I'm using gmtl(specifically, your >>>> AxisAngle class). >>>> Currently, I find gmtl's method of >>>> rotating axis component of AxisAngle >>>> representation inconvenient. >>>> I have to extract Vec from >>>> AxisAngle, build a rotation matrix, >>>> multiply Vec by it and use setAxis >>>> to set the axis component. I have to >>>> do it even if I need rotation only >>>> around one axis. >>>> It would be nice if I could write >>>> like this: >>>> AxisAngle aa; float xangle; >>>> gmtl::setRotX(aa, xangle); >>>> Or maybe I just don't understand >>>> something about Axis-Angle >>>> representation? >>>> >>>> >>>> >>>> ------------------------------------------------------- >>>> This SF.Net email is sponsored by BEA Weblogic Workshop >>>> FREE Java Enterprise J2EE developer tools! >>>> Get your free copy of BEA WebLogic Workshop 8.1 today. >>>> http://ads.osdn.com/?ad_id=4721&alloc_id=10040&op=click >>>> _______________________________________________ >>>> ggt-devel mailing list >>>> ggt...@li... >>>> https://lists.sourceforge.net/lists/listinfo/ggt-devel >>>> >>> >>> >>> >>> >> >> >> >> ------------------------------------------------------- >> This SF.Net email is sponsored by BEA Weblogic Workshop >> FREE Java Enterprise J2EE developer tools! >> Get your free copy of BEA WebLogic Workshop 8.1 today. >> http://ads.osdn.com/?ad_id=4721&alloc_id=10040&op=click >> _______________________________________________ >> ggt-devel mailing list >> ggt...@li... >> https://lists.sourceforge.net/lists/listinfo/ggt-devel >> > > > > > ------------------------------------------------------- > This SF.Net email is sponsored by BEA Weblogic Workshop > FREE Java Enterprise J2EE developer tools! > Get your free copy of BEA WebLogic Workshop 8.1 today. > http://ads.osdn.com/?ad_id=4721&alloc_id=10040&op=click > _______________________________________________ > ggt-devel mailing list > ggt...@li... > https://lists.sourceforge.net/lists/listinfo/ggt-devel > > |
|
From: <ba...@in...> - 2004-07-23 20:14:52
|
Well, what I want is to rotate Axis
component of AxisAngle, but only
around one axis.
something like this:
//rotate around Z axis
gmtl::AxisAnglef aa;
float oldx = aa[1], oldy = aa[2];
aa[1] = oldx*cos(theta) -
oldy*sin(theta);
aa[2] = oldx*sin(theta) +
oldy*sin(theta);
It would be simpler and more
readable to write
gmtl::setRotZ(aa, theta);
kevin meinert wrote:
> If you have come code (or pseudo
code) in mind, post it to the list,
we'll
> take a look to see what specific
functionality you need, and if it is
> something that we forgot in gmtl,
we'd be happy to include it.
>
>
> For an AxisAngle, isn't rotation
about one axis simply setting the axis
> and the angle? I'm not sure what
more you could want. Maybe when you
> post the code I'll understand better.
>
>
*--*---*---*----*-----*------*------*-----*----*---*---*--*
> Kevin Meinert
/_/
> home -
http://www.vrsource.org/~kevin
\ /
> music -
http://www.subatomicglue.com
\/ __ \/
>
\__
>
\_\
>
>
>> kevin meinert wrote:
>>
>>> can't you set the angle/axis
directly on the AxisAngle class? I
don't
>>> have the code handy to look at
so I'm guessing...
>>>
>>> there's probably a setter or a
constructor for this...
>>
>>
>> yes, there is operator[] and I can
>> do it by hand.
>> But I think it would be simpler for
>> the programmer to have separate
>> functions to do rotation around one
>> axis.
>> I can contribute these, if you want.
>>
>>
>>>
*--*---*---*----*-----*------*------*-----*----*---*---*--*
>>> Kevin Meinert
/_/
>>> home -
http://www.vrsource.org/~kevin
\ /
>>> music -
http://www.subatomicglue.com
\/ __ \/
>>>
\__
>>>
\_\
>>>
>>>
>>>
>>>> Hello,
>>>> I'm using gmtl(specifically, your
>>>> AxisAngle class).
>>>> Currently, I find gmtl's method of
>>>> rotating axis component of
AxisAngle
>>>> representation inconvenient.
>>>> I have to extract Vec from
>>>> AxisAngle, build a rotation
matrix,
>>>> multiply Vec by it and use setAxis
>>>> to set the axis component. I
have to
>>>> do it even if I need rotation only
>>>> around one axis.
>>>> It would be nice if I could write
>>>> like this:
>>>> AxisAngle aa; float
xangle;
>>>> gmtl::setRotX(aa, xangle);
>>>> Or maybe I just don't understand
>>>> something about Axis-Angle
>>>> representation?
>>>>
>>>>
>>>>
>>>>
-------------------------------------------------------
>>>> This SF.Net email is sponsored
by BEA Weblogic Workshop
>>>> FREE Java Enterprise J2EE
developer tools!
>>>> Get your free copy of BEA
WebLogic Workshop 8.1 today.
>>>>
http://ads.osdn.com/?ad_id=4721&alloc_id=10040&op=click
>>>>
_______________________________________________
>>>> ggt-devel mailing list
>>>> ggt...@li...
>>>>
https://lists.sourceforge.net/lists/listinfo/ggt-devel
>>>>
>>>
>>>
>>>
>>>
>>
>>
>>
>>
-------------------------------------------------------
>> This SF.Net email is sponsored
by BEA Weblogic Workshop
>> FREE Java Enterprise J2EE
developer tools!
>> Get your free copy of BEA
WebLogic Workshop 8.1 today.
>>
http://ads.osdn.com/?ad_id=4721&alloc_id=10040&op=click
>>
_______________________________________________
>> ggt-devel mailing list
>> ggt...@li...
>>
https://lists.sourceforge.net/lists/listinfo/ggt-devel
>>
>
>
>
>
>
-------------------------------------------------------
> This SF.Net email is sponsored by
BEA Weblogic Workshop
> FREE Java Enterprise J2EE
developer tools!
> Get your free copy of BEA
WebLogic Workshop 8.1 today.
>
http://ads.osdn.com/?ad_id=4721&alloc_id=10040&op=click
>
_______________________________________________
> ggt-devel mailing list
> ggt...@li...
>
https://lists.sourceforge.net/lists/listinfo/ggt-devel
>
>
|
|
From: Mikhail G. <bb...@ma...> - 2004-07-23 20:12:14
|
I tried to rotate a vector as
described in FAQ, i.e. multiply it
by rotational datatype(EulerAngle),
but program does not compile.
Is documentation outdated or this is
not implemented?
Here's my test program:
#include <gmtl/gmtl.h>
#include <iostream>
int main( void )
{
gmtl::EulerAngleXYZf
ang(gmtl::Math::deg2Rad(1.0f), 0.0,
0.0);
gmtl::Vec3f vec(1.0, 0.0, 0.0);
std::cout << vec << std::endl;
vec = vec*ang;
std::cout << vec << std::endl;
}
|
|
From: kevin m. <ke...@su...> - 2004-07-23 15:45:49
|
If you have come code (or pseudo code) in mind, post it to the list, we'll take a look to see what specific functionality you need, and if it is something that we forgot in gmtl, we'd be happy to include it. For an AxisAngle, isn't rotation about one axis simply setting the axis and the angle? I'm not sure what more you could want. Maybe when you post the code I'll understand better. *--*---*---*----*-----*------*------*-----*----*---*---*--* Kevin Meinert /_/ home - http://www.vrsource.org/~kevin \ / music - http://www.subatomicglue.com \/ __ \/ \__ \_\ > kevin meinert wrote: >> can't you set the angle/axis directly on the AxisAngle class? I don't >> have the code handy to look at so I'm guessing... >> >> there's probably a setter or a constructor for this... > yes, there is operator[] and I can > do it by hand. > But I think it would be simpler for > the programmer to have separate > functions to do rotation around one > axis. > I can contribute these, if you want. > >> >> *--*---*---*----*-----*------*------*-----*----*---*---*--* >> Kevin Meinert /_/ >> home - http://www.vrsource.org/~kevin \ / >> music - http://www.subatomicglue.com \/ __ \/ >> \__ >> \_\ >> >> >>>Hello, >>>I'm using gmtl(specifically, your >>>AxisAngle class). >>>Currently, I find gmtl's method of >>>rotating axis component of AxisAngle >>>representation inconvenient. >>>I have to extract Vec from >>>AxisAngle, build a rotation matrix, >>>multiply Vec by it and use setAxis >>>to set the axis component. I have to >>>do it even if I need rotation only >>>around one axis. >>>It would be nice if I could write >>>like this: >>> AxisAngle aa; float xangle; >>> gmtl::setRotX(aa, xangle); >>>Or maybe I just don't understand >>>something about Axis-Angle >>>representation? >>> >>> >>> >>>------------------------------------------------------- >>>This SF.Net email is sponsored by BEA Weblogic Workshop >>>FREE Java Enterprise J2EE developer tools! >>>Get your free copy of BEA WebLogic Workshop 8.1 today. >>>http://ads.osdn.com/?ad_id=4721&alloc_id=10040&op=click >>>_______________________________________________ >>>ggt-devel mailing list >>>ggt...@li... >>>https://lists.sourceforge.net/lists/listinfo/ggt-devel >>> >> >> >> >> > > > > > ------------------------------------------------------- > This SF.Net email is sponsored by BEA Weblogic Workshop > FREE Java Enterprise J2EE developer tools! > Get your free copy of BEA WebLogic Workshop 8.1 today. > http://ads.osdn.com/?ad_id=4721&alloc_id=10040&op=click > _______________________________________________ > ggt-devel mailing list > ggt...@li... > https://lists.sourceforge.net/lists/listinfo/ggt-devel > |
|
From: Mikhail G. <bb...@ma...> - 2004-07-23 14:37:17
|
kevin meinert wrote: > can't you set the angle/axis directly on the AxisAngle class? I don't > have the code handy to look at so I'm guessing... > > there's probably a setter or a constructor for this... yes, there is operator[] and I can do it by hand. But I think it would be simpler for the programmer to have separate functions to do rotation around one axis. I can contribute these, if you want. > > *--*---*---*----*-----*------*------*-----*----*---*---*--* > Kevin Meinert /_/ > home - http://www.vrsource.org/~kevin \ / > music - http://www.subatomicglue.com \/ __ \/ > \__ > \_\ > > >>Hello, >>I'm using gmtl(specifically, your >>AxisAngle class). >>Currently, I find gmtl's method of >>rotating axis component of AxisAngle >>representation inconvenient. >>I have to extract Vec from >>AxisAngle, build a rotation matrix, >>multiply Vec by it and use setAxis >>to set the axis component. I have to >>do it even if I need rotation only >>around one axis. >>It would be nice if I could write >>like this: >> AxisAngle aa; float xangle; >> gmtl::setRotX(aa, xangle); >>Or maybe I just don't understand >>something about Axis-Angle >>representation? >> >> >> >>------------------------------------------------------- >>This SF.Net email is sponsored by BEA Weblogic Workshop >>FREE Java Enterprise J2EE developer tools! >>Get your free copy of BEA WebLogic Workshop 8.1 today. >>http://ads.osdn.com/?ad_id=4721&alloc_id=10040&op=click >>_______________________________________________ >>ggt-devel mailing list >>ggt...@li... >>https://lists.sourceforge.net/lists/listinfo/ggt-devel >> > > > > |
|
From: kevin m. <ke...@su...> - 2004-07-22 23:50:25
|
can't you set the angle/axis directly on the AxisAngle class? I don't have the code handy to look at so I'm guessing... there's probably a setter or a constructor for this... *--*---*---*----*-----*------*------*-----*----*---*---*--* Kevin Meinert /_/ home - http://www.vrsource.org/~kevin \ / music - http://www.subatomicglue.com \/ __ \/ \__ \_\ > Hello, > I'm using gmtl(specifically, your > AxisAngle class). > Currently, I find gmtl's method of > rotating axis component of AxisAngle > representation inconvenient. > I have to extract Vec from > AxisAngle, build a rotation matrix, > multiply Vec by it and use setAxis > to set the axis component. I have to > do it even if I need rotation only > around one axis. > It would be nice if I could write > like this: > AxisAngle aa; float xangle; > gmtl::setRotX(aa, xangle); > Or maybe I just don't understand > something about Axis-Angle > representation? > > > > ------------------------------------------------------- > This SF.Net email is sponsored by BEA Weblogic Workshop > FREE Java Enterprise J2EE developer tools! > Get your free copy of BEA WebLogic Workshop 8.1 today. > http://ads.osdn.com/?ad_id=4721&alloc_id=10040&op=click > _______________________________________________ > ggt-devel mailing list > ggt...@li... > https://lists.sourceforge.net/lists/listinfo/ggt-devel > |
|
From: Mikhail G. <bb...@ma...> - 2004-07-22 20:51:55
|
Hello, I'm using gmtl(specifically, your AxisAngle class). Currently, I find gmtl's method of rotating axis component of AxisAngle representation inconvenient. I have to extract Vec from AxisAngle, build a rotation matrix, multiply Vec by it and use setAxis to set the axis component. I have to do it even if I need rotation only around one axis. It would be nice if I could write like this: AxisAngle aa; float xangle; gmtl::setRotX(aa, xangle); Or maybe I just don't understand something about Axis-Angle representation? |
|
From: Patrick H. <pa...@13...> - 2004-02-17 18:03:54
|
This all sounds okay to me, though I am confused by the use of the term
"static linking" when what is meant is inlining of code. Is that a
common usage that people would understand?
-Patrick
On Fri, 2004-02-13 at 10:34, Allen Bierbaum wrote:
> I just checked in a change to the license for GMTL. This change is=20
> meant to address several issues that have come up over the last several=20
> months related to using GMTL in non-GPL'ed applications/libraries.
>=20
> There is an issue with the LGPL license that makes it difficult to use=20
> this license with libraries composed entirely of inline and templated cod=
e.
>=20
> GMTL is still licensed under the LGPL, but it now has a license addendum=20
> that softens some of the LGPL restrictions and explicitly allows for=20
> static linking of the code.
>=20
> If everyone is happy with this addendum, then we can start using it=20
> immediately.
>=20
> -Allen
>=20
>=20
> The addendum reads as follows:
>=20
> ADDENDUM TO LICENSE
> February 2004
>=20
> Copyright (C) 2004
>=20
> Everyone is permitted to create and distribute verbatim copies of this
> license addendum document, but changing it is not allowed.
>=20
> GMTL License Addendum:
>=20
> 0. GMTL ("The Library") is licensed under GNU Lesser General Public
> License as published by the Free Software Foundation, version 2.1 of
> the License, or (at your option) any later version, with the following
> additional conditions. The following conditions take precedence over
> any conditions or restrictions stipulated by the Lesser General Public
> License insofar as a conflict exists.
>=20
> 1. The GMTL License Agreement ("License") covers only GMTL ("The Library"=
).
> Other libraries which the Library may use are covered by their own
> respective licenses.
>=20
> 2. Statically linking of a copy of the Library against any work using
> the Library, i.e. the inclusion of (parts of) the Library into a program
> or binary, is functionally equivalent to a work using the Library by
> linking to it dynamically, and therefore does not constitute creating
> a modified or derivative work based on the Library.
>=20
> This specifically extends paragraph 5 of the GNU Lesser General Public
> License to allow for inclusion of code in excess of 10 lines in length.
> There is no limit on the length of the code segements that are statically
> linked into an application. This clause is meant to allow for the use
> of large inline methods, templated code, and template meta programs.
>=20
> 3. Otherwise, if the work is a derivative of the Library, you may
> distribute the object code for the work under the terms of the GNU
> Lesser General Public License. Any executables containing that work
> also may be distributed under the Lesser General Public License
> whether or not if they are linked directly with the Library itself.
>=20
> 4. Programs or binaries linked with the Library must be identified as
> such by including, in the Documentation or by other means (for example
> in the About Box or Online Help), the following statement:
>=20
> "This software uses GMTL (http://ggt.sourceforge.net)."
>=20
>=20
>=20
> -------------------------------------------------------
> SF.Net is sponsored by: Speed Start Your Linux Apps Now.
> Build and deploy apps & Web services for Linux with
> a free DVD software kit from IBM. Click Now!
> http://ads.osdn.com/?ad_id=3D1356&alloc_id=3D3438&op=3Dclick
> _______________________________________________
> ggt-devel mailing list
> ggt...@li...
> https://lists.sourceforge.net/lists/listinfo/ggt-devel
--=20
Patrick L. Hartling | Research Assistant, VRAC
pa...@13... | 2274 Howe Hall Room 2624
http://www.137.org/patrick/ | http://www.vrac.iastate.edu/
PGP: http://wwwkeys.gpg.cz:11371/pks/lookup?op=3Dget&search=3D0xC874F217
|
|
From: Allen B. <al...@vr...> - 2004-02-13 16:39:30
|
I just checked in a change to the license for GMTL. This change is
meant to address several issues that have come up over the last several
months related to using GMTL in non-GPL'ed applications/libraries.
There is an issue with the LGPL license that makes it difficult to use
this license with libraries composed entirely of inline and templated code.
GMTL is still licensed under the LGPL, but it now has a license addendum
that softens some of the LGPL restrictions and explicitly allows for
static linking of the code.
If everyone is happy with this addendum, then we can start using it
immediately.
-Allen
The addendum reads as follows:
ADDENDUM TO LICENSE
February 2004
Copyright (C) 2004
Everyone is permitted to create and distribute verbatim copies of this
license addendum document, but changing it is not allowed.
GMTL License Addendum:
0. GMTL ("The Library") is licensed under GNU Lesser General Public
License as published by the Free Software Foundation, version 2.1 of
the License, or (at your option) any later version, with the following
additional conditions. The following conditions take precedence over
any conditions or restrictions stipulated by the Lesser General Public
License insofar as a conflict exists.
1. The GMTL License Agreement ("License") covers only GMTL ("The Library").
Other libraries which the Library may use are covered by their own
respective licenses.
2. Statically linking of a copy of the Library against any work using
the Library, i.e. the inclusion of (parts of) the Library into a program
or binary, is functionally equivalent to a work using the Library by
linking to it dynamically, and therefore does not constitute creating
a modified or derivative work based on the Library.
This specifically extends paragraph 5 of the GNU Lesser General Public
License to allow for inclusion of code in excess of 10 lines in length.
There is no limit on the length of the code segements that are statically
linked into an application. This clause is meant to allow for the use
of large inline methods, templated code, and template meta programs.
3. Otherwise, if the work is a derivative of the Library, you may
distribute the object code for the work under the terms of the GNU
Lesser General Public License. Any executables containing that work
also may be distributed under the Lesser General Public License
whether or not if they are linked directly with the Library itself.
4. Programs or binaries linked with the Library must be identified as
such by including, in the Documentation or by other means (for example
in the About Box or Online Help), the following statement:
"This software uses GMTL (http://ggt.sourceforge.net)."
|
|
From: Patrick H. <pa...@vr...> - 2004-01-28 21:05:31
|
I uploaded a snapshot of GMTL this afternoon and gave it the version 0.3.2. I figured that it had been too long since the last release, and some pretty important bug fixes have been made in the meantime. -Patrick --=20 Patrick L. Hartling | Research Assistant, VRAC pa...@vr... | 2274 Howe Hall Room 2624 http://www.vrac.iastate.edu/~patrick/ | http://www.vrac.iastate.edu/ PGP: http://wwwkeys.gpg.cz:11371/pks/lookup?op=3Dget&search=3D0xEBF86398 |
|
From: SourceForge.net <no...@so...> - 2003-11-26 19:38:44
|
Bugs item #849819, was opened at 2003-11-26 13:29 Message generated for change (Comment added) made by aegis You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=437247&aid=849819&group_id=43735 Category: None Group: None Status: Open Resolution: None Priority: 5 Submitted By: Chad Austin (aegis) Assigned to: Nobody/Anonymous (nobody) Summary: 0.2.1 build broken in newest SCons Initial Comment: Chad@dads /usr/src/gmtl-0.2.1 $ scons install scons: Reading SConscript files ... Building GMTL Version: 0.2.1 scons: *** Illegal Options.Add() key `with-cppunit' File "SConstruct", line 189, in ? changing with-cppunit to with_cppunit fixes the problem ---------------------------------------------------------------------- >Comment By: Chad Austin (aegis) Date: 2003-11-26 13:38 Message: Logged In: YES user_id=7212 I spoke too soon. ParseConfig(env, ...) should be changed to env.ParseConfig(...) and "lambda k,v:" should become "lambda k,v,env:" Works now, at least. ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=437247&aid=849819&group_id=43735 |
|
From: SourceForge.net <no...@so...> - 2003-11-26 19:29:20
|
Bugs item #849819, was opened at 2003-11-26 13:29 Message generated for change (Tracker Item Submitted) made by Item Submitter You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=437247&aid=849819&group_id=43735 Category: None Group: None Status: Open Resolution: None Priority: 5 Submitted By: Chad Austin (aegis) Assigned to: Nobody/Anonymous (nobody) Summary: 0.2.1 build broken in newest SCons Initial Comment: Chad@dads /usr/src/gmtl-0.2.1 $ scons install scons: Reading SConscript files ... Building GMTL Version: 0.2.1 scons: *** Illegal Options.Add() key `with-cppunit' File "SConstruct", line 189, in ? changing with-cppunit to with_cppunit fixes the problem ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=437247&aid=849819&group_id=43735 |
|
From: Ben S. <bs...@ga...> - 2003-09-24 20:09:05
|
OK, the new functions have been added to gmtl (in gmtl/Generate.h) with the following signatures. void setColumn(Vec& dest, const Matrix& src, unsigned col); Vec makeColumn(const Matrix& src, unsigned col); void setRow(Vec& dest, const Matrix& src, unsigned row); Vec makeRow(const Matrix& src, unsigned row); I hope this is sufficient for you. The changes are available in the latest CVS version of GMTL and will be there for the next release (whenever that may be ...). cheers, -Ben > I'd be happy with either one. I personally prefer the second one since it > doesn't require the user to create a temporary variable prior to using the > routine. > > Matrix44f lookat_mat = > LookAt(gmtl::GetColumn(3,mat),gmtl::GetColumn(1,mat)); > > as opposed to: > > Vec3f a,b; > gmtl::GetColumn(3,mat,a); > gmtl::GetColumn(1,mat,b); > Matrix44f lookat_mat = LookAt(a,b); > > Thanks for looking into this! > > E. > > At 10:39 09/23/2003 -0500, Allen Bierbaum wrote: >>Ben Scott wrote: >>>While it could be considered an unneeded function because you can >>> achieve >>>the same functionality on your own, I have often wanted the ability to >>> get >>>a column from a matrix as vector - especially when getting the forward >>>vector for entities or doing billboarding. It's a relatively simple >>>function that will bloat the API but not the user's code unless they use >>>it. I figure that GMTL is hard enough for most people to grok because of >>>the templates that anything we can do to help them use it and like it is >>>good. >>>I guess if Allen agrees with you and doesn't want it in the library I'll >>>concede and just send Eric the patch rather than commit it. >>>cheers, >>>-Ben >> >>Sounds like a good idea to me. I would think a GetColumn and a GetRow >>method would be helpful. >> >>As far as where to put it, we could make it a gmtl method. Something >> like: >> >>gmtl::getColumn(unsigned col, Matrix& mat, Vec& vec) >> >>and/or >> >>Vec gmtl::getColumn(unsigned col, Matrix& mat) >> >>What do you guys think? >> >>-Allen >> >>> >>>> >>>>I'm not sure it was an ambiguity, rather it was an effort not to bloat >>>> the >>>>code with unneeded functions. >>>> >>>>for example, you can easily write your own GetColumn using the element >>>>accessor operator ( mat[row][col] ). >>>> >>>>I see it as unneeded, but I'll defer the descision to allen or ben >>>> since I >>>>don't feel too strongly about it. >>>> >>>>kevin >>>> >>>> >>>>On Mon, 22 Sep 2003, Eric Maslowski wrote: >>>> >>>> >>>>>Ben said he was going to take a look into adding GetColumn() routine >>>>> to >>>>>the >>>>>library to simplify this ambiguity. Thanks for the response. >>>>> >>>>>cheers >>>>> >>>>>E. >>>>> >>>>>At 15:13 09/22/2003 -0500, you wrote: >>>>> >>>>> >>>>>>mats are column ordered, so that helps. you should be able to index >>>>> >>>>>one >>>>> >>>>>>element and dereference it to get the column. >>>>>> >>>>>>I think (float*)&mat.mData[0] would be the first column, which if you >>>>> >>>>>init >>>>> >>>>>>a Vec with it: >>>>>> >>>>>>gmtl::Vec4f col; >>>>>>col.set( (float*)&mat.mData[0] ); >>>>>> >>>>>> >>>>>>second column (example): >>>>>> >>>>>> col.set( (float*)&mat(0,1) ); >>>>>> >>>>>> >>>>>>4th column (translation component): >>>>>> >>>>>> col.set( (float*)&mat[0][3] ); >>>>>> >>>>>> >>>>>> >>>>>>-kevin >>>>>> >>>>>> >>>>>> >>>>>>On Mon, 22 Sep 2003, Eric Maslowski wrote: >>>>>> >>>>>> >>>>>>>How this is the right list: What is the recommended method for >>>>>grabbing an >>>>> >>>>>>>entire column? >>>>>>> >>>>>>>Can't seem to find a general GetColumn() routine in the Matrix >>>>>definition. >>>>> >>>>>>>I can't seem to even grab the components and throw them in a vector >>>>>when >>>>> >>>>>>>the Matrix44f is a pointer. >>>>>>> >>>>>>>Matrix44f* mat = entity->GetTransform(); // GetTransform() returns >>>>>> >>>>>>Matrix44f* >>>>>> >>>>>>>Vec3f out_vec(mat[2][0],mat[2][1],mat[2][2]); >>>>>>> >>>>>>>yields: >>>>>>> >>>>>>>error C2664: 'gmtl::Vec<DATA_TYPE,SIZE>::Vec(const DATA_TYPE &,const >>>>>>>DATA_TYPE &,const DATA_TYPE &)' : cannot convert parameter 1 from >>>>>>>'gmtl::Matrix<DATA_TYPE,ROWS,COLS>::RowAccessor *' to 'const float >>>>>&' >>>>> >>>>>>>Any help would be greatly appreciated. >>>>>>> >>>>>>>cheers >>>>>>> >>>>>>>E. >>>>>>> >>>>>>> >>>>>>> >>>>>>>------------------------------------------------------- >>>>>>>This sf.net email is sponsored by:ThinkGeek >>>>>>>Welcome to geek heaven. >>>>>>>http://thinkgeek.com/sf >>>>>>>_______________________________________________ >>>>>>>ggt-devel mailing list >>>>>>>ggt...@li... >>>>>>>https://lists.sourceforge.net/lists/listinfo/ggt-devel >>>>>> >>>>>>-- >>>>>>*--*---*---*----*-----*------*------*-----*----*---*---*--* >>>>>>Kevin Meinert /_/ >>>>>>home - http://www.vrsource.org/~kevin \ / >>>>>>music - http://www.subatomicglue.com \/ __ \/ >>>>>> \__ >>>>>> \_\ >>>>> >>>>-- >>>>*--*---*---*----*-----*------*------*-----*----*---*---*--* >>>>Kevin Meinert /_/ >>>>home - http://www.vrsource.org/~kevin \ / >>>>music - http://www.subatomicglue.com \/ __ \/ >>>> \__ >>>> \_\ >>>> >>> >>> >>>------------------------------------------------------- >>>This sf.net email is sponsored by:ThinkGeek >>>Welcome to geek heaven. >>>http://thinkgeek.com/sf >>>_______________________________________________ >>>ggt-devel mailing list >>>ggt...@li... >>>https://lists.sourceforge.net/lists/listinfo/ggt-devel >> >> >> >>-- >>-- Allen Bierbaum al...@vr... -- >>-- VR Juggler Team www.vrjuggler.org -- >>-- Virtual Reality Applications Center www.vrac.iastate.edu -- >> >> >> >> >>------------------------------------------------------- >>This sf.net email is sponsored by:ThinkGeek >>Welcome to geek heaven. >>http://thinkgeek.com/sf >>_______________________________________________ >>ggt-devel mailing list >>ggt...@li... >>https://lists.sourceforge.net/lists/listinfo/ggt-devel > > > > ------------------------------------------------------- > This sf.net email is sponsored by:ThinkGeek > Welcome to geek heaven. > http://thinkgeek.com/sf > _______________________________________________ > ggt-devel mailing list > ggt...@li... > https://lists.sourceforge.net/lists/listinfo/ggt-devel > |
|
From: Ben S. <bs...@ga...> - 2003-09-23 20:19:14
|
>> I've also written row equivalents. They're just waiting to be committed. > > Well, what are your waiting for? :) > > Go ahead and commit them (and their associated test cases) so we can > start playing. heh ... ok, will do tonight now that i have your shining seal of approval. ;) cheers, -Ben |
|
From: Kevin M. <ke...@vr...> - 2003-09-23 19:51:45
|
sounds reasonable. though the by reference version would be useful for column. the getRow version couldn't do that... getCol by reference could be an additional case to the two getCol/getRow that returns a copy. kevin On Tue, 23 Sep 2003, Allen Bierbaum wrote: > Ben Scott wrote: > > While it could be considered an unneeded function because you can achieve > > the same functionality on your own, I have often wanted the ability to get > > a column from a matrix as vector - especially when getting the forward > > vector for entities or doing billboarding. It's a relatively simple > > function that will bloat the API but not the user's code unless they use > > it. I figure that GMTL is hard enough for most people to grok because of > > the templates that anything we can do to help them use it and like it is > > good. > > > > I guess if Allen agrees with you and doesn't want it in the library I'll > > concede and just send Eric the patch rather than commit it. > > > > cheers, > > -Ben > > Sounds like a good idea to me. I would think a GetColumn and a GetRow > method would be helpful. > > As far as where to put it, we could make it a gmtl method. Something like: > > gmtl::getColumn(unsigned col, Matrix& mat, Vec& vec) > > and/or > > Vec gmtl::getColumn(unsigned col, Matrix& mat) > > What do you guys think? > > -Allen > > > > > > >> > >>I'm not sure it was an ambiguity, rather it was an effort not to bloat the > >>code with unneeded functions. > >> > >>for example, you can easily write your own GetColumn using the element > >>accessor operator ( mat[row][col] ). > >> > >>I see it as unneeded, but I'll defer the descision to allen or ben since I > >>don't feel too strongly about it. > >> > >>kevin > >> > >> > >>On Mon, 22 Sep 2003, Eric Maslowski wrote: > >> > >> > >>>Ben said he was going to take a look into adding GetColumn() routine to > >>>the > >>>library to simplify this ambiguity. Thanks for the response. > >>> > >>>cheers > >>> > >>>E. > >>> > >>>At 15:13 09/22/2003 -0500, you wrote: > >>> > >>> > >>>>mats are column ordered, so that helps. you should be able to index > >>> > >>>one > >>> > >>>>element and dereference it to get the column. > >>>> > >>>>I think (float*)&mat.mData[0] would be the first column, which if you > >>> > >>>init > >>> > >>>>a Vec with it: > >>>> > >>>>gmtl::Vec4f col; > >>>>col.set( (float*)&mat.mData[0] ); > >>>> > >>>> > >>>>second column (example): > >>>> > >>>> col.set( (float*)&mat(0,1) ); > >>>> > >>>> > >>>>4th column (translation component): > >>>> > >>>> col.set( (float*)&mat[0][3] ); > >>>> > >>>> > >>>> > >>>>-kevin > >>>> > >>>> > >>>> > >>>>On Mon, 22 Sep 2003, Eric Maslowski wrote: > >>>> > >>>> > >>>>>How this is the right list: What is the recommended method for > >>>> > >>>grabbing an > >>> > >>>>>entire column? > >>>>> > >>>>>Can't seem to find a general GetColumn() routine in the Matrix > >>>> > >>>definition. > >>> > >>>>>I can't seem to even grab the components and throw them in a vector > >>>> > >>>when > >>> > >>>>>the Matrix44f is a pointer. > >>>>> > >>>>>Matrix44f* mat = entity->GetTransform(); // GetTransform() returns > >>>> > >>>>Matrix44f* > >>>> > >>>>>Vec3f out_vec(mat[2][0],mat[2][1],mat[2][2]); > >>>>> > >>>>>yields: > >>>>> > >>>>>error C2664: 'gmtl::Vec<DATA_TYPE,SIZE>::Vec(const DATA_TYPE &,const > >>>>>DATA_TYPE &,const DATA_TYPE &)' : cannot convert parameter 1 from > >>>>>'gmtl::Matrix<DATA_TYPE,ROWS,COLS>::RowAccessor *' to 'const float > >>>> > >>>&' > >>> > >>>>>Any help would be greatly appreciated. > >>>>> > >>>>>cheers > >>>>> > >>>>>E. > >>>>> > >>>>> > >>>>> > >>>>>------------------------------------------------------- > >>>>>This sf.net email is sponsored by:ThinkGeek > >>>>>Welcome to geek heaven. > >>>>>http://thinkgeek.com/sf > >>>>>_______________________________________________ > >>>>>ggt-devel mailing list > >>>>>ggt...@li... > >>>>>https://lists.sourceforge.net/lists/listinfo/ggt-devel > >>>>> > >>>> > >>>>-- > >>>>*--*---*---*----*-----*------*------*-----*----*---*---*--* > >>>>Kevin Meinert /_/ > >>>>home - http://www.vrsource.org/~kevin \ / > >>>>music - http://www.subatomicglue.com \/ __ \/ > >>>> \__ > >>>> \_\ > >>> > >>> > >>-- > >>*--*---*---*----*-----*------*------*-----*----*---*---*--* > >>Kevin Meinert /_/ > >>home - http://www.vrsource.org/~kevin \ / > >>music - http://www.subatomicglue.com \/ __ \/ > >> \__ > >> \_\ > >> > >> > > > > > > > > > > ------------------------------------------------------- > > This sf.net email is sponsored by:ThinkGeek > > Welcome to geek heaven. > > http://thinkgeek.com/sf > > _______________________________________________ > > ggt-devel mailing list > > ggt...@li... > > https://lists.sourceforge.net/lists/listinfo/ggt-devel > > > > -- *--*---*---*----*-----*------*------*-----*----*---*---*--* Kevin Meinert /_/ home - http://www.vrsource.org/~kevin \ / music - http://www.subatomicglue.com \/ __ \/ \__ \_\ |
|
From: Kevin M. <ke...@vr...> - 2003-09-23 19:43:36
|
for speed, you can cast the float* to a Vec*. then just dereference it
with * so you can return Vec&
Vec& getCol( int which )
{
return *(Vec*)&mData[do the math];
}
this way you don't need to return a copy, and you can actually use the
vector to change the column...
definately test this before committing. :) but I'm pretty sure it will
work.
kevin
On Tue, 23 Sep 2003, Ben Scott wrote:
> While it could be considered an unneeded function because you can achieve
> the same functionality on your own, I have often wanted the ability to get
> a column from a matrix as vector - especially when getting the forward
> vector for entities or doing billboarding. It's a relatively simple
> function that will bloat the API but not the user's code unless they use
> it. I figure that GMTL is hard enough for most people to grok because of
> the templates that anything we can do to help them use it and like it is
> good.
>
> I guess if Allen agrees with you and doesn't want it in the library I'll
> concede and just send Eric the patch rather than commit it.
>
> cheers,
> -Ben
>
> >
> >
> > I'm not sure it was an ambiguity, rather it was an effort not to bloat the
> > code with unneeded functions.
> >
> > for example, you can easily write your own GetColumn using the element
> > accessor operator ( mat[row][col] ).
> >
> > I see it as unneeded, but I'll defer the descision to allen or ben since I
> > don't feel too strongly about it.
> >
> > kevin
> >
> >
> > On Mon, 22 Sep 2003, Eric Maslowski wrote:
> >
> >> Ben said he was going to take a look into adding GetColumn() routine to
> >> the
> >> library to simplify this ambiguity. Thanks for the response.
> >>
> >> cheers
> >>
> >> E.
> >>
> >> At 15:13 09/22/2003 -0500, you wrote:
> >>
> >> >mats are column ordered, so that helps. you should be able to index
> >> one
> >> >element and dereference it to get the column.
> >> >
> >> >I think (float*)&mat.mData[0] would be the first column, which if you
> >> init
> >> >a Vec with it:
> >> >
> >> >gmtl::Vec4f col;
> >> >col.set( (float*)&mat.mData[0] );
> >> >
> >> >
> >> >second column (example):
> >> >
> >> > col.set( (float*)&mat(0,1) );
> >> >
> >> >
> >> >4th column (translation component):
> >> >
> >> > col.set( (float*)&mat[0][3] );
> >> >
> >> >
> >> >
> >> >-kevin
> >> >
> >> >
> >> >
> >> >On Mon, 22 Sep 2003, Eric Maslowski wrote:
> >> >
> >> > > How this is the right list: What is the recommended method for
> >> grabbing an
> >> > > entire column?
> >> > >
> >> > > Can't seem to find a general GetColumn() routine in the Matrix
> >> definition.
> >> > > I can't seem to even grab the components and throw them in a vector
> >> when
> >> > > the Matrix44f is a pointer.
> >> > >
> >> > > Matrix44f* mat = entity->GetTransform(); // GetTransform() returns
> >> > Matrix44f*
> >> > > Vec3f out_vec(mat[2][0],mat[2][1],mat[2][2]);
> >> > >
> >> > > yields:
> >> > >
> >> > > error C2664: 'gmtl::Vec<DATA_TYPE,SIZE>::Vec(const DATA_TYPE &,const
> >> > > DATA_TYPE &,const DATA_TYPE &)' : cannot convert parameter 1 from
> >> > > 'gmtl::Matrix<DATA_TYPE,ROWS,COLS>::RowAccessor *' to 'const float
> >> &'
> >> > >
> >> > > Any help would be greatly appreciated.
> >> > >
> >> > > cheers
> >> > >
> >> > > E.
> >> > >
> >> > >
> >> > >
> >> > > -------------------------------------------------------
> >> > > This sf.net email is sponsored by:ThinkGeek
> >> > > Welcome to geek heaven.
> >> > > http://thinkgeek.com/sf
> >> > > _______________________________________________
> >> > > ggt-devel mailing list
> >> > > ggt...@li...
> >> > > https://lists.sourceforge.net/lists/listinfo/ggt-devel
> >> > >
> >> >
> >> >--
> >> >*--*---*---*----*-----*------*------*-----*----*---*---*--*
> >> >Kevin Meinert /_/
> >> >home - http://www.vrsource.org/~kevin \ /
> >> >music - http://www.subatomicglue.com \/ __ \/
> >> > \__
> >> > \_\
> >>
> >>
> >
> > --
> > *--*---*---*----*-----*------*------*-----*----*---*---*--*
> > Kevin Meinert /_/
> > home - http://www.vrsource.org/~kevin \ /
> > music - http://www.subatomicglue.com \/ __ \/
> > \__
> > \_\
> >
> >
>
>
--
*--*---*---*----*-----*------*------*-----*----*---*---*--*
Kevin Meinert /_/
home - http://www.vrsource.org/~kevin \ /
music - http://www.subatomicglue.com \/ __ \/
\__
\_\
|
|
From: Allen B. <al...@vr...> - 2003-09-23 19:08:09
|
Ben Scott wrote: >>Sounds like a good idea to me. I would think a GetColumn and a GetRow >>method would be helpful. >> >>As far as where to put it, we could make it a gmtl method. Something >>like: >> >>gmtl::getColumn(unsigned col, Matrix& mat, Vec& vec) >> >>and/or >> >>Vec gmtl::getColumn(unsigned col, Matrix& mat) >> >>What do you guys think? > > > I've currently got it written last night as: > > void setColumn(Vec& vec, const Matrix& mat, unsigned col); > Vec makeColumn(const Matrix& mat, unsigned col); > > I've also written row equivalents. They're just waiting to be committed. Well, what are your waiting for? :) Go ahead and commit them (and their associated test cases) so we can start playing. -Allen -- -- Allen Bierbaum al...@vr... -- -- VR Juggler Team www.vrjuggler.org -- -- Virtual Reality Applications Center www.vrac.iastate.edu -- |
|
From: Ben S. <bs...@ga...> - 2003-09-23 18:25:08
|
> Sounds like a good idea to me. I would think a GetColumn and a GetRow > method would be helpful. > > As far as where to put it, we could make it a gmtl method. Something > like: > > gmtl::getColumn(unsigned col, Matrix& mat, Vec& vec) > > and/or > > Vec gmtl::getColumn(unsigned col, Matrix& mat) > > What do you guys think? I've currently got it written last night as: void setColumn(Vec& vec, const Matrix& mat, unsigned col); Vec makeColumn(const Matrix& mat, unsigned col); I've also written row equivalents. They're just waiting to be committed. cheers, -Ben |
|
From: Eric M. <ema...@um...> - 2003-09-23 15:58:20
|
I'd be happy with either one. I personally prefer the second one since it doesn't require the user to create a temporary variable prior to using the routine. Matrix44f lookat_mat = LookAt(gmtl::GetColumn(3,mat),gmtl::GetColumn(1,mat)); as opposed to: Vec3f a,b; gmtl::GetColumn(3,mat,a); gmtl::GetColumn(1,mat,b); Matrix44f lookat_mat = LookAt(a,b); Thanks for looking into this! E. At 10:39 09/23/2003 -0500, Allen Bierbaum wrote: >Ben Scott wrote: >>While it could be considered an unneeded function because you can achieve >>the same functionality on your own, I have often wanted the ability to get >>a column from a matrix as vector - especially when getting the forward >>vector for entities or doing billboarding. It's a relatively simple >>function that will bloat the API but not the user's code unless they use >>it. I figure that GMTL is hard enough for most people to grok because of >>the templates that anything we can do to help them use it and like it is >>good. >>I guess if Allen agrees with you and doesn't want it in the library I'll >>concede and just send Eric the patch rather than commit it. >>cheers, >>-Ben > >Sounds like a good idea to me. I would think a GetColumn and a GetRow >method would be helpful. > >As far as where to put it, we could make it a gmtl method. Something like: > >gmtl::getColumn(unsigned col, Matrix& mat, Vec& vec) > >and/or > >Vec gmtl::getColumn(unsigned col, Matrix& mat) > >What do you guys think? > >-Allen > >> >>> >>>I'm not sure it was an ambiguity, rather it was an effort not to bloat the >>>code with unneeded functions. >>> >>>for example, you can easily write your own GetColumn using the element >>>accessor operator ( mat[row][col] ). >>> >>>I see it as unneeded, but I'll defer the descision to allen or ben since I >>>don't feel too strongly about it. >>> >>>kevin >>> >>> >>>On Mon, 22 Sep 2003, Eric Maslowski wrote: >>> >>> >>>>Ben said he was going to take a look into adding GetColumn() routine to >>>>the >>>>library to simplify this ambiguity. Thanks for the response. >>>> >>>>cheers >>>> >>>>E. >>>> >>>>At 15:13 09/22/2003 -0500, you wrote: >>>> >>>> >>>>>mats are column ordered, so that helps. you should be able to index >>>> >>>>one >>>> >>>>>element and dereference it to get the column. >>>>> >>>>>I think (float*)&mat.mData[0] would be the first column, which if you >>>> >>>>init >>>> >>>>>a Vec with it: >>>>> >>>>>gmtl::Vec4f col; >>>>>col.set( (float*)&mat.mData[0] ); >>>>> >>>>> >>>>>second column (example): >>>>> >>>>> col.set( (float*)&mat(0,1) ); >>>>> >>>>> >>>>>4th column (translation component): >>>>> >>>>> col.set( (float*)&mat[0][3] ); >>>>> >>>>> >>>>> >>>>>-kevin >>>>> >>>>> >>>>> >>>>>On Mon, 22 Sep 2003, Eric Maslowski wrote: >>>>> >>>>> >>>>>>How this is the right list: What is the recommended method for >>>>grabbing an >>>> >>>>>>entire column? >>>>>> >>>>>>Can't seem to find a general GetColumn() routine in the Matrix >>>>definition. >>>> >>>>>>I can't seem to even grab the components and throw them in a vector >>>>when >>>> >>>>>>the Matrix44f is a pointer. >>>>>> >>>>>>Matrix44f* mat = entity->GetTransform(); // GetTransform() returns >>>>> >>>>>Matrix44f* >>>>> >>>>>>Vec3f out_vec(mat[2][0],mat[2][1],mat[2][2]); >>>>>> >>>>>>yields: >>>>>> >>>>>>error C2664: 'gmtl::Vec<DATA_TYPE,SIZE>::Vec(const DATA_TYPE &,const >>>>>>DATA_TYPE &,const DATA_TYPE &)' : cannot convert parameter 1 from >>>>>>'gmtl::Matrix<DATA_TYPE,ROWS,COLS>::RowAccessor *' to 'const float >>>>&' >>>> >>>>>>Any help would be greatly appreciated. >>>>>> >>>>>>cheers >>>>>> >>>>>>E. >>>>>> >>>>>> >>>>>> >>>>>>------------------------------------------------------- >>>>>>This sf.net email is sponsored by:ThinkGeek >>>>>>Welcome to geek heaven. >>>>>>http://thinkgeek.com/sf >>>>>>_______________________________________________ >>>>>>ggt-devel mailing list >>>>>>ggt...@li... >>>>>>https://lists.sourceforge.net/lists/listinfo/ggt-devel >>>>> >>>>>-- >>>>>*--*---*---*----*-----*------*------*-----*----*---*---*--* >>>>>Kevin Meinert /_/ >>>>>home - http://www.vrsource.org/~kevin \ / >>>>>music - http://www.subatomicglue.com \/ __ \/ >>>>> \__ >>>>> \_\ >>>> >>>-- >>>*--*---*---*----*-----*------*------*-----*----*---*---*--* >>>Kevin Meinert /_/ >>>home - http://www.vrsource.org/~kevin \ / >>>music - http://www.subatomicglue.com \/ __ \/ >>> \__ >>> \_\ >>> >> >> >>------------------------------------------------------- >>This sf.net email is sponsored by:ThinkGeek >>Welcome to geek heaven. >>http://thinkgeek.com/sf >>_______________________________________________ >>ggt-devel mailing list >>ggt...@li... >>https://lists.sourceforge.net/lists/listinfo/ggt-devel > > > >-- >-- Allen Bierbaum al...@vr... -- >-- VR Juggler Team www.vrjuggler.org -- >-- Virtual Reality Applications Center www.vrac.iastate.edu -- > > > > >------------------------------------------------------- >This sf.net email is sponsored by:ThinkGeek >Welcome to geek heaven. >http://thinkgeek.com/sf >_______________________________________________ >ggt-devel mailing list >ggt...@li... >https://lists.sourceforge.net/lists/listinfo/ggt-devel |
|
From: Allen B. <al...@vr...> - 2003-09-23 15:39:20
|
Ben Scott wrote: > While it could be considered an unneeded function because you can achieve > the same functionality on your own, I have often wanted the ability to get > a column from a matrix as vector - especially when getting the forward > vector for entities or doing billboarding. It's a relatively simple > function that will bloat the API but not the user's code unless they use > it. I figure that GMTL is hard enough for most people to grok because of > the templates that anything we can do to help them use it and like it is > good. > > I guess if Allen agrees with you and doesn't want it in the library I'll > concede and just send Eric the patch rather than commit it. > > cheers, > -Ben Sounds like a good idea to me. I would think a GetColumn and a GetRow method would be helpful. As far as where to put it, we could make it a gmtl method. Something like: gmtl::getColumn(unsigned col, Matrix& mat, Vec& vec) and/or Vec gmtl::getColumn(unsigned col, Matrix& mat) What do you guys think? -Allen > > >> >>I'm not sure it was an ambiguity, rather it was an effort not to bloat the >>code with unneeded functions. >> >>for example, you can easily write your own GetColumn using the element >>accessor operator ( mat[row][col] ). >> >>I see it as unneeded, but I'll defer the descision to allen or ben since I >>don't feel too strongly about it. >> >>kevin >> >> >>On Mon, 22 Sep 2003, Eric Maslowski wrote: >> >> >>>Ben said he was going to take a look into adding GetColumn() routine to >>>the >>>library to simplify this ambiguity. Thanks for the response. >>> >>>cheers >>> >>>E. >>> >>>At 15:13 09/22/2003 -0500, you wrote: >>> >>> >>>>mats are column ordered, so that helps. you should be able to index >>> >>>one >>> >>>>element and dereference it to get the column. >>>> >>>>I think (float*)&mat.mData[0] would be the first column, which if you >>> >>>init >>> >>>>a Vec with it: >>>> >>>>gmtl::Vec4f col; >>>>col.set( (float*)&mat.mData[0] ); >>>> >>>> >>>>second column (example): >>>> >>>> col.set( (float*)&mat(0,1) ); >>>> >>>> >>>>4th column (translation component): >>>> >>>> col.set( (float*)&mat[0][3] ); >>>> >>>> >>>> >>>>-kevin >>>> >>>> >>>> >>>>On Mon, 22 Sep 2003, Eric Maslowski wrote: >>>> >>>> >>>>>How this is the right list: What is the recommended method for >>>> >>>grabbing an >>> >>>>>entire column? >>>>> >>>>>Can't seem to find a general GetColumn() routine in the Matrix >>>> >>>definition. >>> >>>>>I can't seem to even grab the components and throw them in a vector >>>> >>>when >>> >>>>>the Matrix44f is a pointer. >>>>> >>>>>Matrix44f* mat = entity->GetTransform(); // GetTransform() returns >>>> >>>>Matrix44f* >>>> >>>>>Vec3f out_vec(mat[2][0],mat[2][1],mat[2][2]); >>>>> >>>>>yields: >>>>> >>>>>error C2664: 'gmtl::Vec<DATA_TYPE,SIZE>::Vec(const DATA_TYPE &,const >>>>>DATA_TYPE &,const DATA_TYPE &)' : cannot convert parameter 1 from >>>>>'gmtl::Matrix<DATA_TYPE,ROWS,COLS>::RowAccessor *' to 'const float >>>> >>>&' >>> >>>>>Any help would be greatly appreciated. >>>>> >>>>>cheers >>>>> >>>>>E. >>>>> >>>>> >>>>> >>>>>------------------------------------------------------- >>>>>This sf.net email is sponsored by:ThinkGeek >>>>>Welcome to geek heaven. >>>>>http://thinkgeek.com/sf >>>>>_______________________________________________ >>>>>ggt-devel mailing list >>>>>ggt...@li... >>>>>https://lists.sourceforge.net/lists/listinfo/ggt-devel >>>>> >>>> >>>>-- >>>>*--*---*---*----*-----*------*------*-----*----*---*---*--* >>>>Kevin Meinert /_/ >>>>home - http://www.vrsource.org/~kevin \ / >>>>music - http://www.subatomicglue.com \/ __ \/ >>>> \__ >>>> \_\ >>> >>> >>-- >>*--*---*---*----*-----*------*------*-----*----*---*---*--* >>Kevin Meinert /_/ >>home - http://www.vrsource.org/~kevin \ / >>music - http://www.subatomicglue.com \/ __ \/ >> \__ >> \_\ >> >> > > > > > ------------------------------------------------------- > This sf.net email is sponsored by:ThinkGeek > Welcome to geek heaven. > http://thinkgeek.com/sf > _______________________________________________ > ggt-devel mailing list > ggt...@li... > https://lists.sourceforge.net/lists/listinfo/ggt-devel -- -- Allen Bierbaum al...@vr... -- -- VR Juggler Team www.vrjuggler.org -- -- Virtual Reality Applications Center www.vrac.iastate.edu -- |