[vtk-developers] Lightweight transform?

Volpe, Christopher R (Research) volpecr at crd.ge.com
Thu Feb 6 16:36:30 EST 2003


I have a need for a high-performance lightweight transform object, specifically, one that bypasses
all of the Input and Concatenation stuff, and which has no need, therefore, for an Update call. I
just want to be able to perform all the basic operations that vtkTransform provides (Rotate,
Translate, etc), but as efficiently as possible. (We have an application that requires very high
performance, and we've determined via Rational Quantify that an excessive amount of time is spent in
some of the internal transform methods that get invoked from say, Identity(), and numerous others
common methods.) 

At first I thought I'd subclass vtkTransform, but there are a number of methods in the whole
transform hierarchy that are not declared virtual, and therefore overriding them is not possible,
unless I also override the whole transitive-closure of upper-hierarchy methods that use them, which
would make things inconvenient. So before I go cutting and pasting a Whole Lotta Code from various
portions in the hierarchy into a new class, I thought I'd see if there's a simpler and more elegant
approach available, perhaps some undocumented feature of sorts that could be harnessed. (I keep
seeing references to some "Legacy Hack", but it's not clear to me if that's in any way relevant.)

Thanks in advance for any insights.

Chris
> GE Global Research Center 
> ___________________________________________________________________________________________________
> _______________________________________________
> 
Dr. Christopher R. Volpe, Ph.D.
Computer Scientist
Visualization and Computer Vision Lab 
Imaging Technologies
Bldg KW, Room C215
P.O. Box 8, Schenectady, NY 12301

(518) 387-7766, Dial Comm: 8*833-7766, Fax: (518) 387-6981
e-mail: volpecr at research.ge.com    web: http://www.crd.ge.com/~volpecr




begin 600 winmail.dat
M>)\^(B$5`0:0"``$```````!``$``0>0!@`(````Y`0```````#H``$(@`<`
M&````$E032Y-:6-R;W-O9G0 at 36%I;"Y.;W1E`#$(`06``P`.````TP<"``8`
M$``D`!X`!``X`0$@@`,`#@```-,'`@`&`!``)``=``0`-P$!"8`!`"$````W
M-S0S1$5&-S0V-3 at X0S0V.4$P03A$-S$U0C8W13(S10`Y!P$$@`$`%P```$QI
M9VAT=V5I9VAT('1R86YS9F]R;3\`NP@!#8`$``(````"``(``0.0!@"P"P``
M+P````,`WC^O;P```P`!;B`````#`#V`""`&``````#`````````1@````!2
MA0``?6X!`!X`/H`((`8``````,````````!&`````%2%```!````!````#DN
M,``+`.J!""`&``````#`````````1@`````&A0````````,`/X`((`8`````
M`,````````!&``````&%````````"P`[@`@@!@``````P````````$8`````
M`X4````````+`$"`""`&``````#`````````1@`````.A0````````,`/(`(
M(`8``````,````````!&`````!"%`````````P!!@`@@!@``````P```````
M`$8`````$84````````#`$*`""`&``````#`````````1@`````8A0``````
M``(!"1`!````+08``"D&``"$"0``3%I&=7I?L&T#``H`<F-P9S$R-18R`/@+
M8&X.$#`S,T\!]P*D`^,"`&-H"L!S\&5T,"`'$P*#`%`$Y7$"`'!R<0Y0$-8.
M,#5_!@`%`P*#$O$0=1+"$6DSNP/&$7 at T%)L0SP*2-0/&FP7K`H!]"H`(R"`[
M"6_W$Y$;TPX at .`FT'7(*,AUQ7QO3$Y$)NP*`"H%V")!WRFL+@&070'5C`%`+
M`Q$+M2!)(!A0=F4 at R&$@;@G at 9"`"$`7`@2)P:&EG:"UP!)`K(N$#@6,B4&PC
M471W8F4D8B!T<@!Q(\(@"&]B:@60="P@<YTCD&,&D`W@!T!L>280FP(@(E!T
M&%`%0&)Y"K!O!!`'D2:Q):!F)T$B4$GX;G!U!4``<"+`"%`D$#<G<`GP)W!I
M`B`F('1U]P$@)A`I0G<C0!A`(A$$('QN;R*#)A`HH0EP(N%E1R80(N,#H%5P
M9"G!(.4FHBXA\6IU*F`K``!P^R3Q*\!B(E$"8"<Q*\`CE?LH(RBB8B?0#>`E
MH".1*@/#!"`G4W9T:U0E)Q+`[F\@4`$`!"`H"``!D"G0GR80,F,+8#/B$3!C
M*280_F(I$@0@`1$-X`B0`C`FT&DU8G!O!!!I+V$N$"C.5R)0(B0#H&%P"U`F
MD<<J$R=3"7!Q=6D)<`0@?2)`<C9`(T(OQB0"*K5E_B<B00$`*=`CX`N`(K$@
M4(TB<%(J`P=`(%%U+K'/!I`V0"=3`Y%E>"0 at -K&[(D($8'4NP2AR!W$@!`#_
M)B(NP0N`)B`#<")0*'4+@'\[P3SB)1@'@"=0!'`QQ6?C$3!`079O:R*R`V$F
M(!IA)N%)`0`]471Y*/,U`2E";G4'@`- at +F`EH'<L0 at 0@!:!M!&`#H$)U+NXI
M"N,*A`J`005`)H`1$)<%0"(`0I%U)-)))R+`\'-U8F,+8`01,CHU%/\L0R)@
M2\)%DB\@!<`H<4)V_T!1**(K$`;P)S$E)R-`,5'^<AA`/99+P2NP!4`%@0M@
M[PEQ/$$`(#TP;"JT+$<EH.LYD0409`N`9RB2)9`_P?]0$C:6)A`_`"]P!!$B
M``=`OT"`4D8G,DW+1/`^D2U*$+<VH`AP0+-U.``$D"U.Z%]">RY at 5;-+(2L4
M=PA@;/\BP`#`0\`G05+!35(%H$.0=PGP-?(N$%,O`E(#(@!G_2O`8RD0*A!2
MT2E")\%=Q/0 at 5TWS3#.P`9`I<56A_40#=@K`*B!&`3:0`"`QD_]-=4[H04$K
MP")R!^!*$T2!WTD<">`_L"B#"7`G*!$F(+\'<`M03)$I0 at 1@2\%E+W#^9RZR
M-_$#8`#0*U`B,`MP[PM at 5!,CD1A0<#_10)(_`+QD;UV0!X!!42+!92=P_U=E
M0(``(#'%!:!:PB\A&%$[(I`GX60W$2(`0\!E</]D8E+"+'$L8201,<$KP$"#
M5"),9K%C-D!(`-!K_B(U%$3P93%0$DH0:@`%P/\N\3^2*((G<&4Q0%$`<#9`
MORZ at -D`)<"]P8%!<82E'NM)4&%!N:W&T9'+!)"'_+/1B4@"0)'%'<$>Z"-``
M0>\`H!(##D`I<&@%$!"P=H9_#E`,,#,!*=`E\!1D(=%'YD5XU at +1,R`#,7G!
M"0#W,-`)4'JB4@>0<)$K07KB>D-IDG)ZE'CI=H86$&+%`4!I"\(T(%]_7X!O
M_X%_ at H^#GX2OA;^&SX=G=G=C`4!Z&',Q-T>U%S`@O$1R+A`487>T+O!P+%%[
M!_`N$%8&\".0BE(F$%#X:"Y$=@!]Y at A09:`I$-],D1/0-?*+04>T5 at 0`42'Y
MBE)I>BH$*42-M8\1*B)63`&@1Z5)`,!G4L)4_060:"NP"0"20`>0B?854.9"
M6M!2X$M7)A`(`$0A&$,R,1EP1\-0+D_!+A!";W@@."80$]`?*+`BD"7P=(`F
MX4Y9(!D.(#,P(1-']B at U,0(X1Y`S.#<M-S<T-C8F$$0',9!B;3H9E?`J.`]@
MF-5&87CCF="82#8Y.!(1E06*TG]7``#``Q"9T$. at C"$%`$"OBE(Y47P#BM(N
M0T`N1J'W>L!ZP"2 at 8IG0=M-:P"(0P0)`<#HO+W>@H)[@\PL at GK4O?ITUB--:
MP"NPOR*0F^D+Q78J1\,:\0"E,````!X`<``!````%P```$QI9VAT=V5I9VAT
M('1R86YS9F]R;3\```L``@`!`````P#]/^0$```#``E9`P````(!<0`!````
M%@````'"SB?;_N`I:4"12T\0I?V=C2^84MT``$``.0#0QI//)\["`0,`\3\)
M!```'@`Q0`$````2````0TA225-43U!(15(N5D],4$4````#`!I``````!X`
M,$`!````$@```$-(4DE35$]02$52+E9/3%!%`````P`90``````#`"8`````
M``,`-@```````P"`$/____\+`/(0`0````(!1P`!````-@```&,]55,[83U-
M05)+-#`P.W`]1T4[;#U834(P,D-21$=%+3`S,#(P-C(Q,S8S,%HM,S0T.34W
M`````@'Y/P$```!U`````````-RG0,C`0A`:M+D(`"LOX8(!`````````"]/
M/4=%+T]5/4-21$Y)4TM!655.02]#3CU214-)4$E%3E13+T-./4580TA!3D=%
M($-,245.5"`H15A#,#%#4D1'12DO0TX]0TA225-43U!(15(N5D],4$4`````
M'@#X/P$````;````5F]L<&4L($-H<FES=&]P:&5R(%(@*$-21"D``!X`.$`!
M````$@```$-(4DE35$]02$52+E9/3%!%`````@'[/P$```!U`````````-RG
M0,C`0A`:M+D(`"LOX8(!`````````"]//4=%+T]5/4-21$Y)4TM!655.02]#
M3CU214-)4$E%3E13+T-./4580TA!3D=%($-,245.5"`H15A#,#%#4D1'12DO
M0TX]0TA225-43U!(15(N5D],4$4`````'@#Z/P$````;````5F]L<&4L($-H
M<FES=&]P:&5R(%(@*$-21"D``!X`.4`!````$@```$-(4DE35$]02$52+E9/
M3%!%````0``',+XCC\\GSL(!0``(,.+[8,\GSL(!'@`]``$````!````````
M`!X`'0X!````%P```$QI9VAT=V5I9VAT('1R86YS9F]R;3\``!X`-1`!````
M-@```#Q&0D4Y,$1&0S(T,$)!-30Q0C,X030S1C,Y.3$S03$V1#`U049%0D)%
M0'AM8C`R8W)D9V4^````"P`I```````+`",```````,`!A`:0?M6`P`'$%4%
M```#`!`0``````,`$1``````'@`($`$```!E````24A!5D5!3D5%1$9/4D%(
M24=(+5!%4D9/4DU!3D-%3$E'2%1714E'2%144D%.4T9/4DU/0DI%0U0L4U!%
M0TE&24-!3$Q9+$].151(051"65!!4U-%4T%,3$]&5$A%24Y0551!3@`````"
M`7\``0```#8````\1D)%.3!$1D,R-#!"034T,4(S.$$T,T8S.3DQ,T$Q-D0P
8-4%&14)"14!X;6(P,F-R9&=E/@```"TA
`
end



More information about the vtk-developers mailing list