Hi Tilman,
I'll look in to the PDF spec related to Function Type thanks for the that.

Thanks for the tips on the proposal

I uploaded my proposal to the melange

here is the url
https://www.google-melange.com/gsoc/proposal/review/student/google/gsoc2014/thimal/5649050225344512

I have suggested new method simple method to find patch of given point and
according to pdf spec type 6 can take as special case of type 7. so given
12 points we can calculate other 4 values and use same implementation to
type 6.

I would be glad if you can give feed back on my proposal.


On Wed, Mar 12, 2014 at 11:42 PM, Tilman Hausherr <[email protected]>wrote:

> Hello,
>
> The function is something used mostly by shading types 1, 2 and 3. It uses
> as input either the coordinates, or the result of a formula based on them.
> Enter "FunctionType" in the PDF spec.
>
> Re: the proposal, no I don't have a sample. I don't even know how the
> google format looks like. What I'd expect to see is your background, what
> you are studying, what are you mostly focused on in these studies, what are
> your skills / experiences, and why do you think you're "the one" for this
> project. And maybe a few lines how you're going to crack the two core
> problems (1. point inside/outside, 2. color). If you don't know, then maybe
> a few lines explaining what you will want to learn to know it.
>
> Tilman
>
>
>
> Am 12.03.2014 14:39, schrieb Thimal Kempitiya:
>
>  Hi Tilman,
>>
>>   Thanks for the feedback. What you mean by the function calculations is
>> it
>> function evaluation method can you please give more information on it.
>>
>> About the proposal what advise can you give, is there specific way that
>> pdfbox expect apart form the gsoc format and is there any sample proposal
>> that we can get idea about writing proposal.
>>
>>
>> On Sun, Mar 9, 2014 at 8:42 PM, Tilman Hausherr <[email protected]
>> >wrote:
>>
>>  Hello,
>>>
>>> Yes this is an interesting idea. It would save the recalculation of "y1y0
>>> * (y + j - coords[1])" everytime. (Unless the java compiler detects this
>>> already)
>>> But don't expect too much from it - I believe more time is lost in
>>> function calculation (at least for types 1, 2 and 3 where functions are
>>> mandatory).
>>>
>>> Tilman
>>>
>>>
>>> Am 09.03.2014 15:12, schrieb Thimal Kempitiya:
>>>
>>>   Thanks Tilman
>>>
>>>> for optimization  in speed I think we need to facus on methods which use
>>>> again and again like getRaster
>>>>
>>>> for the axial shading part current implementation in the getRaster
>>>> method
>>>> we calculate the x' value for the raster inside the for by for loop
>>>>
>>>>    for (int j = 0; j < h; j++)
>>>>           {
>>>>               for (int i = 0; i < w; i++)
>>>>               {
>>>>                   useBackground = false;
>>>>                   double inputValue = x1x0 * (x + i - coords[0]);
>>>>                   inputValue += y1y0 * (y + j - coords[1]);
>>>>
>>>> but all the time changing happen in the i and j values and they vary
>>>> from
>>>> 0<j<h and 0<i<w
>>>> so the contribution form i and j values can be calculation in separate 2
>>>> for loops which run from 0 to h and 0 to w and calculate these values
>>>> separately and put them in 2 arrays and when we need to evaluate we can
>>>> add
>>>> to the input value
>>>>
>>>> this will reduce the calculations inside the for by for loop and put
>>>> them
>>>> inside a 2 for loops this may be speed up the axial shading
>>>>
>>>> what you think about it
>>>>
>>>>
>>>> On Fri, Mar 7, 2014 at 11:44 PM, Tilman Hausherr <[email protected]
>>>>
>>>>> wrote:
>>>>>
>>>>   Am 07.03.2014 15:03, schrieb Thimal Kempitiya:
>>>>
>>>>>    Thanks Tilman for the feedback
>>>>>
>>>>>  http://www.particleincell.com/blog/2012/quad-interpolation/ seems
>>>>>> like
>>>>>> opposite of what we are going need to check whether its work with this
>>>>>> by
>>>>>> implementing it (but can easily implement if we used library with
>>>>>> matrix
>>>>>> manipulations)
>>>>>>
>>>>>>   This is really up to you :-)  Re: the pure math parts, its rather me
>>>>>>
>>>>> who
>>>>> is learning something.
>>>>>
>>>>> Re: library, you can use the java standard library, or any library with
>>>>> Apache license or compatible license.
>>>>>
>>>>>
>>>>>
>>>>>   can I know more about the optional part in the issue
>>>>>
>>>>>> "Optional:
>>>>>> Review and optimize the complete shading package; implement cubic
>>>>>> spline
>>>>>> interpolation for type 0 (sampled) functions."
>>>>>>
>>>>>> where I can get more information about the cubic spline interpolation
>>>>>> for
>>>>>> type 0 (sampled) functions and in what aspects do you expect the
>>>>>> optimization.
>>>>>>
>>>>>>   Optimization for speed. Especially the axial shading. It gets slow
>>>>>> when
>>>>>>
>>>>> the shaded area is very large.
>>>>>
>>>>> The cubic spline interpolation is mentioned in the PDF spec at the
>>>>> type 0
>>>>> (sampled) functions, it is the part where order = 3. In the PDF spec,
>>>>> search for it, or for "Additional entries specific to a type 0 function
>>>>> dictionary". Its really just a "nice to have" and of low priority.
>>>>> There's
>>>>> a note from adobe telling that it is not done for printing.
>>>>>
>>>>> Tilman
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>  On Tue, Mar 4, 2014 at 10:13 PM, Tilman Hausherr <
>>>>>> [email protected]
>>>>>>
>>>>>>  wrote:
>>>>>>>
>>>>>>>     Am 04.03.2014 15:19, schrieb Thimal Kempitiya:
>>>>>>
>>>>>>      Hi,
>>>>>>>
>>>>>>>   I checked the code related to the shading and studied the pdf spec
>>>>>>>
>>>>>>>> related
>>>>>>>> to the type 6. As I see it is going same as the type 4
>>>>>>>>     From what I feel this is need to be done correct me if I'm wrong
>>>>>>>> first need to get the 12 control points and colors related to each
>>>>>>>> unit
>>>>>>>> from stream
>>>>>>>>
>>>>>>>>    Yes
>>>>>>>>
>>>>>>>>      create the 4 cubic Bézier curves which are boundaries of each
>>>>>>> patch
>>>>>>> (
>>>>>>> to
>>>>>>>
>>>>>>>   find a Bézier curve it need 4 control points, two points are part
>>>>>>> of
>>>>>>>
>>>>>>>> the
>>>>>>>> curve )
>>>>>>>>
>>>>>>>>    Yes, although they are not painted as a curve, the curve is part
>>>>>>>> of
>>>>>>>> a
>>>>>>>>
>>>>>>>>  formula to find out whether a point is inside or outside the patch.
>>>>>>>
>>>>>>>     given point need to find the point which patch (I think this can
>>>>>>> be
>>>>>>>
>>>>>>>   done[1]<http://en.wikipedia.org/wiki/Plane_%28geometry%29>but need
>>>>>>>
>>>>>>>> research on that)
>>>>>>>> find the color of the point using bi linear interpolation
>>>>>>>>
>>>>>>>>    Probably. Although I'm not sure if the bilinear interpolation is
>>>>>>>> the
>>>>>>>>
>>>>>>>>  same
>>>>>>> as used for a rectangle.
>>>>>>> http://www.particleincell.com/blog/2012/quad-interpolation/
>>>>>>> I also don't know if the curves needs to be taken into account.
>>>>>>>
>>>>>>>
>>>>>>>     This has the same structure as the other shading types but need
>>>>>>> to
>>>>>>>
>>>>>>>   structure to keep Bézier curves and patches
>>>>>>>
>>>>>>>> and patches are connected as in the type4
>>>>>>>>
>>>>>>>>    Yes, the data structure is similar. You can use existing code
>>>>>>>> and do
>>>>>>>>
>>>>>>>>  lot
>>>>>>> of copy & paste there, although there is some rearrangement needed as
>>>>>>> there
>>>>>>> are more points.
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>    I have to study the type 7 but I think its similar to this
>>>>>>>
>>>>>>>     According to the spec, type 6 is a special case of type 7. I
>>>>>>>> cannot
>>>>>>>>
>>>>>>>>  tell
>>>>>>> whether it is enough to implement type 7 only and derive type 6 from
>>>>>>> it,
>>>>>>> i.e. I don't know if the performance would be worse.
>>>>>>>
>>>>>>> Tilman
>>>>>>>
>>>>>>>
>>>>>>>    please give feedback on my approach
>>>>>>>
>>>>>>>  [1]http://en.wikipedia.org/wiki/Plane_%28geometry%29<http
>>>>>>>> ://en.wikipedia.org/wiki/Plane_%28geometry%29>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> On Sun, Mar 2, 2014 at 11:18 AM, Thimal Kempitiya <
>>>>>>>> [email protected]
>>>>>>>>
>>>>>>>>   wrote:
>>>>>>>>
>>>>>>>>>      yeah I'm using  trunk code(2.0) and I wanted to render the
>>>>>>>>> image
>>>>>>>>>
>>>>>>>> got
>>>>>>>> it,
>>>>>>>>
>>>>>>>>   thanks. I'm currently studying the 1 to 5 shading implementations
>>>>>>>> and
>>>>>>>>
>>>>>>>>> the
>>>>>>>>> pdf spec related to 6 and 7 type shading and i'll buzz you if i got
>>>>>>>>> issue.
>>>>>>>>> Once again thanks for quick reply
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> On Sat, Mar 1, 2014 at 2:38 AM, John Hewson <[email protected]>
>>>>>>>>> wrote:
>>>>>>>>>
>>>>>>>>>     You'll need to use the latest 2.0.0 snapshot jar, which is the
>>>>>>>>> unstable
>>>>>>>>>
>>>>>>>>>   version from trunk
>>>>>>>>>
>>>>>>>>>> and the place where new development occurs.
>>>>>>>>>>
>>>>>>>>>> -- John
>>>>>>>>>>
>>>>>>>>>> On 28 Feb 2014, at 05:04, Thimal Kempitiya <[email protected]>
>>>>>>>>>> wrote:
>>>>>>>>>>
>>>>>>>>>>     Hi,
>>>>>>>>>>
>>>>>>>>>>   I'm Thimal Kempitiya, third year computer science and
>>>>>>>>>> engineering
>>>>>>>>>>
>>>>>>>>>>> undergraduate at university of moratuwa. I'm interested in the
>>>>>>>>>>> project
>>>>>>>>>>>
>>>>>>>>>>>    idea
>>>>>>>>>>>
>>>>>>>>>>>     "implement shading with Coons and tensor-product patch
>>>>>>>>>> meshes". I
>>>>>>>>>>
>>>>>>>>>>  have
>>>>>>>>>>>
>>>>>>>>>>>    the
>>>>>>>>>>>
>>>>>>>>>>>     basic knowledge about the cubic Bézier curves", , "bilinear
>>>>>>>>>>
>>>>>>>>>>     interpolation",
>>>>>>>>>>>
>>>>>>>>>>>     " and "Bernstein polynomials and i think can manage rest of
>>>>>>>>>> the
>>>>>>>>>>
>>>>>>>>>>     mathematics
>>>>>>>>>>>
>>>>>>>>>>>     needed for this project. Also I have the java knowledge to
>>>>>>>>>> do the
>>>>>>>>>>
>>>>>>>>>>  implementation part.
>>>>>>>>>>>
>>>>>>>>>>> I clone the PDFBOX repository and checked the code regarding to
>>>>>>>>>>> the
>>>>>>>>>>>
>>>>>>>>>>>    shading
>>>>>>>>>>>
>>>>>>>>>>>     and I tried some examples in pdfbox cook book.
>>>>>>>>>>
>>>>>>>>>>  Also I tried code to work with the type 1 shading type.
>>>>>>>>>>>
>>>>>>>>>>>            File f=new File("C:\\asy-latticeshading.pdf");
>>>>>>>>>>>            try {
>>>>>>>>>>>                PDDocument doc=PDDocument.load(f);
>>>>>>>>>>>                   PDPage p;
>>>>>>>>>>>              p=(PDPage)doc.getDocumentCatalog().
>>>>>>>>>>> getAllPages().get(0);
>>>>>>>>>>>              PDShadingType1 pdst1=new PDShadingType1(p.
>>>>>>>>>>> getCOSDictionary());
>>>>>>>>>>>              PDRectangle pdr=p.findCropBox();
>>>>>>>>>>>              PDGraphicsState pdg=new PDGraphicsState(pdr);
>>>>>>>>>>>              Matrix m=pdg.getCurrentTransformationMatrix();
>>>>>>>>>>>              Type1ShadingPaint t1sp=new Type1ShadingPaint(pdst1,
>>>>>>>>>>> m,
>>>>>>>>>>> (int)p.findCropBox().getHeight());
>>>>>>>>>>>
>>>>>>>>>>> But this give me error saying unknown shading type 0
>>>>>>>>>>> java.io.IOException: Error: Unknown shading type 0
>>>>>>>>>>>
>>>>>>>>>>> can you please tell me what I'm doing wrong here and how can i
>>>>>>>>>>> solve
>>>>>>>>>>>
>>>>>>>>>>>    this.
>>>>>>>>>>>
>>>>>>>>>>>     --
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> *Thimal Kempitiya <http://www.facebook.com/thimalk>
>>>>>>>>>>>
>>>>>>>>>>>    UndergraduateDepartment
>>>>>>>>>>>
>>>>>>>>>>>     of Computer Science and Engineering University of Moratuwa.*
>>>>>>>>>>
>>>>>>>>>>      --
>>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>
>>>>>>>>> *Thimal Kempitiya <http://www.facebook.com/thimalk>
>>>>>>>>> UndergraduateDepartment of Computer Science and Engineering
>>>>>>>>> University
>>>>>>>>> of
>>>>>>>>> Moratuwa.*
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>
>


-- 




*Thimal Kempitiya <http://www.facebook.com/thimalk> UndergraduateDepartment
of Computer Science and Engineering University of Moratuwa.*

Reply via email to