F>'      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijk l m n o p q r s t u v w x y z { | } ~  GHC 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>None*+normal rendering data struture for hoodle ! container for page is IntMap  page is RPage +*normal rendering data structure for page @ background is RBackground and container for layer is IntMap  and layer is RLayer ,;normal rendering data structure for layer, R for rendering 1 buffer is Surface, container for item = list % and StrokeBBox as contained items 0'project to simple Layer out of RLayer 1$project to simple Page out of RPage 2)project to simple Hoodle out of RHoodle "#$%&'()*+,-./012"#$%&'()*+,-./012-.,+*/012'()%&"#$ "#$%&'()*+,-./012GHC experimental!Ian-Woo Kim <ianwookim@gmail.com>None34343434GHC experimental!Ian-Woo Kim <ianwookim@gmail.com>None56789:;<=>?@ABCDEFGHI56789:;<=>?@ABCDEFGHIACB>?@;<=:9DEFG8567HI 56789:;<=>?@ACBDEFGHIGHC experimental!Ian-Woo Kim <ianwookim@gmail.com>NoneJ&hit test of whether a point in a bbox ! previously, hitTestBBoxPoint K(hit test of whether two lines intersect Lpreviously, hitTestLineStroke M1Do two bounding boxes intersect with each other?  previously, hitTestBBoxBBox N*is the second bbox inside the first bbox? ! previously, hitTestInsideBBox P,highlight strokes filtered by a condition.  previously mkHitTestAL S2only check if a line and bbox of item overlapped Jpoint Kline1 line2 LMN 1st bbox  2nd bbox Ohit test condition strokes to test Phit test condition strokes to test Qtest bounding box items to test RSline items to test TUVWXJKLMNOPQRSTUVWXJKLMNOPQRSTUVWXJKLMNOPQRSTUVWXGHC experimental!Ian-Woo Kim <ianwookim@gmail.com>NoneYZ[\]^_`abcdefghYZ[\]^_`abcdefghcba]^_`\[deZYfgh YZ[\]^_`abcdefghGHC experimental!Ian-Woo Kim <ianwookim@gmail.com>NoneC  !"#$%&'()*+,-./012YZ[\]^_`abcdefghGHC experimental!Ian-Woo Kim <ianwookim@gmail.com>Noneijijijij GHC experimental!Ian-Woo Kim <ianwookim@gmail.com>Nonelrender items highlighted klklklkl GHC experimental!Ian-Woo Kim <ianwookim@gmail.com>Nonemconstruct renderable item n7get embedded png image. If not, just give me nothing. o>read JPG file using GD library and create cairo image surface L currently, this uses temporary png file (which is potentially dangerous) mnopmnopmnopmnop GHC experimental!Ian-Woo Kim <ianwookim@gmail.com>Noneqdraw ruling all rdraw ruling in bbox qrqrqrqr GHC experimental!Ian-Woo Kim <ianwookim@gmail.com>None srender stroke t&render image : not fully implemented $render svg : not fully implemented u render item v*render background without any constraint xrender Background in BBox {background drawing in bbox |.render RLayer within BBox after hittest items }"Background rendering using buffer stuvwxyz{|}~stuvwxyz{|}~stvuwxyz|{}~stuvwxyz{|}~ 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  x}~ x}~GHC experimental!Ian-Woo Kim <ianwookim@gmail.com>Nonetemporary util   !"#$%&'()*+,-./01123344567899:;<=>?@@ABCDEEFGGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdeefghijklmnopq r s t u v w x y z { | } ~   hoodle-render-0.2.1&Graphics.Hoodle.Render.Type.Background Graphics.Hoodle.Render.Type.Item"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.TypeRBkgOptRBkgDrawPDFInBBoxRBkgDrawBuffer RBkgDrawWhite RBkgDrawPDF RBackgroundRBkgPDF rbkg_domain rbkg_filename rbkg_pagenorbkg_popplerpageRBkgSmpl rbkg_color rbkg_stylerbkg_cairosurfaceContext ctxt_domain ctxt_filenamectxt_doc isRBkgSmplrbkg2Bkgbkg2RBkgRItemRItemSVG RItemImage RItemStroke isStrkInRItem isImgInRItem isSVGInRItemfindStrkInRItemfindImgInRItemfindSVGInRItem rItem2Item 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 hPage2RPagemkHPagedrawStrokeCurvedrawVWStrokeCurverenderStrkHltdrenderRItemHltd cnstrctRItemgetByteStringIfEmbeddedPNGgetJPGandCreateSurfacesaveTempPNGToCreateSurface drawRulingdrawRuling_InBBox renderStrk renderImg renderItem renderBkg renderPagerenderBkg_InBBox renderRBkg renderRItemrenderRBkg_InBBoxrenderRLayer_InBBoxrenderRBkg_BufrenderRLayer_InBBoxBufupdateLayerBuf updatePageBufupdateHoodleBufcnstrctRHoodlecnstrctRPage_StateT cnstrctRLayercnstrctRBkg_StateTrenderRBkg_DummyrenderRBkg_NoPDFrenderStrkBBx_BBoxOnlyrenderImgBBx_BBoxOnlyrenderRItem_BBoxOnlyrenderRLayer_BBoxOnlyrenderRPage_BBoxOnlyStrokeBBoxOption DrawBoxOnlyDrawFullRenderOptionable RenderOptioncairoRenderOption Renderable cairoRenderpassargcairoOptionPage $fShowRItem$fBBoxableRItem renderSVGrenderSVGBBx_BBoxOnly$fRenderOptionableInBBoxBkgBuf$fRenderOptionableInBBox$fRenderOptionableGPage$fRenderOptionableInBBox0$fRenderOptionableGLayer$fRenderOptionable(,)$fRenderOptionableStrokeBBox$fRenderOptionableStroke$fRenderOptionable(,)0$fRenderableGLayer$fRenderableStrokeBBox$fRenderableStroke$fRenderable(,)