Regarding the serialization of Spiro control points
by Fred Brennan
Greetings,
I write from the FontForge project. Of particular interest to me is the Spiro
spline feature, which was originated around ten years ago by Raph Levien.
One thing I'd like to add, (which would benefit both our projects,) is the
ability of FontForge to understand the Inkscape Spiro serialization format.
However, there are several things about the format which to me as an outsider
appear to be defects serious enough that I have no idea how to even *import*
these splines correctly, much less export our Spiro splines to this format. I
would very much like to support the _de facto_ standard Inkscape has
originated of supporting Spiro in SVG, but I am lost.
George Williams, FontForge's original author, noticed this defect over eleven
years ago.[1] Things are virtually unchanged since then, I checked `git
blame`.
Spiro has five point types, not including beginning and ending points. They
are:
* G4 curve (o)
* G2 curve (c)
* Corner (v)
* Left Constraint ([)
* Right Constraint (])
The ASCII single letters are the normal method of Spiro serialization, as
championed by Raph Levien and by us in FontForge.
Inkscape seems to create what I will call a "pseudo-SVG path". So, it is not
really an SVG path, but rather is an SVG path which undergoes transformation
into the typical Spiro format. Inkscape stores this in the "original-d"
attribute.
So, given a Bezier spline with control points defined as (x, y, c1, c2),
Inkscape interprets a control point with only (x, y) to be a corner, meanwhile
a control point with all four is a G4 curve, and (x, y, c1, NULL) is a left
constraint while (x, y, NULL, c2) is a right constraint.
I can probably overcome this, although George Williams was right to be
skeptical of this format. There is no way I can see to define a G2 curve in
this strange "original-d" format.
Thus, this email. I write to ask a few things. I suppose first of all, what
are the chances that we can convince you guys to store Spiro splines in
plate[2] format, or another widely accepted Spiro serialization format?
Second, if we cannot convince you to do that, how do I export FontForge spiros
which contain G2 control points to Inkscape's original-d format? It's not
possible, yes? So should I just silently fail and save them as G4? The curves
will not be the same if I do that. Should I disallow export to SVG w/Spiro if
glyph contains G2 control point? That seems a steep cost that will just
confuse my users, so perhaps I should abandon the whole thing if it comes to
that.
Cordial regards,
Fredrick Brennan (@ctrlcctrlv)
[1]: https://narkive.com/63FADpG3.4
[2]: https://levien.com/garden/ppedit/README, section "Plate files"
1 year, 6 months
Dev meeting tomorrow !
by Marc Jeanmougin
Hi all !
Our next dev meeting will take place tomorrow (Sep 1st) at 5pm UTC (7PM
Europe)
--
Marc
3 years
Inkscape Developer Meeting: Tomorrow
by doctormo@gmail.com
Dear Developers,
Marc has accounted a developer meeting for tomorrow. It's a short 30
minute meeting where we can get together to talk about the previous 8
days of development and anything that has come up.
He's said that he preferences IRC the freenode chat channel #inkscape-
devel but the developer channel on https://chat.inkscape.org will also
be available and logging the meeting.
The meeting time will be 5PM CET (3PM UTC)
If you can't make this meeting, you can attend the next one which will
be August 24th, same ink place, same ink time!
Thanks everyone!
Best Regards, Martin Owens
3 years, 1 month
Error occured while compiling inkscape 1.0 from source
by Prakash Bhattarai
OS: Ubuntu 18.04
Command:
$ mkdir build && cd build
$ cmake -DWITH_DBUS=ON ..
$ make
The following error occurs when linking 'inkview':
[ 1%] Built target nrtype_LIB
[ 1%] Built target inkscape_dbus
[ 2%] Built target util_LIB
[ 6%] Built target 2geom_LIB
[ 7%] Built target uemf_LIB
[ 9%] Built target croco_LIB
[ 10%] Built target depixelize_LIB
[ 13%] Built target avoid_LIB
[ 14%] Built target cola_LIB
[ 15%] Built target vpsc_LIB
[ 16%] Built target autotrace_LIB
[ 16%] Built target gc_LIB
[ 18%] Built target livarot_LIB
[ 18%] Generating inkscape-version.cpp
revision is 4035a4fb49, 2020-05-01
[ 18%] Building CXX object
src/CMakeFiles/inkscape_base.dir/inkscape-version.cpp.o
[ 18%] Linking CXX shared library ../lib/libinkscape_base.so
[ 87%] Built target inkscape_base
[ 87%] Linking CXX executable ../bin/inkview
../lib/libinkscape_base.so: undefined reference to
`GfxResources::lookupXObjectNF(char*)'
../lib/libinkscape_base.so: undefined reference to `Dict::add(char*,
Object&&)'
../lib/libinkscape_base.so: undefined reference to `gmallocn'
../lib/libinkscape_base.so: undefined reference to
`GooString::GooString(char const*)'
../lib/libinkscape_base.so: undefined reference to
`GfxFunctionShading::getColor(double, double, GfxColor*)'
../lib/libinkscape_base.so: undefined reference to
`GfxResources::lookupShading(char*, OutputDev*, GfxState*)'
../lib/libinkscape_base.so: undefined reference to
`GfxResources::lookupFont(char*)'
../lib/libinkscape_base.so: undefined reference to
`GfxResources::lookupGState(char*)'
../lib/libinkscape_base.so: undefined reference to `copyString'
../lib/libinkscape_base.so: undefined reference to `Parser::getObj(bool,
unsigned char*, CryptAlgorithm, int, int
, int, int, bool)'
../lib/libinkscape_base.so: undefined reference to
`PDFDoc::PDFDoc(GooString*, GooString*, GooString*, void*)'
../lib/libinkscape_base.so: undefined reference to
`GfxState::GfxState(double, double, PDFRectangle*, int, bool)'
../lib/libinkscape_base.so: undefined reference to
`GfxResources::lookupPattern(char*, OutputDev*, GfxState*)'
../lib/libinkscape_base.so: undefined reference to `gmalloc'
../lib/libinkscape_base.so: undefined reference to `Parser::Parser(XRef*,
Lexer*, bool)'
../lib/libinkscape_base.so: undefined reference to
`GfxState::transformWidth(double)'
../lib/libinkscape_base.so: undefined reference to
`GfxResources::lookupXObject(char*)'
../lib/libinkscape_base.so: undefined reference to `gfree'
collect2: error: ld returned 1 exit status
src/CMakeFiles/inkview.dir/build.make:117: recipe for target 'bin/inkview'
failed
make[2]: *** [bin/inkview] Error 1
CMakeFiles/Makefile2:1204: recipe for target
'src/CMakeFiles/inkview.dir/all' failed
make[1]: *** [src/CMakeFiles/inkview.dir/all] Error 2
Makefile:162: recipe for target 'all' failed
make: *** [all] Error 2
--
*Prakash Bhattarai*
3 years, 1 month
Re: Regarding SVG Animation (cont.)
by NASA Jeff
Find a log of all my correspondence on the mailing list regarding animation
<http://www.avg.com/email-signature?utm_medium=email&utm_source=link&utm_c...>
Virus-free.
www.avg.com
<http://www.avg.com/email-signature?utm_medium=email&utm_source=link&utm_c...>
<#DAB4FAD8-2DD7-40BB-A1B8-4E2AA1F9FDF2>
On Fri, 21 Aug 2020 at 13:01, NASA Jeff <tallboy258(a)gmail.com> wrote:
> Sure, I've almost got the core functionality worked out it just has to be
> turned into a road map with slime test cases. I may look at
> https://monday.com/ to manage things, unless there is a good open-source
> alternative
>
>
> <http://www.avg.com/email-signature?utm_medium=email&utm_source=link&utm_c...> Virus-free.
> www.avg.com
> <http://www.avg.com/email-signature?utm_medium=email&utm_source=link&utm_c...>
> <#m_-2106103548420495181_DAB4FAD8-2DD7-40BB-A1B8-4E2AA1F9FDF2>
>
> On Fri, 21 Aug 2020 at 06:48, Utkarsh Dwivedi <dwivediutkarsh01(a)gmail.com>
> wrote:
>
>> Cool, that's good to know. So, I suppose it will be some time before we
>> start working on the project - which makes sense. So, our current task is
>> to find a viable implementable solution. Although I'm somewhat busy for the
>> coming month, I'll try to look into it and maybe could invest more time
>> after that.
>> Still, I found the mailing somewhat scattered and difficult to follow
>> what you have discovered so far. Perhaps you have discussed it with them
>> through some chat. Anyways, could you take some time and send me a mail or
>> a resource or screenshot showing/guiding me what's the current
>> plan/problems? Thanks in advance.
>>
>>
>> <https://www.avast.com/sig-email?utm_medium=email&utm_source=link&utm_camp...> Virus-free.
>> www.avast.com
>> <https://www.avast.com/sig-email?utm_medium=email&utm_source=link&utm_camp...>
>> <#m_-2106103548420495181_m_-8715313228638969067_DAB4FAD8-2DD7-40BB-A1B8-4E2AA1F9FDF2>
>>
>> On Thu, Aug 20, 2020 at 6:30 PM NASA Jeff <tallboy258(a)gmail.com> wrote:
>>
>>> I'm a technical architect by trade, so I've been doing that bit. A
>>> thorough investigation before any development work take place with a full
>>> roadmap.
>>>
>>>
>>> <http://www.avg.com/email-signature?utm_medium=email&utm_source=link&utm_c...> Virus-free.
>>> www.avg.com
>>> <http://www.avg.com/email-signature?utm_medium=email&utm_source=link&utm_c...>
>>> <#m_-2106103548420495181_m_-8715313228638969067_m_42994926147689251_DAB4FAD8-2DD7-40BB-A1B8-4E2AA1F9FDF2>
>>>
>>> On Thu, 20 Aug 2020 at 13:58, NASA Jeff <tallboy258(a)gmail.com> wrote:
>>>
>>>> When I spoke to them, they said it would have to be team work, and they
>>>> were going to be looking at it. They said SVG DOM was the major part. I've
>>>> not written any coder as yet.
>>>>
>>>>
>>>> <http://www.avg.com/email-signature?utm_medium=email&utm_source=link&utm_c...> Virus-free.
>>>> www.avg.com
>>>> <http://www.avg.com/email-signature?utm_medium=email&utm_source=link&utm_c...>
>>>> <#m_-2106103548420495181_m_-8715313228638969067_m_42994926147689251_m_-9100674961075444458_DAB4FAD8-2DD7-40BB-A1B8-4E2AA1F9FDF2>
>>>>
>>>> On Thu, 20 Aug 2020 at 04:03, Utkarsh Dwivedi <
>>>> dwivediutkarsh01(a)gmail.com> wrote:
>>>>
>>>>>
>>>>> Hi,
>>>>> This is the first time me emailing you directly to your mail, hope you
>>>>> don't mind.
>>>>>
>>>>> I read your emails and am now trying to go through the mailing list to
>>>>> get an idea what's going on. If you could give me a brief high-level
>>>>> overview what's the plan that would also be great.
>>>>>
>>>>> Also, I think creating an informal slack workspace, or communicating
>>>>> on some other media would be more productive than exchanging emails.
>>>>>
>>>>> Regarding your message, "Once that's done I'm sure other guys will
>>>>> start to chip in", I am quite sceptical. Although I am really interested in
>>>>> this project, I doubt the Inkscape devs would accept this huge of an update
>>>>> on face value. The other day, I did actually ask in the rocketchat
>>>>> regarding your work and the "official" reply I got was they. very likely,*
>>>>> would not* integrate the code into the Inkscape project especially
>>>>> since it has not been discussed and finalised by the devs. This should not
>>>>> be shocking though, as big open-source names rarely accept important
>>>>> changes in their software without extensive review and planning by the core
>>>>> developers.
>>>>>
>>>>> Still, I think the vision of animation creation is revolutionary and
>>>>> highly in-demand and your work valuable. That is why I suggest perhaps we
>>>>> should discuss working on this project as an Inkscape extension rather than
>>>>> an update to the main software. This is because the last thing we would
>>>>> want after investing large amounts of time and energy is to let it go
>>>>> futile with no way of spreading our work to the people. What are your
>>>>> thoughts?
>>>>> --
>>>>> With Regards
>>>>> Utkarsh Dwivedi
>>>>>
>>>>>
>>>>> <https://www.avast.com/sig-email?utm_medium=email&utm_source=link&utm_camp...> Virus-free.
>>>>> www.avast.com
>>>>> <https://www.avast.com/sig-email?utm_medium=email&utm_source=link&utm_camp...>
>>>>> <#m_-2106103548420495181_m_-8715313228638969067_m_42994926147689251_m_-9100674961075444458_m_-4617403965772355722_DAB4FAD8-2DD7-40BB-A1B8-4E2AA1F9FDF2>
>>>>>
>>>>
>>
>> --
>> With Regards
>> Utkarsh Dwivedi
>>
>
3 years, 1 month