On Tue, Jun 23, 2015 at 7:33 AM, Michael Gallagher <[email protected]
> wrote:

> Thank you very much for getting back to me. I had a quick glance over the
> ScaledBitmap class, and I think I have a grasp on what might need to
> happen. I'll be able to dig back into this next week most likely, and I'm
> sure I'll have more questions.
>

Sounds good -- feel free to send question, and also be sure to let us know
once you get it all figured out!

-Chris



> Mike
>
> On Mon, Jun 22, 2015 at 2:11 PM, Chris Barker <[email protected]>
> wrote:
>
>> By the way,
>>
>> If you do add rotation to bitmaps, I'll probably want to add it to FC as
>> a regular feature. So let me know how it works out.
>>
>> -CHB
>>
>>
>> On Mon, Jun 22, 2015 at 12:03 PM, Chris Barker <[email protected]>
>> wrote:
>>
>>> Note: I've cc-d this to the floatcanvas mailing list:
>>>
>>> http://mail.paulmcnett.com/cgi-bin/mailman/listinfo/floatcanvas
>>>
>>> please keep the conversation there, so it will get archived.
>>>
>>> It is a VERY low traffic list!
>>>
>>>
>>> Hi Michael,
>>>
>>> Glad you're finding FC useful!
>>>
>>> I'm currently a CS student for Utah State University and I'm working
>>>> with the Utah Water Research Lab on this project
>>>> <https://github.com/Castronova/EMIT>, where we're using wxPython and
>>>> your wonderful project, FloatCanvas. I'm not a hydrologist, and I'm fairly
>>>> new on this project so I'm not quite sure what our project is entirely for.
>>>> Needless to say though, it's going to help the University's research.
>>>>
>>>
>>> at a glance it does look pretty cool.
>>>
>>>
>>>> One of the things I've been assigned is to improve the UI a bit. Here's
>>>> our FloatCanvas part of the application:
>>>>
>>>> [image: Inline image 1]
>>>>
>>>> Unfortunately the way this spline is being drawn (the folks who wrote
>>>> this didn't realize that there was an existing spline object in
>>>> floatcanvas) is very inefficient.
>>>>
>>>
>>> at a glance, I saw a bunch of code for drawing the arrow -- did you look
>>> at the code for the Arrow and ArrowLIne objects?
>>>
>>> but it looks like you may want to use a bitmap for the arrow anyway --
>>> it does let you make it prettier.
>>>
>>>
>>>
>>>> When these boxes are dragged around, we get major frame-rate drops.
>>>> Luckily I've been able to begin the work on sorting this out to improve
>>>> dragging-and-dropping, and one of the things I'm struggling with is knowing
>>>> what to do about rotating a bitmap. I have this icon here:
>>>>
>>>> [image: Inline image 2]
>>>>
>>>> I would like this PNG to replace the arrow you see above in the main
>>>> screenshot. However, this requires us to rotate the bitmap as these boxes
>>>> are dragged around.
>>>>
>>> Currently I don't think there's a way to do this in FloatCanvas.
>>>>
>>>
>>> nope -- I only supported axis-aligned bitmaps so far.
>>>
>>> The best solution I can come up with for now is to remove, and rotate
>>>> the icon as a wxImage, and then re-add it on each frame draw. I'm not sure
>>>> this is the best way of doing it though, and I thought I'd reach out to you
>>>> and get your opinion on the matter.
>>>>
>>>
>>> yeah, you should be able to do better.
>>>
>>> You probably don't want the arrow to change size as you zoom, so you are
>>> likely using a Bitmap object.
>>>
>>> But take a look at the ScaledBitmap object code to get an idea:
>>>
>>> it stores a wx.Image object.
>>>
>>> In the _Draw method, it scales the Image, then draws it.
>>>
>>> Note that it caches the scaled version, so that it doesn't need to
>>> re-scale unless the size changes.
>>>
>>> So: I'd subclass, or simply copy the Bitmap object, and add an attribute
>>> for rotation angle, then write a _Draw method that does the rotation on the
>>> fly, similarly to how the ScaledImage object does the re-scaling.
>>>
>>> That should be pretty fast, and if you cache the rotated bitmap, then it
>>> will be blazingly fast when the angle hasn't changed.
>>>
>>> Also -- once you'
>>> ve got that working, I'd either:
>>>
>>> Make a Group object that puts teh line and the arrow together.
>>>
>>> or
>>>
>>> make Custom DrawObject that draws both the line and the arrow.
>>>
>>> I always intended it to be easy to write your own DrawObjects -- but
>>> never documented it very well...
>>>
>>> Do take a look at:
>>>
>>> http://trac.paulmcnett.com/floatcanvas
>>>
>>> if you haven't already -- there are a few examples there.
>>>
>>> And I hope you've found the examples in the demos dir in teh source:
>>>
>>> http://svn.wxwidgets.org/viewvc/wx/wxPython/3rdParty/FloatCanvas/Demos/
>>>
>>> There is a lot there!
>>>
>>> -Chris
>>>
>>>
>>>
>>>
>>>
>>>
>>> --
>>>
>>> Christopher Barker, Ph.D.
>>> Oceanographer
>>>
>>> Emergency Response Division
>>> NOAA/NOS/OR&R            (206) 526-6959   voice
>>> 7600 Sand Point Way NE   (206) 526-6329   fax
>>> Seattle, WA  98115       (206) 526-6317   main reception
>>>
>>> [email protected]
>>>
>>
>>
>>
>> --
>>
>> Christopher Barker, Ph.D.
>> Oceanographer
>>
>> Emergency Response Division
>> NOAA/NOS/OR&R            (206) 526-6959   voice
>> 7600 Sand Point Way NE   (206) 526-6329   fax
>> Seattle, WA  98115       (206) 526-6317   main reception
>>
>> [email protected]
>>
>
>


-- 

Christopher Barker, Ph.D.
Oceanographer

Emergency Response Division
NOAA/NOS/OR&R            (206) 526-6959   voice
7600 Sand Point Way NE   (206) 526-6329   fax
Seattle, WA  98115       (206) 526-6317   main reception

[email protected]
_______________________________________________
FloatCanvas mailing list
[email protected]
http://mailman.paulmcnett.com/cgi-bin/mailman/listinfo/floatcanvas

Reply via email to