• 검색 결과가 없습니다.

Building a 3D Modeling and Rendering Toolkit Using Object-Oriented Programming

N/A
N/A
Protected

Academic year: 2021

Share "Building a 3D Modeling and Rendering Toolkit Using Object-Oriented Programming"

Copied!
7
0
0

로드 중.... (전체 텍스트 보기)

전체 글

(1)

+ + e + E l r 4 q ^ 4 s l Vol.2, No.l P.61-67

3:lg _EgeJr+ {Ele€. qal 24"il z16} f4q )- E7)

Building a 3D Modeling and Rendering Toolkit Using Obiect-Oriented Programm ing

a 5 q , o l 4 a

Sung-hee Kim, Hee-woong Lee j l 4 q l q i / ? + E ] q l t l

Dept. of Computer Science and Engineering, Korea University

ola

3ilg e+Ei ril4: ++ ge_-r.Bg:49 'lril(graphical object)=9 *4E) 4+=zilol(display), r4r 'l;IEql g^J6l= ol HIE(event)E:9;.lzlfloloJ aJ4.6I:lRl, olge c-B"6l ++6J "Jg+"J olqr]. "*g r?ilE

^ ++ lergql ;LEq= Lil+Eol7l ,4E.q, ol ql ++ eerg€.il7i1 +€Cg alEBl= Eg TllEJ6IA= ^l E7l al+9q4 *4. s -+q1^1= ^l+-I7l €46ln a4 s"Ja4 alrlgg g + 9= Tl:.g al;LElq, 'l al z16] 7lB-s--q €41qH.71 qlEql q+ol +olt r?lE4 Eael €zl "l +€ql rrldl €B+4.

Abstract

3D graphics applications require managing and displaying objcts as well as handling events. These tasks are quite complex for applications to worry about and are comon to many applications. Therefore, many attempts have ben made to provide toolkits with these capabilities for those applications. This paper presents a toolklt that is easy to use and well suited for the modeling and rendering tasks. The object-oriented programming techniques used in designing the toolkit make it flexible and easily extensible.

l. rtl E

dF4"J r4q: ++ 3"t'J cAD(computer aided design)E El *61q, rl"+4 7l^l ol(scienrific

visualization), 4l€ Eot(art), dl zl q ^(business) F

Y + g + o t " l e + E l r 4 E ^ 7 1 g + 9 8 ^ i , E l o o t " J

^I+zlel ++E- ++^l 71 71 96J y+g ++ uE-r d9 zll 'Jol .sAqr 9lEl

6 ) z l t , e + E i r ? ] l E } * + o g - r g g r q e 4 ^1| (graphical object)E 9 ^8 ^3, + C , 9=(load),

^l* stR] olq4 7_\ii€iol ^l q'. 9i= 4EE nl H"fl +46llol 6lL, +61 tlE 4lEl€(inreractive) rr.ll9r' *+ E-erd"J A+ ?5-*(windor.t,)41

*iJ6I= ol dE(event) ilel F9 4a4 ol 5l7l tril +.L 41 es s_qr* 711 g4l = *"J31 y*g zlgol

.s-+€4.

"l el eg zil"Jq ol 4+g dl a6}7l 9611 _E.=

r4lq^ ++ u.E-rq"I ,! €sdJ ?l tsg +*61

= =ig zl^J6lq, *+61!4 al= ^l L7l €zl zl zl d+ *B9g ol +q7l etrl. openGl[6]"1 4

RenderMan[7]?-o- +^l l-E(immediate mode) .zeX { : { 2 1 z l l g . a p h i c s p a c k a g e ) t s { c J 4 " I € g +

El+€gl ^i€Lg +4se €zlq97l El+oil ,_!nl I zl*4 +aFel ,li,ll g+l .el ,l 4E €l 6J "ll7l q;:9 ,i*6lz1 9t=4. q:5zll ol r-e(displal' mode)oJ PHIGST[2]E rriga ,lnlEg +^j-4

"l + CE fr71, s"J F-i+ 6Jrll +q^l 6l+s + -H6lY structureel "l 59 zl*61: CSS(central structured storage)€ ^I*6171 rl+.I r4q^ ,l 4 l e g E , l 4 = z l t s 6 l Z l 6 l r l + ^ l + ^ l 7 i z l d css.I dJdJ + $.sq. ol+ aE!+ ,4ill ,1 4E]

I ^1 g"JrlE +dg zl qjl ?iEl.

r 4 q : * * o _ e : t s o l ^ l + g E9 ztl"J6J 'tl. s= ^l+r|Eel .q+= +q617ll t+^l 7l = € g +^J6l7l= 571ts6171 "lt€ql Ee El 49 ^1€.

4ql Zl dl = aE9 *€C(flexibiliry)g +q"J + l l E + € a l g q . l + + . , - I 4 l z l ;J ' z l H e , J € t l (encapsulation)4 *4C (inheritance)-3 zl g6171 4 Eql rqlE ,4'il .Jg il 471 7lE6lr., ^l+zle.

3.+ e"l.tl 4ql61Xl ^l ^EJg Aitl +*6J + .., 4 = t l d o l g l T l q E o l , g g a l :e l o l ^ l o l 7 l ' t g EoJdlq ^}+611 qlEl. ol

"j6J qlE_, pHrcs-t tsl i6J oJEl q] ol :.€ 4l-d-al= Hoops[3]= ,l'tl i:

i i

II

h

II

Computer Graphics Societl

(2)

3+E! Ell3tt iltr13t +lE ,4ril rlg f4E^ IrJ 4= € E-l ,l€:B4l g + 9lrl "J, ^l ^EJq ole

4= Cq +A;J rs:14"J Sq(c+ FORTRAN) q +al-e ,l:il :l aJ zl B (object-oriented techniques)ol ^ll*61= *+tg EdC +*g + glEl. olel 94 Interviews[5jb =44* "JEl ril 6l z=Z AA +CEJ + 9.lE+ 6la, ,q4l zl 6* 7l Bel ,('19 €4d(sub-classing) *Bg ol*!t + il71 4E"I q*g +ol6l7il g + lirl"J 2ilg r4E } " J g z l t l + 4 = 6 J 4 l € 4 q n 9 1 4 .

cRAMsillel cRoopt4le 3rlg f.rIE-E zl g 6 l = ^ l :EJss r4E^el zllldg *^16l Ea

= ,lEJzlsol *8 refgg €46lrll "J5 + 9lE+ il4. 6lzl "J GRAMS= +s EE-rg.el Eil o l 4 = o l + 6 l q q ^ 5 r l o l = Fll, +"l6171 4E q, q+6l7l7l €E! Elol ElTl ++6ll^l xl+€4

= +dg zlzla- o)cl. open InventortT,gl= ,q4l Eol +4+= flE+4l^l zl d ,4rllE 4zl(direct manipulation)EJ + 914, scene datafuse4= +=

q ^ J c q = E= '4alEg zl$a1ss 64€ cl1ol 4€ z,t= 49 ^l^EJg +zlg illAfl4. 6|zi oj E+ 5J€ Fq €tC 617l e;Ei^i= fzIE^ 7ll Eg +4161 "Jolot g tp olqe+ ,l4lzl 4dg + C9 z,t_z Xlrl 9+71 4+.I +Cq Haol xl 94 0ocal)9-7 ol +lzlrl ?*=4= €.itlTl 9,lEl.1 Ee 4'I4+ 4olE A-H-E scene database.I zl+971 4eoil r +^l= dq6l ",1+.1?xl g*ots-el€ E E, 48il4= scene databasesl "J ;.1 g"I ,*.J6lzl

* C A + 7 l u l 4 g q * o l = , l t l = 4 q 6 l i l q 4=3,ilo1 g + fl4-^l$zlz| $ali a4= €g + S 4 = e d g z l q a 9 1 4 .

€- =+ol^.1= g* =_a:2.3 4lEJzlTl ^l*6171 s 4 6 l a q e r " l * o l + , 5 6 1 t g ? g d r t l + + Ll= ETiel €4"r1 qlsil €B+El. E+.el +ce ,rlg4 +4. 4l 2 *ol^l= 57,19 ol+= +C 3-

J:= 4416)r., 4 3 Aoil^J= E-49 €alEl=E] 7l

= " 1 q = , I B € € ! + = 4 ^ f , ? j 3 T l E o I r l 6 i l

€ B + 4 . "14+s.e ^il 4 *ql^l= ae q *es e-l r+:il.l El4 t+6J4.

2. ,ll*gE 7|a

= 7 i g . r ! + 6 1 = f4 q : ^ l ^ B g : B l.lrl4 4o1 =zll .ql {f,-e-E +E + 9l4.

l s e p a E t o r q l ^ l 4 + t + c o s r 4 4 , - 4 4 1 € s € g + = gzl"J, +et r4q 441= zl,rle,l +Ce 7l^l!. ?,lzl g}7i q E q l ' l r l e l + ^ d g ! l + 7 1 + i 4 ^ l = i a 4 9 + d € . z l E a l E Sepeatorg 4o)^J tslTl+dloi *4= geg zl^lr. 9lEl.

Computer Graphics Society

-r

T@lld.

TI

S!ffi

$ppon --l-

r g I ^ l ^ B e l d 4 4 " J ? 4

:a4E^ ^laB + 7l+ 6191 4l?oJ ^l ^e zl 9(system support) Al+g qqqol EJ ^l ^EJ (operating system)4 rE.rriEJ €"1, :ai.lE^ E Tlzl(graphics package), 9e$ .',1 r45oe +^d g=c'il, ETig UNx +Aq^l openGl-4 x gE + ^l ^EJg 7lHlg-e 61r., ,qzl ;(l 6} rg:a4g Q 1 9 ? l C + + 9 = 4 4 . 4 d l t r z l 4 € E l . e s ! = o l 4 9tE).

,lzil *4ul(object manager)ts zl6lE+4 ,-q"il (seometric object)59 ^8C, +4, 4l4l= ?"J6J4.

E+ =4^ ,l+ qTlq#(mechanism)9 ^l+Elq Ei"lElel zl4^d(data persistence)g zl g6lq, rq4l 5g El+= ** oe-:.9e1 ct 6J*g 96J E.

C 4 " J 1 * 4 e = 4 4 7 . | t s 9 ; I * + 4 t l l . q:5ell 6l *4zXdisplay manager)ts +* gg f.gol ,qilE ^J..B6lH^l +C6l= *E c1"1e1p1 ol4(scene database)9 q^5qlol= **+4. q 3=rilol +qr+= 4, dElA E-E, Qol e16"5s15 q ^ S d l o l q g , c 6 J +cEg 4l*eEl. E+ +H rlol4Blol ^€i *E8(traverse)61ts,H g-e_dJ tlEI (state)g +21. +4+El.

- 3 - + i l - E - : r g o i l ^ . i q ^ S E l o l g €qg gE+

*4zl(window manager)7} 41t+El. 4 gE+ ,l 4l= zltlel +rl4"J 71"il49 ',ta +B El"l4ul ol^€- 8+61q, zl,tlel €q "J"il^l g^J6l= qdil E ( e v e n t ) E ! 4 4 ^ J * 8 e e = g o l . l d * + 9 l

= €Ells El+= qgg i,J4.

7l+ *91.l} 9l= 4+e CAD, .Iq46l€, cl+

+ol, i+tl4 zl^lEl+ -q+Cr+ pol ;ze|{*z} {

€-€ + 9l= E= Botel €-+ Ee:zflol ggg E l .

" l E g E a o l a l + 6 ' l E =4^ 4ol lrq4= ol + 4 ^ l 7 l e 4 - q e g s t z l t . g d l a g + 9 l E l . EoJ =e.l$r g+ eolol^j g.cs 6l= ++ A g E q q g 4 9 $ q , * + s s f t s e l + C . l ^ J *

;J ^IE"g Tlbel eTlE ^.lll =4dg ol+4^.1 drll g + 914.

3. .rl^tsE g{

+ E E i o l 4 d l o l ^ = s E g B g + 4 4 l + 4 - 9 . _ e uifl= ,lillEg 4l=(dag: directed acyclic graph)

€Ele 4+61r. 9l= 4E. +=olr+. ::rB 2= iag 39 Hl 6871 r.gg *tr ql ol 4 4l ol ^s .s.€6J 4

(3)

Euilding a 3D Modeling and Rendering Toolkit Using Object-Oriented Programming

ol El.

* E r l " l 4 4 l o l : g g E + q l + e E l = ! + C g 4*4 44. +d ^l+471 fr4E ,4,159 ^JC6l J., ^J^J€ ,l4l5g €44^l 4r €El"J +E ri ol4tslol ^= +C'J +, +"J gE+.l .i4.Ilz}

6l= A+91 }e-E €a^l7lB *E rllol E|41 ol ^ z l E E I + 4El4 ^lES +Hg EE+"rl q45el ol aJEl.

i:tg 2 Hl 6J7l sgel *tr Ellol ElDlol ^

(Root, G-object, S-object, Group9 Container 34

4 e l ' 4 4 1 e ag sEa +dc '*= ,liilEc + + ; l = q g g + )

rB 3 El alzl -E.g

3 . 1 eil^ { i 3

=7,lol ^il*61= +-c =44= rg 44 eEl.

d "l+ d, 4+Eill, zl+ *ts(free-form surface)F9 71 6lo14 ,q4= 7l€-49E. 4gr+ a g *84"J +Cg ,,tts4

. € S 6 J € : " J e l e l 9 l il = + d s E , - ! " 1 € o l F , q d, ^til oJ6l= 6J e.

. 4 ^ d 4^e: ?4419 ElEla ^qol + g . E e l a r J F slBq -*.€g iqiile-l +C5.

. " J : H : ( i n s t a n c e ) : z 4 d l g l + g g 5 C 4 € 4 8 '+!, gil . g-a3. =.zlz| 4e ,l'1.

9"i^'l g4+ F^dg zlq= DisplayObjectE E aq^.1 ^Jcg= s= 71618+4 'qdgl 7l^J 4lol ^ E4a(virtual base class)7} €4.

8+ oerB ,Igzl= Saol 4l+6lz1 g+ts ^ll _ag 7l alElzl 4zl= ol =ull^= 7)l+61.E--?rq d A 1 C E € + X l E l . 4 l e A 9 q = 7 l 6 l q 4 , l ^ i l = DisplayObjectTl 49;J .g= 5Cg :.ctlg 4l*E 7l q+ql, zl^lE g4 rl"l4(member data)gl cll ol 4= d=61= DilAE(method +g member function) rqJ. {]ElA 6J+"Jg 4926}tr €4.

3 . r . 2 4 + 4 4 4

El .d71, 7lE|.il4 eol +*6J fzllE 7q^il= "J tl4ge *6J4 (bonom_up) *Hss €41€4. +, +il 'q"il€ +C6l= zlg +Bg drl €4161:f,.

:a5€- sol^l sEl = ++g Ele= *^lC Hl+

6ll^1 6l+e-l sgg $C6l4l 94. tr14^l +il 'C ill= 44lg s.€6'l= 71 61.+zj Elol 4= '+zl 9*a, EZ'l 4= ,4al5.I 4+ s?lEl"Jg 7lg+4= + Col 314. CompositeObjectts 4l*4 ,l8l= €41 g + 9l= Dti4q=g zlflalzl 4€-ol ^l+471 dal +ii ,l^I= +€ + 9lE+ ilaEl.

:rB 2ql^l zl4(child node)g zlzlz glts lg=

Eg Compositeobjecl z{zfloln, ++ les(leaf node)ts DisplayObject 49(tvpe)9 ,4iilol El.

CompositeObject= 7l6lEl4 ,q4l= al+61q, ,l^l tsE_s= 7l alEl4 'liil +'+ olq4 +i+ ,q.ilE 7la + Ll4.

3 . 1 . 3 4 4 q 4 4 { q + +

Eael q:=/Iol= I.Bg t5= r+aol^l ,l 4 = ! . q + = E - g A ! + s g A o l € k i + z l r l l 9 S.E +Col + 4ol E0ichr)= +41 jr.eJ6l= QIEJ

? 4 4 9 - e 4 H 4 . o l + 4 C q l ^ l , 4 4 1 = 4 = + Cg zle + 9l4. {EJAoil^l zl4l5 z}{q af, 6 J +CsE. g€gq oi 6lzl t, sga +4oil^l=

^ l * ^ l 7 l "JolBTl f €- €4s eq E€q7l qE ol 4. 6lzl BJ E-g?g 6171 96il ^l+9= +^Jg Ha,-l7l d7l 4lE.I ol 5€. 74^IEol oJ"Jol 7l I dl= ag +*,-l dl tgzJol4. containerE ?9

Contairer Displayobjst

INtobjct Vectorli,st Property

XiDd@

Ceera Liqht

Point PolygDn Co@ositeobject

ColorProper ty LineProper ty PointProperty Textue 0rthographicCera Perspectivecilera

= 3 4 € 4 : z { ?

ol { e"l^-i= P 7}zl €:9+ =ql^ol Etlsll + rl!_E+ 61414.

-.--l-::--=

FudrS,c ll/ing,P.rif{:l TrilPm

/ \ - / \

raEns,ne wins

"t\l"t _7

3 . 1 - 1 z l 4 E z l 4{

2 3 . 6 q * d * =

(4)

3rtg rl[e4 EqSt +tE '4rfl Il* :rr[E^ tt!

sEA +4€- ,,t= ,jillE-g B+61= qgg 617l 4lE.I 7l ,-lal4 ,l^il71 sgB +cg 7l E6.lzl s E+ 4=q. a4 2e) C.g Eilol 4tsIol4.= 4l 7lg Conrainer rl4l= ll+61! fl=EI,.L 6oil^l S-objecrts €;ti zl9 +"J Fing +"1 zl DisplayobjecrEr+ 4= +cge s.€471 9l iil ^l +€Ei.

E7,lg +€ Elol ElDllol ^E S6J6lB^l ol ulzl g

€ q 6 1 7 1 4 E q , + E r l l o l 4 t s l o l ^ o I ^ l o l = (cycle)ol iJTi H g.Jg +e,alAl 4l+C + 9El.

ol "J 7l;Cg $olzl gl aN,! 57,19 4= ,l'l€

zl^l tiE.a C.*g + 9l= Container4 Compositeobjecr 4"Jel ,i4l7l ^Ige- z+ii= g6J E 41"14 ^lol=ol u3rla|ts zl€- +.Jdll=4.

3.1.4 Property

Propertyts +€9 S.€61= 7l+ 7lB =4:e o l € 4l+61= =4^= 7l6lq4 ,l;ilg +Cg S

^l6l=cl ^l+€rl. +^JC +4.I= ,qil= +zlzJ 9 s * t s q o l 4 4 l o l ^ o l A ! " J € + g . o q , + 7 ' l

DisplayObject, Container, InstObjectel Vectorlistzl

q € s * s e = q € a " J r l E a 4 6 l = i B g e

^ l + € 4 .

o l a e sgts'J rXE ^qq+ 4"Je] €Eli, del 371 +i olq4, {]rlzJ 4, E4aA, Etrel zila€|g s . € 6 1 = = r l 4 = cgc 4 4166'1= 4 * 9 = 4

L7l €4. +c =41^= PoinrProperry, LineProperty F g"JA g q ^l+q= 7i, Texture Aoi dElA+ 4"J neJgl= 4C4 ColorProperty i l e J + a + o l s F ^ l + 5 1 = a o E - B + € E l . + ,

4 l r J € B q i t ^ i + q = + ^ J g s " 3 t s r + 4 " I ^ l d 6l adqzl 9+=4.

3.2 E^E!^(lnstance)9 €€

zlSzlE qzl?l6l= a+, Li TIel Bl+l = +g y"ig ,)71 4E.l qzlo1 q= El?= s+ trls sgadlTl BEI= 6lLl€' Egedl^l ^l+61J.:l 6J aol4. ol EzlE 7l+ a+6lXl Eia6l= tsJB e € z l € s g g r 4 s + ^ 1 B ' I = * B o l 4 . + , i l g sg!+ ag 4"J9l ilnlE t= + s= rlol4

= rqlg- +^16l= aol El. 6lzl q! "l *Bg +^I dl='.Iill9 +oil ul eJl 6il^i 4lEel z1 s+El j1, oJ+

^Jxt4l sgg +;(ldiTl 96tl +€€ ,4nl€ s+

7lq6lE^l 449 'q,ilel l}59 11+ tsI+lol 6l=

d 7 ) s * o l ^ J Z + .

ol ++6J zigSg oJ:EJ:el TI]ES ol +6lq 4aC + 914. InstObjectE 54 ,qilg +^lgg +, El &{6}r. g.g4eE "JE + 9]21 +E}. gel qql ^'1, Hl? 6l+= sga+ +, r+Elzl = ^I+zl 7l gEi= g;.ls ts+^l 7) ts InstObject€ Eldi +

Computer Graphics Society

= 4q-" ,-l;lel +^igg siE + 9lEi. rg 5=

ulEal El+l 6l+Rlg -sg*Elr +"lzlts qlaH

^-? +== tsJBg .HqeEl. InstObjectts s94 e ,_q^iql 46} goJEl= 7l q6ln 9,lo ss, t!4EJ :=ol nJ,!- Ag so}-q-e =qC + il4.

Instobject .j.o;

// de to construct wheel object

io = new Instobjst;

ir>translate(200, 0, 0);

wheel->attdchilal ( io ) ;

io = neH Instobject;

io->translate(0, 300, 0) ; wheel->aaldchild( io) ;

io = nel{ Instobject;

ir>translate(200, 300, 0);

:r.B 5 oJ^EJ^gl ^JC "JB

4= ^l :"J5el Z*(open Inventor E), ,lrll.el

"J:EJ:= ^3C617l goil^l= oJ.EJ^E RlEel=

jaelE ,lnlg tlg ElB.l^-l E+ 6J€g 7l qal=

*Hg ^ls6JEl. 6l,(l R] ol 3J d= dlBg oJ^El^

= J.il 71 9611^]= €4 +Aq= ,l^il + "lq+

t}_fl il4l.I r.ll+ s.JEl= zl$ala 9q.! +4=

EdS zlzl Xl €El. +, ,+;ilg +^d + 6lL+"J "J : A : 9 t r 4 " 1 z l q 4 e s o l g z l z l P + g g E"l 'J4.

3-3 4Z(plcking)4 ZIE(path)

E r J g t l E r l + € r 4 E : ^ l ^ e o l ^ l ^ l + z l e + 9 4s i + g 9 6 J + t s e ^ l + € 4 . DisplayObject /q^I= 6l+ "l*9 Container4 Compositeobjecl zi4l4l el.il *+€ + Ll.a, E6J zldel oJ4EJ^zg 714 + 9l7l q€-.il 4nl=

7 1 4 7 1 = g o J E l u J e s = 4+61 q€ ,q4l€ +4 .I=rl 'J + S4.

as= ol zJ E:I= djadlTl 9311 +e 7IH o_?

,+illE +tr61 r 44l"Jss El+zl 9*r 'liil=

s6J6Ii1 tl= dil 4"J +^-lE s6J-il^l 4;!"J4.

^l+zl7l EZg 6lE *e rilol4silol ^el A*9 44 +g ,\|gzlz| zl 46'J l-EE-+El dq€ ?_qnl , l r \ e l d e ? E e J = E l . :a A 7 4 g € e e : 2 4 1

7_!;ll(Aircraft-TailPart+MFin-Fin)€ :18 6oil^l

Eag Hl 6J7l zt$Eil J[el 9zi(sl+S.).rl r.l"J A . e = ! - q + = r g " l 4 .

(5)

f g 6 q r J g r j i t l

,lrl+ r ,1iil9 ^l dC 46il+= 7l"il4= +34 o s +461E-e4 +tr qol4Bilol ^ e l +cg -H_

4 dxt c + ilE+ 5J4.

3.5 8E rlol4{ol'rE Ee

5ag ^l+61= *+ o.?r€oil^l ^JC6l= ?-4 4 l 7 l q ^ 5 e l o l q 7 1 9 o t ^ ] = c " E E i l o l 4 4 l o l ^ q ^J^d€ z4,lcl Window i4;l€ 4€61711 €adl of 6J4. ?E+oil= €ztl *E Ellol 4dlol ^oll 9l-.

c!-= s€E171 q+q +E Eilol 441 ol4"l 9l:--- 7=21 u1'49 gE+E El^l +q46iql iJtl.

E;bfttl |s5bjcil loroupl l:F --]?--T-

-..' .l \ l: I -,.4

Fuehge JetEngine rMng Fin Aircrrft -.--: modiry0 msssage

rg I *E Ell ol 441 ol ^el trA 4C'+ ae EElzl g^Jg q,

. * E r l o l 441 ol ^E +ag tel: 4;ll7l alEq 4 + + 4 l 9 C l , + e , 4 4 1 E o J a E J a T l + 7 1 _ 4 . ,lil9 .I8"1 Esl: altr rilol 44lol :"I .*.+tl ,-Inlel at.l {E}g "I =, '+alg l1++ atol+ + C o l , i l € a +

BslTl €6Jg El :j = sE gE+B Baoil"Ft "J El. + ?+ rl7l HI,il Z + ;!r$ rilol Qul ol :"I tt"J +g Alnlc 4, ^ltlol tr*cc *4ts modifvo 41 11 u11-"".u"e)E sE *9 r-l 4l€"il Al gStrl.

ol modify0 4l^l ,l €- BJg ,j4l= zlale zltl9 g6J6l= ,14=ql Ell^l 'l= Bul^] *E rllol Qqi ol :9l 3l*9j i+4lzl;4l E96l4 94. rts 9= E El€ z-!4lzl H'd !I^l zj 7l ?s.*zlul E96I= rl C g B q = E l .

*E rll ol +Dtlol :.1 9l= e5; ^|11$ zlal zl

= * 9 t = 7 1 q e l 4 9 1 9 + g o o s , E E I T I

" J q g q l - E = ^ J q r . - o i z l d o l t s i { + g 9 4

= oil^l zl= B{4. ol El^lrl = E}g 4 tr-=_= a}

alol ?E+"I €agfl=zl = +oJ6l:il. ,Ica * I :,- S olr-l 4 flE+ql E Dll^l ,lE gql r. o

= Pg gE+= ^lsg tltr qlol 4dilol ^= _f F

=El. ol fl r+ag Ell^l7'l 7l *tr ql ol 441 ol ^9 ; 'tg ,-tsiil.I EB€ ql Hl 94 €klEl. -rzlEs z',

€^BZl +E tll ol EltsIoi^E BElTl €EJ:€- El il

= s = ? F - + E E A ^ j Z + 9 1 4 .

*E rll ol Eltsll ol ^71 HAg a+, E.a uilg,-i ! E A € C s = s l B 4 u l F 4 g e = q . J + = l i : g

"t,Zl "J, r1l ol Qz| HIHdI traeJ z* 41=.:r "'

Fuselage rMngfaniffi

/ \/ \

JetEngine Wing llll i: sFin ! l l : l

\ /rui

r B 7 E ' z J € ' ] 4 4 9 A s 3.4 g5+el 7lrl4

Window 341471 +*61= oJg 34 + 7171e 4E + ql4. .= + 614= *9 rllol 4sl"l^zl = e j A € q g 4 l * E l = l o l a , { o l z l i , + d q g q ol^l "J^J6l= 6l dEE ++ g-a:a*ol ol 6il6J + S l = € 4 . 4 d l + q + = " J " 1 4 .

7l'il4= l-gg dl € 9l:l(^l d)ol^l q€ *^1 o E F€(projecrion) ^l ?aoJTlg ac6l= qEJg 6J4. 57,lol zl*61= zluil4E Orthographic4 Perspective zlDll?+ F ++71 9.1+. Orthographic 7 l q 4 = ^ l C g S 6 J 6 l Z l F € 6 l z l 4 l + q l ^ l d r + el Z4el= +TjlSol ^I€-E rzl ol Hl rtldll^.i ^l€.

ol +4k1r}. Perspective Tiql 4= +l++9 -9.€61 71 4+"1 3-7171 +e + ^l€-g ^1 driel Z4"I R I t s l 4 q q . g € € 4 .

lc{bj64 F-obtdl |Ercupl ,-]:_ ----T

- , / l \ l l , z z E

Fu*l.ge JetEngine lMng Fin Aircr.ft

rts 8 Ele flE+= ,l Aal= 1IE rll ol El dll ol ^

*E ril ol Eltsllol := rg 8otl ^l gol Fol 6l+

"l tlg flE+ ,+nl.l 9-I ++=J + 9l7l "liE.il,

g E + , l i l l = zlCel €Eol rel€ ++ + zl+

*9"I gl= r.=ol rle EoJE.l e+ 7l"I?+€- ,,t=4.

Open Inventor= 7l'il4el elolE= 61,+s-l c-E rll ol E4l ol ^oil g+^l a^l zJ*6]-71 sl+"1, "Jei

^I€,zl7I t^]g + ^l4a^l g*sE alqls r€ol +q;(l 9*g +E 9.lEl. + TlDlelS *tr Eilol4tsll ol4el d ilgoil dfoJ6lzl 9+C a+ 4ql+ *41

* o l = , l i l = "J+Elzl qlselol € + s4. g ts+.I^.i €B6I= 9r,lg slEql El :=ulol sl =

t ] t ] t l

@ '---\---

(6)

3rta .Ege4 ilqeJE i{E z{at I|s fr||E* 5tl 9 q 4 d l - z l L l + r l g + 9 l E l . o l A 9 4 4 1 E =

€ol zl 96t, 4= ^l^EJol^l= ^l+zlel g_+.I trl 4 .JC ^l7J 7J49s Eltrg 4^l rq+ss.,i3 HIH6J gE+q Bag *-zl6J + 9= Tltg 4l

*;|21 o3, ts €+.1^l ,loJ+ Er,lql^l= olzl ol 71!.9 ;<196}z1 9+i1 flEl.

3-6 rt3|g

,4.t] z1 r3' 7l Bg sEel(moduiarity), ,J€El, + +C, uti^l:], 4 4€C(polvmorphism)Fg FCg 4i*61=El, ol +.I^J ++Cr+ 4€de ^l+zlel elErls ^l^EJg q+;J + 9lE+ i'J4. ,4;l ;(l 6 J z l H g e €4lqflrl clEql Eael -E.= =44

= +* 7l*6lEl.

Ea ^l€-Zl7l 4-e€- 7l :,g ,*y =4^Z +71 ElTl 91 5tl^J= E4 €a"i^] 'l*61= =ell^ ? zl* *5dol Y+e ag d4,6lq 4++El. El+e e 6ilol 6J "Jg 3il + zlzlE_ ulHq 44. 614

= =4471 g.s6J r,Iol4e+ 'lol4= d=6J + gl= 6JiE AgEl= 4ol J.. r]{zlts =7,1 "1 46i +e s.a.tr=g zl 7l= oJol4.

r B 1 0 9 P o t y g o n = 4 ^ e l 4 9 8 P q + = r l , 4Cr+ ae 4714 ei= s.El+4.

i) DisplayObject= 4l+,

ii) F4 4"J ol4(dynamic ry'pe checking)49 9"J

iii) QIEIA 6J+,

iv) *9 llEql Dl^l,''l= !-g + 9= qlq4 4

o l

^l+zl= 7le4se 99 r-Jl +eg =rl4 Cel .i sBJd7la ts4 Eilol El= ilq6l= Eil^e= ael 8l= ass dZl Polygon =4^= +E + 9J,4.

t

h ' r h 1 i A ' D ^ ] " - ^ - l \ .

-potygon(

) ;

static String& getClassilane( ) ; ---*-'-- i

static String& isAO; I iil

static Bool isofc]ass(onst String &s); i

Zt'"tu"" speciflc nenber fmctions ./

- , , - , , _ - , _ _ - n )

private : NDList tvertices; '.'--- iv)

) ;

rg 10 Polygon =rll4q aq

4 . e E

3 z l g r 4 E ^ + + u q f g g + C 6 l = "Jg + + 6 l a q d + 4 s o l E l . + 4 = 4 i l j ( l 3 } 7 l B€- ol+6il^l *€- s_sr?d zllgzizl ^l€-6171 t46l i1 zldE rg-rBg 5C"I ",tE+ dzl ++g + q = 5 a g € a l . + € 6 i 9 4 .

€7,lel ^l+zl= ^i^e q+oil^l ol 87il rgol :1d;(l=7lE g7l H4= 4tlol q€ -E-cg +^J 6lazl El=7lol alAg ,AE 971 q+ql, f rlE^

4 z l z i + g E + ^ l ^ g q ^ l + * H o l 4 z l 4 l + r rliE^ 'I+g -E-E-a.E dil Eag ol+dll^l €-+

E E - r + g ^ l + g + Lltrl

6J+ r+^l= 4C4 AEl. Eag d41 *+ Es :r.tsql 4€-6il^j :a 4+Z 3^l6lq E{e) 7lE

6}tlg E.goio} 6lJ, ol {E ilzl e} !-4 Sg r

4q '14= ^l*6lE+ "Iot +4. r;J €zl E4 g dEl€4 SB4olzl *6Iq 4eg dEl"d ^l^

EJg ^l+61= \ol $zllzlzl 4Bql {qa ^l:

'Jrlel +B^Jg +rl dlE+ El= oJol *g 4al ol El. E6J oilquilol €ol+ 7l*€d ^l4Bg "J==

L-il g,c+ 7ltsEg iztdJ zjlgol4.

5. gz E-e!

[1] Parris K. Egbert and William J. Kubitz, Application Grpahics 'Modeling Support Through Object Orientatton, Computer, 84-91, IEEE, October 1992.

t2l T. L. Howard. et a1.. A Practial Introduction

to PHIGS and PHIGSPLUS,

Addison-Wesley, Reading, Massachusetts, 1991.

t3l Bradley D. Kliewer, HOOPS: Powerful Portable 3-D Graphics, Byte, 14Q), pp.

193-198, July 1989.

[4] Larrv Koved and Wayne L. Wooten, GROOP:

An object-oriented toolkit for animated 3D grpahics, ACM SIGPLAN Notices (OOPSLA '93 Conference Proceedings), pp. 309-325,

July 1993.

[5] Mark A. Linton, Paul R. Calder, and John M.

Vlissides, InterViews: A C++ Graphical Interface Toolkit, Technical Report CSL-TR-88-358, Stanford University, Stanford, CA, July 1988.

Jackie Neider, et al., OpenGL Progranming Guide, Addison-Wesley, 1993.

Paul S. Strauss and Rikk Carey, An Object-Oriented 3D Graphics Toolkit, 3 Open Inventor9 ?$,

z 3 l = E g + * + 4 . 4 d l L l E = 4 . s + q q-ln 9€. A+, "J-4.Jql 9 9 . r . 2 1 E q ^ l + t E l .

Sensor(Data, Timer)zl $E$E E

t l ^ j € , l i l l E g 6 , 1 + 9 4 " J o e 7 l s g E l T l 7 1 4 7 1 = z 4 r l 9 d n l 4 " J

'Computer Graphics Society

t7l

(7)

Euilding a 3D Modeling and Rendering Toolkit Using Object-Oriented Programming

Computer Gmphics (SIGGRAPH 'C2 Proceedings), 26(D, w. Yl-U9, July, 19t2.

[8] Steve Upstill, The RenderMut ConWion, Addison-Wesley, Reading, Massachusetts, 19S0.

[9] Josie Wemecke, Open Insentor Mentor : Progrowning Objed-Oriented 3D Gruphia with Open Inuentor, Release 2, Addison-Wesley, Reading, Massachusetts, 1994.

[10] Peter Wisskirchen, Object-Oriented Grwhie : From GKS ad PHIGS to Object-Oriented Systems, Springer-Verlag, B€rlin Heidelberg, 1990.

참조

관련 문서

In setting future goals, social-oriented future goals that contribute to the spirit of service and society and family-oriented future goals that emerge

그래서 저는 도전하는 마음으로 Object-Oriented Software DevelopmentⅠ 강의를 신청하였습니다... 지식과 자시감 은

(Attached to a noun) This is used to indicate an object has the characteristics and qualities of both a preceding and succeeding

PXT(Programming Experience Toolkit)는 Block Editor와 JavaScript를 지원하며, 라디오통신 기능을 추가한 Beta버전의 에 디터로 기존의 Block Editor에

FIGURE B.3.1 The linker searches a collection of object fi les and program libraries to find nonlocal routines used in a program, combines them into a single executable

Results are following: first, students in the high level goal group whose achievement oriented goal and life oriented goal from life goals are

This book contains hundreds of complete, working examples illustrating many common Java programming tasks using the core, enterprise, and foun- dation classes APIs.. Java Examples

aSystem design performs many design tasks at different levels of abstraction.. `Requirements, Specifications, Architecture, Coding,