JSA       !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopq r s t u v w x y z { | } ~  GHC experimental!Ian-Woo Kim <ianwookim@gmail.com> Safe-InferredGHC experimental!Ian-Woo Kim <ianwookim@gmail.com>None         GHC experimental!Ian-Woo Kim <ianwookim@gmail.com>None !"#$%&'() !"#$%&'()"#$%&' !!!() !!!"#$%&'()GHC experimental!Ian-Woo Kim <ianwookim@gmail.com>None2+normal rendering data struture for hoodle ! container for page is IntMap  page is RPage 3*normal rendering data structure for page @ background is RBackground and container for layer is IntMap  and layer is RLayer 4;normal rendering data structure for layer, R for rendering 1 buffer is Surface, container for item = list % and StrokeBBox as contained items 8'project to simple Layer out of RLayer 9$project to simple Page out of RPage :)project to simple Hoodle out of RHoodle *+,-./0123456789:*+,-./0123456789:56432789:/01-.*+, *+,-./0123456789:GHC experimental!Ian-Woo Kim <ianwookim@gmail.com>None;<;<;<;<GHC experimental!Ian-Woo Kim <ianwookim@gmail.com>None=>?@ABCDEFGHIJKLMNOPQ=>?@ABCDEFGHIJKLMNOPQIKJFGHCDEBALMNO@=>?PQ =>?@ABCDEFGHIKJLMNOPQGHC experimental!Ian-Woo Kim <ianwookim@gmail.com>NoneR&hit test of whether a point in a bbox ! previously, hitTestBBoxPoint S(hit test of whether two lines intersect Tpreviously, hitTestLineStroke U1Do two bounding boxes intersect with each other?  previously, hitTestBBoxBBox V*is the second bbox inside the first bbox? ! previously, hitTestInsideBBox X,highlight strokes filtered by a condition.  previously mkHitTestAL [2only check if a line and bbox of item overlapped Rpoint Sline1 line2 TUV 1st bbox  2nd bbox Whit test condition strokes to test Xhit test condition strokes to test Ytest bounding box items to test Z[line items to test \]^_`RSTUVWXYZ[\]^_`RSTUVWXYZ[\]^_`RSTUVWXYZ[\]^_`GHC experimental!Ian-Woo Kim <ianwookim@gmail.com>Noneabcdefghijklmnopabcdefghijklmnopkjiefghdclmbanop abcdefghijklmnopGHC experimental!Ian-Woo Kim <ianwookim@gmail.com>NoneF  !"#$%&'()*+,-./0123456789:abcdefghijklmnop GHC experimental!Ian-Woo Kim <ianwookim@gmail.com>Noneqrqrqrqr GHC experimental!Ian-Woo Kim <ianwookim@gmail.com>Nonetrender items highlighted stustustustu GHC experimental!Ian-Woo Kim <ianwookim@gmail.com>Nonevconstruct renderable item w7get embedded png image. If not, just give me nothing. x>read JPG file using GD library and create cairo image surface L currently, this uses temporary png file (which is potentially dangerous) vwxyvwxyvwxyvwxy GHC experimental!Ian-Woo Kim <ianwookim@gmail.com>None~draw ruling all draw ruling in bbox *render background without any constraint !this has some bugs. need to fix z{|} page number ~z{|}~z{|}~z{|}~ GHC experimental!Ian-Woo Kim <ianwookim@gmail.com>Nonerender stroke &render image : not fully implemented  render svg  render svg  render item background drawing in bbox .render RLayer within BBox after hittest items "Background rendering using buffer GHC experimental!Ian-Woo Kim <ianwookim@gmail.com>Nonerender background without pdf /render only bounding box of a StrokeBBox /render only bounding box of a StrokeBBox GHC experimental!Ian-Woo Kim <ianwookim@gmail.com>Nonetemporary util   !"#$%&'()*+,-./01233456789::;<<==>?@ABBCDEFGHIIJKLMNNOPPQRSTUVWXYZ[\]^_`abcdefghijklmnnopqrstuvwx y z { | } ~   hoodle-render-0.3Hoodle.Util.Process Graphics.Hoodle.Render.Type.Item&Graphics.Hoodle.Render.Type.Background"Graphics.Hoodle.Render.Type.HoodleGraphics.Hoodle.Render.Util#Graphics.Hoodle.Render.Type.HitTest#Graphics.Hoodle.Render.Util.HitTest"Graphics.Hoodle.Render.Type.Select Graphics.Hoodle.Render.Primitive Graphics.Hoodle.Render.HighlightGraphics.Hoodle.Render.Item!Graphics.Hoodle.Render.BackgroundGraphics.Hoodle.RenderGraphics.Hoodle.Render.DebugGraphics.Hoodle.Render.GenericGraphics.Hoodle.Render.Type checkPipe mkTmpFileNameexistThenRemove pipeActionpipeActionWithRItem RItemLinkRItemSVG RItemImage RItemStroke isStrkInRItem isImgInRItem isSVGInRItem isLinkInRItemfindStrkInRItemfindImgInRItemfindSVGInRItem rItem2ItemRBkgOptRBkgDrawPDFInBBoxRBkgDrawBuffer RBkgDrawWhite RBkgDrawPDF RBackground RBkgEmbedPDFRBkgPDF rbkg_domain rbkg_filename rbkg_pagenorbkg_popplerpageRBkgSmpl rbkg_color rbkg_stylerbkg_cairosurfaceContext ctxt_domain ctxt_filenamectxt_docctxt_embeddeddoc isRBkgSmplrbkg2Bkg InBBoxBkgBufunInBBoxBkgBuf InBBoxOptionInBBoxunInBBoxRHoodleRPageRLayerLyBuf emptyRLayer rLayer2Layer rPage2PagerHoodle2HoodleclipBBox clearBBoxTEitherAlterHittedunTEitherAlterHitted TAlterHitted RItemHitted StrokeHittedHittedunHitted NotHitted unNotHitted AlterList:-EmptyfmapALgetAgetB interleave takeHitted isAnyHitted isPointInBBoxdo2LinesIntersectdoesLineHitStrkdo2BBoxIntersectisBBox2InBBox1hltFilteredBy_StateT hltFilteredByhltHittedByBBoxhltEmbeddedByBBoxhltHittedByLineRoughhltItmsHittedByLine_StateT%hltItmsHittedByLineFrmSelected_StateT elimHittedmerge getTotalBBoxHHoodleHPageHLayerHLayersHLayersFhlyrt_selectedLayerhlyrt_otherLayersBufOfItmOfSLayerF selectedLayer otherLayers hLayer2RLayer hPage2RPagemkHPagedrawStrokeCurvedrawVWStrokeCurverenderStrkHltdrenderRItemHltdrenderBBoxHltd cnstrctRItemgetByteStringIfEmbeddedPNGgetJPGandCreateSurfacesaveTempPNGToCreateSurfacepopplerGetDocFromFilegetByteStringIfEmbeddedPDFpopplerGetDocFromDataURIpopplerGetPageFromDoc drawRulingdrawRuling_InBBox renderBkgcnstrctRBkg_StateT renderStrk renderImg renderItem renderPage renderRBkg renderRItemrenderRBkg_InBBoxrenderRLayer_InBBoxrenderRBkg_BufrenderRLayer_InBBoxBufupdateLayerBuf updatePageBufupdateHoodleBufcnstrctRHoodlecnstrctRPage_StateT cnstrctRLayerrenderRBkg_DummyrenderRBkg_NoPDFrenderStrkBBx_BBoxOnlyrenderImgBBx_BBoxOnlyrenderRItem_BBoxOnlyrenderRLayer_BBoxOnlyrenderRPage_BBoxOnlyStrokeBBoxOption DrawBoxOnlyDrawFullRenderOptionable RenderOptioncairoRenderOption Renderable cairoRenderpassargcairoOptionPage $fShowRItem$fGetBBoxableRItem renderSVG renderLinkrenderSVGBBx_BBoxOnlyrenderLnkBBx_BBoxOnly$fRenderOptionableInBBoxBkgBuf$fRenderOptionableInBBox$fRenderOptionableGPage$fRenderOptionableInBBox0$fRenderOptionableGLayer$fRenderOptionable(,)$fRenderOptionableBBoxed$fRenderOptionableStroke$fRenderOptionable(,)0$fRenderableGLayer$fRenderableBBoxed$fRenderableStroke$fRenderable(,)