`
`ISSUECLIQSSIFICATION
`
`
`
`
`
`I
`
`.
`
`I-III-II.-.-.-IIIII
`
`II II
`
`.
`
`I-I_I-II--II..I.
`
`I
`
`
`
`LIV .
`I'---:J_vI.I:xII-_'I'
`
`-:
`
`i_'I:
`|~'2.L-.".'I.l-|
`
`I_I
`_|
`:_I'5's"J_
`_
`l...
`I'-II_.I--:—II-:I
`
`'
`" "
`"'-L"‘:3-
`:_II'.i
`-
`
`..-I::‘-I'I:I.
`|'|.|!-'|'-'I.: I. I...
`
`I1‘ ;I_~qI__I j[ I-.|Ij;.
`
`I.-'::.I'I.II'" I.
`.I:-
`
`gI;j]",',::-,
`__
`
`I
`
`.I. =:=
`
`I: z.
`
`--:-= I: =I
`
`p_rw-/Q.s.s/;2/
`
`I
`
`-?Z :I: "I: Z}: -I
`
`I. II II -I II i:i .I
`
`_..
`
`
`
`
`=-==<F'=.hI
`..'I.‘=.I'~l/I-"I','
` \‘
`I r I E" ii-
`
`I"
`
`I‘I|'5'i'|._-.l|f'I'-'>I'i"lEliixlr?-‘*5\""“‘ H
`_
`
`. roe;/as/ras/""
`
`'~<
`
`|'-'I"_i|-»!I::
`
`1 (RN F"
`
`.1 l. Ii'xlI’_'1
`
`|.:-iF!_I'_-§|\|'|
`|._ .'[C'|__-_N.‘,7_~F_
`
`STATE on snzsrs
`1:: 3,...
`Furlign pnnmg dakrnd
`v
`' As
`
`.a5USGll9corIvB1IintIsma
`I:I yea fi
`FILED cqunrm nmvas.
`'\te41Ile¢a:1dAI:Imov1Iodgad mmmsinm —§ 1 ;~;
`.I.=.‘.
`
`I-':'.?."
`
`1
`
`'.-31;’
`
`|'_'|I£w"E'.h*.':n
`
`-5mI‘IaI.I_ I-_=_
`
`.-r-r_=«_
`
`‘rem.
`cLmsIIs
`
`1=1LmIa sea
`RECEIVED
`.~s'-1 _.
`|Ii‘E‘.F.E.-. III‘:
`
`A FINEv's
`oocxsr ‘HO.
`III "L:
`-
`. II 1 I11
`
`-:
`
`
`
`
`.
`In-I-‘I_-'.
`;.-\'
`
`
`
`r_i|
`;;’I I
`Ir.,r‘.-.l.
`
`J_
`I.
`
`1"
`It
`.
`
`
`E
`
`
`
`If||EE.|'|--|I_'jI]j-
`
`.1“-1E\IIZ<
`
`}’_'I'Ir"'I.'l'|':I|\'|
`
`F'I"_IE~': F"Fl'|::|[y|.|[:|:|‘I|E5
`
`I.-':i|'v.':'3a|:'i'|I|.LI'-"'Il__
`
`
`'|'.|"'|I'-VIII 5
`
`
`
`Form maw,
`
`PARTS OF APPLICATION
`FILED sEpImArsI.v ’7_ 51315,:
`NOTICE OF ALLOWANCE MARLED
`
`‘
`
`
`
`
`
`“
`I
`[Q
`Asst anl Examiner
`'
`DRAWING ..
`'
`_,
`'
`
`_
`.1’_,
`.
`.-
`1
`.
`Suheeta-Dn-U9. Figs. Drwg. Print
`\. %‘JGU‘1'E?-I
`9
`‘3
`2
`5 av E:IcIzIII'I.=I=Ea
`Céflf.‘-‘JP 2499
`§_;‘T"cEH
`/I5,/U
`PrImaryE miner Numafin
`
`
`
`
`
`wnrluma:
`
`‘rne Inrormalion disclosed hereiri may be <estnc1ea. Unaulhorizad disuosure may be prdhibilea
`by fhva Unilad States Code Trtls 35, Sections I22. 1B1'a.n:l 368. Possession oulsidfi the U.S.
`PaIen1 & Trademark (Juice is restricted Io autrsonzed employees and r.ontrac1ors only.
`
`rormaIDmMnsst_srI1sIseL_
`
`
`
`1
`
`GOOGLE-1002
`
`
`
`;:::ig;E“
`
`no
`-33
`
`'
`
`I
`
`.
`
`.
`
`-
`
`N
`
`-
`
`-
`
`'
`
`UT|L1TY
`
`mata
`
`SERIAL NUMBER
`
`PATENT DATE
`
`39281999
`
`PATENT
`
`suacmss
`
`FILING DATE cutss
`
`
`
`1
`
`GOOGLE-1002
`
`
`
`'
`
`I
`
`PATENT APPLIcA‘fIoN
`.!%flhYlllllIfliflfllll%Mi|lJmllflfWfl|7IIi!
`08726091
`
`[1
`
`APPFIOVED FOR LICENSE D
`.,aIal$1HsU_7;vw.e_,.:+
`
`%
`
`CONTENTS
`
`Date
`Received
`or
`Mailed
`
`
`
`1. Application
`
`
`
`03 726091-
`
`Date
`Entered
`or
`counted
`
`2
`
`
`
`'l_.l.8.
`
`FHINTINGWFICE: Ifi-420-SIG
`
`SUBCLASS
`IDNE SUECLASS FER BLOCK}
`
`'
`
`
`
`.
`
`=
`
`-
`
`_
`
`f'°..?:':;,}'
`
`'
`
`H
`
`Iésua cLA_ss‘r'i=IcA'rIoN am!
`
`“'5' .‘?f5si'}'.”.‘§"rL°§e$9L*?<”3‘s?.E§
`
`3
`
`
`
`
`
`Staple Issue Slip Here
`
`POSITION
`
`
`
`- C
`
`ORPS CORE 2--
`SPEC. HAND
`
`INDEX OF CLAIMS
`
` rL'FI-‘r'IN.=:In5=‘.
`4
`
`4
`
`
`
`
`
` SEARCHED
`
`'
`
`INTERFERENCE SEARCHED I
`U
`-.
`
`
`
`
`I‘ FIIG HT OUTSIDE}
`
`'
`
`I/4: I
`
`Cr 4' O
`
`«M;
`
` WI
`
`5
`
`
`
`USG0595963-3A
`
`[11] Patent Number:
`[45] Dale of Patent:
`
`5,959,633
`Sep. 28, 1999
`
`3451339
`345539
`
`
`
`9.91998 Yoshi-da elrrl.
`5,805,160
`5,8l'2,I31 WI998 Bcnrarn
`OTHER PUBLICATIONS
`
`Developing Vfisio Soiulions, Version 4. 1995. pp. 1-163.
`Prinrary Exarm'ner—Phu K. Nguyen
`Atrarrrey, Agam, or Fr'n.u—Bakcr & Bolts, I_.L.P.
`157]
`m;s'r|ucr
`images
`A melhod and syslern for producing graphical
`includes :1 cornpulcl-rcadai:-I: medium and a computer pru-
`gram encoded on Ih: cumpulervrcadabla medium. The cornv
`puler program is operable to access an exlcrnql shape slorcd
`outside the Onmputcr program. 111: cxlcmal shape com-
`prises external capabililies. The computer program is furlher
`operable to delegate the produclion of a graphical image of
`the exlcrnal shape to the external capabiiiiies.
`
`-
`
`23 Claims‘, 5 Drawing Sheets
`
`:
`r
`
`I
`.
`
`i
`
`United States Paterif ii;-9']
`McFarland et al.
`
`
`‘-
`
`1541
`
`P5]
`
`METHOD AND SYSTEM FOR PRODUCING _:
`GR;-\l’HiC.-AL IMAGES
`
`lnvenlc-rs: Kevin E. McFarland. Copp-ell; Rndnuy
`T. Whisnanl. Plano. bmh at‘ ‘F: x.
`
`[73]
`
`Assignee: Microgrnfx. Inc., Richardson, Tex.
`
`[31]
`[23]
`[51]
`[53]
`[53]
`
`[56]
`
`Appl. No.: Dllfl-'26,i}9l
`Filcd:
`Oct 4, l99Ii
`Int. Cl.‘
`.
`lJ.S. Cl.
`Field of Search
`
`. GI)6F l5r'0l}
`345)“!
`
`34515140, 441.
`3-1-SM-I12, 4-13, 1.13, 114
`Rctumnces Cited
`U.S. l"P{l'ENT DUCUMENUS
`811998 liavinllielal.
`
`_-3«1Sr3_33
`
`5,190,117
`
` KIM!
`
`I.-___-.._____1s.__________________:
`
`'
`
`
`
`
`
`
`
` ACTION 1
`
`SYMBOL
`
`
`
`
`
`
`
`6
`
`
`
`US. Patent
`
`Sep.28,1999
`
`Sheet 1 of 5
`
`5,959,633
`
`110
`
`'13
`
`
`
`120
`
`I
`
`_.l-
`
`'.
`
`LIBRARY
`
`125
`COMPUTER
`GRAPHICS
`APPLICATION
`
`122
`
`'125',%j
`.
`COMMUNICATION
`
`210
`
`COM PUTER
`GRAPH ICS
`APPLICATION
`
`MODULE
`
`SHAPE
`COLLECTION
`MODULE
`
`SHAPE
`COLLECTION
`
`7
`
`
`
`U.S. Patent
`
`Scp.28,1999
`
`Sheet 2 MS
`
`5,959,633
`
`ACTIONS
`
`INTERNAL
`swam
`
`INTERNAL
`ACTIONS
`
`INTERML Mm
`swam
`
`.222
`3A
`
` INTERNAL
`
`
`
`
`EXTERNAL
`SYMBOL
`
`EXTERNAL
`flCfl0NS
`
`
`
`352-
`
`'
`
`352
`
`ACHON 1
`
`.
`
`RESOURCES
`
`RESOURCES
`
`
`
`-
`
`
`
`s'm30i;g i‘
`
`RESOURCES
`
`
`
`
`
`
`
`
`
`L__; _____________________ __;J
`J
`
`
`
`
`
`
`./mg
`5
`
`-
`
`IIII
`
`INN.
`
`‘
`
`SYMBOL
`
`RESOURCES
`
`
`
`
`
`
`
`8
`
`
`
`U.S. Patent
`
`-5
`3'2;
`,'I.
`:
`Sep. 28, 1999
`
`":
`
`'-
`
`Sheet 3 of 5
`
`5,959,633
`
`' FIG. 33
`
`31 1 ® METHODS
`
`/‘
`312
`
`313
`
`FIG. 3C
`
`
`
`"/4
`
`317
`
`
`
`FIG. 4
`Action Methods
`
`
`
`
`
`
`
`
`
`
`
`
`
`Methods
`
`(functiqns)
`
`512
`
`
`
`
`
`
`
`I
`IIEI
`Gi.IE§iI§_
`SusendForeround BOOL bsusend
`
`——G
`
`nLButtonU UENT nFIus. CPoin1 oint.
`
`BODL bCl'u:k
`
`———_C
`
`
`
`
`
`
`
`
`
`
`
`Wnd- Wnd. UINT nH|lTest, UINT messue
`UINT n|DEven|
`U N n her, UN neCnt.
`UIN nlos
`um nChur_ umr nReECI'It. um? nFIa
`UINT nChur. UINT nRecnt. UINT nFlas
`Dncommand WP ARAM wP crrum
`
`
`
`
`
`
`
`—__*
`
`
`
`9
`
`
`
`5:
`
`'A»-.1-r
`
`U.S. Patent
`
`Sep.23, 1999
`
`Sheet 4 ors '
`
`5,959,633
`
`
`
`
`
`
`
`
`
`
`S mbul Methods
`O
`l
`
`
` I -
`
`0
`
` I
`
`0
`
`I
`
`
`
`Il
`
` .
`
`l
`
`0
`
`0
`
`O
`
`I
`
`0
`
`COLORREP r We“
`
`
`E?‘
`
`
`
`
`B3E3'£G11i1I
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
` He“-lads
`'
`{'”"“'°“‘)
`
`
`
`
`
`
`512
`
`354
`
`
`
`
`
`
`
`FIG. 5
`
`'
`1'35 B.B‘:rrTESlt:l'I;dSlfIE5.
`I‘-‘
`setznonau-us em: Radius
`.5!‘-F“|C0|0f COLORREF FDNW
`c_on-at CS mFill &NevtF|||.BDGL bCo - U ,OOL bfleietea U -
`5E'lF”” E 57"” 9 NI‘-‘WT'
`setsncoror COLORREF rbNew
`3001- “FONS
`Setflockround
`aooL b0uus.COLORREF rbanckmund
`ChIcuIoteBounds.l
`Gewisibleflounds
`EiECT_ -Real
`
`GetGeomelrF:BhLInds§ RECT ¢Rer.t
`_
`
`Get e1<tUl3|u'.BDUfl.ds‘, -L 91 I Rect
`.
`
`G?-'|EndF'6Iflt5.
`'U’P0INT' |F'W|15
`LPDINT oPc’¢n\S.]n1 alNumPoint5_Inl Cur\reNum=O
`
`.
`59'“ "*0 &D'°W|"‘°
`CDFOWWO &UwW|I1'0. CXFOIMED &1‘W"
`
`59-‘W0 nsiofmC
`Sefiransfurm CKFOFMZU 55-!*F°fm
`
`
`Gelposilicn LPPOWT [P05
`
`
`cunsl oint 5ctDffse't
`
`
`canal Caint &lGri:'n, double tSheurFcIctur. B04. BAIJDUUE
`[EEflconst CPaint acoriin, doubleMnle
`
`
`const CPoinl &0riEn. double ><Score. double Scale
`
`
`60051 CXFDWHED 5I><‘°"“
`
`
`
`eICcntexlMenu Crnenu -Menu. BOOI. bEdit0ni
`
`
`GetNum dilfitlions
`
`
`flI
`‘"1 Hdx. char -_ lrll ‘Iter-
`
`
`Ge'tNumC=nH==TP*8
`GelConrIeI::lPt5 LPFOINT |pF’oints
`
`
`GetConnectPt inl
`linden.
`I.P90|NT rF‘oinI. LF'Point IPo:‘ntHeference.nu|_§_
`
`
`
`
`
`Get0°t0-
`- Selflala int
`iTgpe. void - pnatn
`
`Suva
`
`
`' int LL.tnctID.__.void. -010
`
`Get5hoeNnme LF'STRIstr..
`Int -Max.
`u.1:
`
`
`
`10
`
`10
`
`
`
`US. Patent
`
`sgp.2§,1_999
`f
`
`
`Sheet 5 of5
`
`5,959,633
`
`T10
`MOUSE CLICK
`
`USER ENTERS
`
`. FIG; 6.
`
`
`
`
`MESSAGE
`'
`IF AN EXTERNAL
`
`
`AP5P"-ZEAEFON
`I
`= _
`s_'E_'LE_'c:TETJ
`ROUTED TO THE
`
`-'
`_.-
`AC-IT.]0N"lN THE
`APPROPRIATE
`
`'
`APPLICATION
`EXTERNAL SHAPE
`
`
`
` ACTION
`PROCESS
`
`MESSAGE
`
`
`
`11
`
`11
`
`
`
`
`
`5,959,633
`
`1
`ME'l‘I{OI) AND SYSTEM FOR PRODUCING
`GRAPI-IICAL IMAGES
`’|‘ECHNlCr‘-‘LL FIELD OF THE INVENTION
`
`2
`the
`lower cost. In addition,
`provided more frequently at
`invention provides for the modular production of additional
`shapes. Shapes may be grouped in diflerent modules based
`.on similarity cl’ appearance or other characteristics» such as
`intended use. For example, shapes commonly used "in a
`particular technical field may be grouped in one module. The '
`invention also provides an architecture that allows for the
`integration of additional shapes with an existing computer
`program without modifying that existing program:
`BRIEF DESCRIEVHON OF THE DRAWINGS
`
`For a more complete understanding of the present inven-
`tion and the advantages thereof. reference is now made to
`the following descriptions taken in connection with the
`accompanying drawings in which:
`FIG. 1 illustrates a computer graphics system;
`FIG. 2 illustrates in more detail the software architecture
`of the computer graphics system;
`FIG. 3A illustrates the interaction between a graphics
`application and shape library;
`FIG. 3]! illustrates details of an internal action shown in
`FIG. 3A:
`FIG. 3C illustrates details of an internal symbol shown in
`FIG. 3A:
`_
`FIG. 4 shows a sehem atie of the external action aswciated
`with the external shape shown in FIG. 3A;
`FIG. 5 shows a schematic or the external symbol associ-
`ated with the external shape shown in FIG. 3A; and
`H6. 6 is an example flow chart of an example external
`action.
`
`DETAILED DE.SCR|PTl0N OF THE
`INVENTION
`An embodiment of the present invention and its advan-
`tages are best understood by referring to FIGS. 1 through 6
`of the drawings,
`like numerals being used for
`like and
`corresponding parts of the various drawings.
`FIG. 1 slow: a schematic diagram of a oomputcrgraphics
`system 1.10 acoording to one embodiment of the invention.
`Computer graphics system 110 comprises computer soft-
`ware running on a general purpose computer. Computer
`graphics system 110 comprises a-processor I12. inputdevice
`114, output device 116, memory 118, and disk drive 120.
`The present
`invention composes computer software that
`may be stored in memory I13 or on disk drive 120 and is
`executed by processor 112. Disk drive 12!] may comprise a
`variety of types of storage media such as,
`[or cttamplc,
`floppy disk drives, hard disk drives, CD ROM disk drives,
`or magnr.-.tic tape drives. l.'.ta'ta may be received Irorn the user
`of computer graphics system Ill] using a keyboard or any
`other type ofinput device 114. Data may be output to at user
`of computer graphics system 110 through output device 115.
`Output device 116 may comprise a variety of types ofcutput
`devices such as. for example. a computer display or a printer.
`Computer graphics system Ill] comprises computer
`graphics application I22, which is a computer sofiware
`program for producing graphical images on output device
`116. In FIG. 1, computer graphics application 122 is illus-
`trated as being stored in memory 118 for execution by
`processor 112. Computer graphics application 112 may also
`be stored in disk drive I20. Computer graphifi application
`122 tcceives information Irom input device 114 and pro-
`duces graphical images on output device 116. Computer
`graphics system ‘L10 further comprises an cxlcmal shape
`
`This invention relates generally to the field of computer 5
`graphics and more particularly to a method and system for
`producing graphical images.
`BACKGROUND OF THE IN\"EN'l'lON
`
`10
`
`IS
`
`Systems for creating oomputer graphics are well known.
`Many computer graphics systems provide tools within a
`computer program that allow a user to draw and edit a
`variety of shapes. However, conventional systems only
`enable a user to draw and edit a limited number of shapes.
`If additional shapes are desired, Ill! computer program in the
`system must be modified to include the additional
`tools
`needed to draw and edit the desired shape} Additfig new tools
`to the computer program each time a new shape isfdesirpd
`is a lengthy and costly process. Funhen'i_1ore 'oI'ice‘-a"coi_1i'-
`puter program is released; it becomes difir.-ult-'to _updat_e ihg .-
`program with additional shapes.
`1
`:
`In an effort to overcome these disadvantages, one corn-
`puter graphics system incorporates a limited component
`plu g-in capability utilizi ng tables. when a particular shape is
`desired. the system accesses a table of data Iiles. The data
`tiles contain information describing a shape. The shape is
`then created and edited with‘-tools within the_ computer
`program. Such a system is limited to editing and creating
`shapes in ways permitted by the tools within the computer
`program. Thus, although shapes may he added aller release
`of the computer program. the shapes that may be added are
`limited to shapes that
`the internal
`tools in the computer
`program know‘ how to create land edit.
`
`JD
`
`SUMMARY 0F.Tl-IE! 1N VENT] UN
`"therefore, a need has arisen for a new method and system
`that overcomes the disadvantages and deficiencies ol_ the
`prior art.
`I
`The invention includes a method and system for genot-
`aling graphical images. According to one embodiment of the
`invention, a method for producing graphical imagcs includes
`executing a computer program and providing a shape library
`external to the com puter program. The shfape lilivraryoefines.
`a shape having associated capabilities. Tbc'melhod;l'unhc_r
`comprises providing the capabilities associathd )AijitI3.t,_he
`"shape to the computer progr_a,rtt while [the applipatiorujis
`executing and generating a graphical image basedion the"
`capabilities.
`_
`I 1
`'
`According to_another_em|_>odiment of the invention a
`system "for producing graphical. images includes a computer-
`rcadabic -medium and a computcrptogram encoded on -the
`ccmputer—readal:le medium. '[t_te.computer program is oper-;
`able to access an external shape stored outside the computer
`program. The external shapghas external capabilities. The
`computer program is further operable to delegate the pro-
`duction of a graphical image of the external shape to the
`external capabilities.
`The invention provides several technical advantages. New
`shapes may be added easily without rewriting the underlying
`computer program. rflddilionally, shapes may be deivclopcd
`by third parties, addressing particular markets. t’-‘urtherrnore.
`because shapes may be developed cxtcrnalto the computer
`program, they may be developed outside the application
`project schedule. Moreover. because shapes may be added
`easily, upgrades to the computer graphics package may be
`
`re
`
`45
`
`.
`
`__
`
`I55
`
`
`
`
`
`12
`
`12
`
`
`
`
`
`5,959,633
`
`15
`
`3
`library I24. In FIG. 1. shape library 12:‘ is illustrated as
`being stored in memory 118. Shape library 123 may alsobc
`stored in disk drive 12!]. Shape library 124 contains infor-
`mation used by computer graphics application 122 to pro-
`duce graphical images on output device 116. lnt'ormatiot1 in
`shape library 124 is communicated to computer graphics
`application 122 through communication tintt 126. The com-
`putcr graphics system 110 further comprises a shared library
`130.
`In FIG. 1, shared library 130 is 'rl_lustrat__ed as being
`stored in memory 118. However. as discussed_.tn greater
`detail below. shared library 130 may also be s_tored_'in disk to
`drive 12». Shared library 130 provides '-a group of_ tfiitjity =
`functions that may ht: used by either onri1p'Lt_te_r graphic:
`system 110 or shape library 124.
`'
`‘
`FIG. 2 shows a schematic of memory Us in block
`diagram form. fttrthcr illustrating computer graphics appli-
`cation 122. shape library 124. communication link I26, and
`shared library 130 shown in FIG. 1. The computer graphics
`application 122 is a shape manipulator that, as discussed in
`greater detail below, is operable to access generic capabilii
`ties associated with an external shape and delegate the
`production ofa graphical image of the external shape to the
`capabilities associated with the shape. The production of at
`graphical image may comprise. for example. generating data
`that may be used by the computer graphics application 122
`to place a graphical image on an output device, generating-
`data and placing a graphical
`image. on an output device.
`writing a representation of a graphical image to memory. or
`the generation of other forms of:reprt-.sent:u ions of graphical
`images. Capabilities are actlonmethods, symbol methods, or
`any other functions that allow the generation of infonrtation
`required to produce a graphical image. Exemplary action
`methods and symbol methods are discussed below. The
`ability to place the capahilitiesiof a shape outside computer
`graphics application 122 provides several technical advan-
`tagcs. For example, shapes notcontemptated at the time of
`creation of computer graphir5‘app|ical,:ion 132 may ‘be
`subsequently arlded to computer graphics systefrrt 120 wit_h_-
`out modifying computer graphics applic'a'tiop'
`.12-2':
`Additionally. shapes may be developed‘ by -third ip_a:mj'cs.
`addressing particular markets. Furthermore, bedause’-shapes
`may be developed external to Ihecomputer graphics appli-
`cation l22, thtty may _bc developed outside the application
`project schedule. In addition.
`invention provides for the
`rn_odula_r productlonof addil
`rt_al shapes. Shapes may be
`gIUuped_i_n diEl't_:rent modules __sed on similarity of appear-'.
`ance or other characteristics.- such as intended use. For
`example, shapes commonly used in a particular technical
`field may be grouped in one module. The invcntion also
`provides an architecture that allows for the integration of
`additional shapes with an existing computer program with-
`out modifying that existing program.
`The shape library 124! composes a plurality of shape
`collection modules 212 and 214. In a particular embodiment.
`shape collection modules 212-and 214 comprise a dynamic
`link library (DLL) that allows executable routines to be
`stored separately as films with DLL cxlcnsiors and to be’
`loaded only when rtocdcd by- the program that calls them. In
`that embodiment, shapccotlection DLLs 2'12 and 214' art:
`self-registering DLLS. which means they comprise two
`functions to register and unregister themselves through a
`system registry database for recognition by the cornputer
`graphitx application 122. However, Lhc_prcst:nt invention
`contemplates any suitable" software afrchitecture‘ using
`dynamic link libraries, plug-ins. cxtcnsions.
`Iln
`alization
`tiles, or other modular arrangement that=allows ‘shajpe ‘clot:
`lection modules 212 and 214 to be stoicdil-cxlc'rn'al {Id
`computer graphics application 122.
`'
`-'
`'-
`'
`'
`‘
`
`4
`Shape collection modules 212 and 21-1 may bc loaded into
`memory 118 from dislr drivcs12EI when needed by computer
`graphics application 122. In one embodiment, shape collec-
`tion modulcs 212 and 214 are loaded into memory I18 when
`computer graphics application 122 is executed. E-ecause
`shape collection modules 212 and 214 are separate from
`computer graphics application 122. additions or improve-
`ments may be made to shape collection modules 212 and
`114 without aficcting the operation of computer graphics
`application 122. Although two shape collect ton modules 212
`and 214-_arc explicitly Qtown, the computer graphics appli-
`cation 122 supports any? number of shape collection mort-
`ttles. Shape collection library 124 may comprise,
`for
`example, shape collection modules delivered with computer
`graphics application 112, shape collection modules subse-
`quently provided, and shape oollcction modules developed
`by third panics. Shape collection modules in shape library
`124 may be organized in a variety of fort1'taLs, including a hat
`slrttctttre or
`rt hierarchittl arrangcrncnt.
`In a hicrarchial
`arrangement, related shape collection modules may contain
`sub-modules. The criteria for grouping shape collection
`modules and sub-modules may comprise appearance. Field
`of application, or other suitable criteria for arranging col-
`lections of shapes. For example. shape collection module
`212 may contain various toms of arrow shapes. and shape
`‘collection module 214 may contain various shapes related to
`digital electronic circuits.
`The shared library 130 may also be a DLL. However, the
`present invention contemplates any suitable software archi-
`tecture using dynamic link libraries, plug-ins,_c:ttct_1sions.
`initialization ftlcs, or other modular arrangement that allows
`utility Eunct ions to be stored etrtematly to computer graphics
`application 122 and shape library 121. Shared library 130
`may be loaded into memory 118 £rom disk drives 12.0 when
`needed by computer graphics application 122. Shared
`library 130 provides a group of utility functions that may be
`used by either computer graphics system 1.10 or shape
`library :24. Examples of these utility functions include. for
`exa mpte. drawing small markers on a computer screen. such
`as on output device 116. or drawing ll gradient blend.
`The Communication _Iinl( 126 allows communication
`between computer graphics application 122 and shape
`library 124. Communication link 1.26 may comprise. for
`example.
`the component object model 210 used by the
`Object Linking and Embedding (OLE) technology devel-
`oped by Microsoft. Communication linlr 126 may also
`comprise a simpledynamic link library application program
`interface. pipes. shared memories. or sockets as usedvto.a
`UNIX operating environment as well as other emerging
`object-oriented technologies, such as 0pcnDor:, Netttstep.
`and CDRBA. Communication link 126 allows communica-
`tion of complex objects between external modules 212 and
`214 and computer graphics application 123 without requir-
`ing knowtodge of the contents of the external modules 212
`and 214.
`FIG. 3A shows at schematic ot' computer graphics appli-
`cation 122 and its interaction with shape library 124 in block
`diagram t'on'n, further illustrating details of computer graph-
`ics apptication 122. The computer graphicsapplication 122
`comprises a plurality of internal shapes 310 and 310 and one -
`external shape J30.
`lntcrnal shapes 31D .and 320 each
`comprise information used by computer graphics applica-
`tion 122 to produce a ditfetent graphical image on output
`device 116. These images may comprise. for example. a
`circle or a rectangle. External shape tem plate 330 comprises
`pointers to shapes contained within shape library 124. which
`are used by oomputer graphics application 122 to produce
`graphical images that art: not supported by internal shapes
`310 hr 320.
`'
`
`-
`
`3D
`
`40
`'
`
`45
`
`SD
`
`SCI
`
`13
`
`13
`
`
`
`5
`Each internal shape 310. 32!] comprises a set of internal
`actions 312 and an internal symbol 314. Internal a_cti‘orI.-t 3.112
`comprise a set of internal action methods 313 and asetiot‘ 3
`internal action data 311, shown in FIG. 332- Internal ;a:§ll:0t‘t
`methods 313 are functions that operate on internal "action
`data 311 to generate an internal action 312..An internal
`action 312 allows computer gfaplilits application 122 to pass
`user interaction from input device 114, such as mouse and
`keyboard inputs, to internal symbol methods 31".‘. which in
`turn generate information used by computer graphics appli—,
`cation 122 to create, edit, render, modify, read. or write it
`graphical object. Examples of internal actions 312 comprise
`the create action and edit actions. The create action creates
`a representation ofgraphical image. for example a rectangle,
`that the computer graphics application 122 places on an
`output device. An edit action allows editing a graphical
`image. Both the create action and the edit action may
`comprise clicking on an external shape button or a menu
`item on a graphical user interface.
`lntemal symbol 314 comprises a set of internal symbol
`methods 31? and a set of internal symbol data 315. as shown
`in FIG. 3C. The internal symbol methods 31'?‘ are functions
`that operate on internal symbot data 315 to generate infor-
`mation used by computer graphics application 122 to create,
`edit, render. modify. read. or write it graphical object on
`output device 116. For example.
`internal symbol methods
`31'! may rotate a representation of a rectangle and the
`computer graphics application 122 may place a rotated
`rectangle on a computer screen based on-,th.e representation
`of the rotated rectangle produced by ttt_e._inte;nal ,_sy_n1_lgo1
`rnctho-rls3l'l'.
`._
`_-
`'
`.-'<:,'.--ii]
`FIG. 3A also illustralettshape library 12-ll-l T.l'tt_§-_§l'Iti__'pc
`library 124 comprises a plurality of shape collection "mod-'
`ules 212 and 214. Each shape=collection module 212, 214
`comprises a plurality of external shapes, such as external
`shapes 350, 360, and 310. Shape collection rnoduIcs212 and
`214 may he organized such ‘th'at'similar shapes are contained
`within the same shape collection module. Exten-ial shape
`350 comprises a plurality of cxlt-'.rt_1_al actions 352, 353, an
`external symbol 354. and ex'te'rnaI,resources 356. External
`resources 356 provide additional infonnation used by com-
`puter graphics application 122 t_o generate graphical images.
`for example, information related to hit mapped images.
`The cxtcrnal shape template 330 does not comprise a
`predetermined set of actions__. and a symbol. Rather.
`in
`response to information from device 114. external shape
`template 330 aoccsses an external shape contained within
`shape library 124, such as extcmal shape 350 or 360. to
`utilize the capabilities of the external shape. The external
`shape template 330 comprises‘ an external action template
`332 and an external symbol- template 334. The cxlcmal
`action template 332 accesses an external action. such as
`external actions 352 and 362'. and the external syrrtbol
`template 334 accesses an external symbol, such as external
`symbols 354 antl 366.
`'
`'
`In FIG. 3A, external shape template 330 is assi:xciat'ed with
`_ two shapes 350 and 36!] in shaptvlihrary 124. Fnfrfshape 1.50,
`external action template 332 points to extemat ’action"352 -'
`and external symbol template 334 points to bxiernal hyttttiol
`35-I. For shape 350. external action template 3S§‘.'p'oirtts to
`external action 362 and external symbol templa1e"33-1 points
`to external symbol 366. In F1Gf3A. shape template 3.3!] does
`not point to shape 370. P0iI1tin'g'to shapes 351] and 36!! and
`not pointing to shape 31-'0 by_'external shape template 33!)
`corresponds to the conditionicf displaying two external
`shapes 350 and 36!} contained within shape library l2«1 on
`output device ‘I16 and riot displaying a third cxlcmal shape
`378.‘
`
`40
`
`45
`
`50
`
`65
`
`5,959,633
`
`15
`
`25
`
`6
`*3 shows a schematic of an external action 352.
`FIG.
`associated with "external shape 350. Extcmal action 352
`comprises external action data 51!) and external action
`methods 512. External action methods 51.2 are fitnclions that
`work together to operate on external action data Sill to
`create an external action. An external action, such as exter-
`nal action 352. allows computer graphics application 122 to
`pass user interaction from input device 114, such as mouse
`and keyboard inputs. to external symbol mcthodsfilz, which
`as discussed below are functions that operate to create. edit,
`tender. modify. read. or write a graphical object on output
`device 115. Examples of cxtemal action 364 comprise the
`create action and‘ edit actions. The create action creates a
`graphical imagc,_Eor example a star. Art edit action allows
`editing rt graphical image. for example editing a star. A user
`may invoke the create star extemal action. for example. by
`clicking on a star button in a graphical user interface. The
`star button may provide a menu with a variety of types of
`Slllfi.
`External action methods 512 comprise generic action
`methods 518. Generic action methods 518 comprise generic
`functions that art: operable in combination to receive user
`interaction're'ceived by the computer graphics application
`122 from input device 114 for manipulation of shapes that
`are not contained within computer graphics application 122
`and that comprise a configuration unknown to computer
`graphics application 122. The generic action methods 518
`are defined generically in such a way that
`they may he
`applied to any type of shape. Unlike conventional systems,
`they are not specific to any one shape. The computer
`graphics application I22. is written to be operable to access
`the generic access methods 518 and the generic action
`methods 518 are exhaustive such that any action that may be
`associated with any shape can be represented by the generic
`access methods 518. Thus. the generic action methods 518
`are generic enough to allow for the subsequent creation of
`new actions through the use of generic action rnethods_S18.
`'l1ie use of genetic action methods 518 and. as discussed
`below, generic symbol methods 618 allows external shapes
`to he used by computer graphir: application 122.
`__
`One of the generic action methods 518 comprises an
`initialization method, Ci-Kclionlnit method. The Ciihclionlnit
`method allows an external shape to communicate with the
`computer graphics application 122. After execution of an
`external action. data or events are communicated by the
`external action through a callback function provided in the
`initialization ofthe action. The callback function isprovided
`in the initialization-of an action by a pointer within the
`C'.At‘Ii.Dninit method. -Data transfers that may be communi-
`cated by an external shape to the computer graphics appli-
`cation 122 through the use ofa callback function provided
`in the initialization of an action comprise the transfer of an
`external symbol to the computer graphics application for
`insertion into a current drawing. querying a disk path to a
`CD-ROM for retrieving a file from the CD-ROM, passing
`data for “undoii-lg" an operation. retrieving the area of it
`current page Selection, or other types of data transfers.
`Events that may be communicated by an external shape to
`the computer graphics application 122 through the use of a
`callback function provided in the initialization of an action
`comprise notifying the application to display or not
`to
`display selection markers. notifying the computer graphics
`application 122 that the extemat symbol has been changed.
`invalidating the area of the external symbol_l'or reprinting, or
`other events that may need to be communicated to the
`computer graphics application hy.an cxtcrnal action.
`External action 352 is at quci"yable inte‘rfa'ce. ‘A queryable
`interface may receive.rs_q_;ests for 'cornmtrnicatio'n.in.diEer-
`
`14
`
`
`
` ijzs.-.2
`
`59,633
`
`I
`
`'-I
`
`8
`Referring now to FIGS. 1 through I5 of the drawings. the
`operation oi one embodiment of the invention will be
`described. if a user desires to create an arrow on a computer
`screen. he makes an appropriate demand through input
`device 114. Such a demand may comprise, for exatnplc.
`clicking on a button in a graphical user interface with a
`mouse on a panicuiar area of a oomputer screen to select-a
`menu item. In response to a request from input device 114.
`computer graphics application 122 dcterrnines whcthcr the
`desired graphical image is an external shape or an intemal
`shape. If it is an exlemsl shape, external shape template 330
`accesses external actions and an external symbol from a
`shape in shape library 124 that is associated with the desired
`external shape. The execution oflhe external actions and the
`external symbol may draw an arrow on output device 116.
`Because the external actions comprise generic: action meth-
`ods 513 and the external symbol comprises generic symbol
`methods 615. the computer graphics application 122, which
`is operable to aocess_a nd use generic action methods 518 and
`generic symbol methods 618. is able to produce a graphic
`image based on an external shape, even if the external shape
`was produced subsequent to the generation of computer
`graphics application 122.
`Tl'lcrel'olt'.. the invention provides a systcrri for the pro-
`duclion of graphical images that allows shapes to be stored
`outside the computer program using the shapes. New shapes
`may be added to the system without incurring the disadvan-
`tages associated with revising the computer program.
`Furthcnnore. because the invention provides a program
`operable to receive a robust set of generic action methods
`518 and a robust set of generic symbol methods 618 from
`external shapes in shape library 124, the inve.rttion_ allows for
`the addition of shapes with capabilities not contemplated at
`the time the computer program was written. Thus. Ltnlilrc
`conventiortal systems. the invent_i'on E not limited to utiliz-
`ing exlernal shapes that-have piedetcrmincd capabilities!"
`Although the invention has been particularly shown and
`described by the foregoing detailed "description. it will be .
`ttrtdersto-od by those skilled in the an that various other
`changes in form and detail may be made without departing
`from the spirit and scope of the invention.
`-What is claimed is‘
`l. A computerized system comprising:
`a storage medium;
`'
`a processor coupled to the storage medium;
`the
`a computer program stored in the storage medium,
`computer program operable to run on the processor. the
`computer program further operable to:
`access an external shape stored outside the computer
`program.
`the external shape comprising external
`capabilities; and
`image of the
`delegate the production of a graphical
`external shape to‘ the external capabilities.
`I. The computerized system of claim 1. wherein the
`computer program is further operable to:
`access an external shape stored outside the computer
`program.
`the external shape comprising an external
`action and an external symbol‘. and
`delegate Ihe production of graphical image of the c