Open Jose-Moreno opened 7 years ago
Hey Jose.
I noticed this issue, this is also annoying me for the new tool I am working on. I will try to fix it anytime soon. I will keep you updated.
Also, a bit off topic, I noticed that you cannot fill a vector layer after loading it from a previous project. The issue is due to the fact that the size of the vector image "mSize" is not updated when the project is loaded. I found a quick fix to this issue. Modifing vectorimage code as follows
`
void VectorImage::clean(){
for(int i=0; i<m_curves.size(); i++){
updateImageSize(m_curves[i]); // INSERT THIS LINE TO UPDATE IMAGE SIZE
if (m_curves.at(i).getVertexSize() == 0) {qDebug() << "CLEAN " << i; m_curves.removeAt(i); i--;}
}
}
`
I don't really know if, doing this in the clean method is the best way alternatively we could overload the function updateimagesize as follows
`
void VectorImage::updateImageSize() {
for(int i=0; i<m_curves.size(); i++) {updateImageSize(m_curves[i]);}
}
`
and call it in VectorImage::loadDomElement ..
Cheers, Matis
@MatisHudon Hey! I'm not really wise about the programming side of Pencil2D, however perhaps if @feeef has some time he can explain what's missing upon his early implementation of the fill tool. We can also ask @chchwy for details and to review the implementation you propose. Thanks a lot for takign the time to review this too :)
Alright I've just had a look at it, I can't seem to reproduce the spline to linear interpolation issue anymore, this must have been fixed some time ago I guess?
The fill tool is still broken.
@CandyFace You're right, it does seem to be fixed, however there's another issue at hand that worries me as it can be interrupting the way this bug used to surface (or ti might have fixed it as well hah).
Now when using the "merge" check-box feature, the vector lines are not creating enough points at the intersections when each line is crossing each other, so no real "merging", and the only way to currently make two points "join" is to move one on top of the other (however I've found that if you zoom really close you can separate them like so using the finger tool)
If you can notice this on your end for MAC, I'll open a new issue for that alone. Thanks a lot for looking out for the project as you have lately!
@Jose-Moreno I'm not sure I understand the functionality of the merge tickbox. What does merge do exactly? it says "merge vector lines, when they are close together" but what does that mean in this case? Will it join the points that are close enough or will it just visually place them on top of each other? I've always been confused about that feature.
@CandyFace Same here, although I would like to think it should work like on ToonBoom software where you can make vector line strokes "independent" of each other while they overlap (merge OFF) so each stroke behaves as an independent vector element. When merge is ON, each stroke add up and fuse into an editable vector element, unless you draw outside which would create a new element on it's own.
So when vectors are "not-merged" they should retain their individual control points without fusing together nor creating new unnecessary points. And when vectors are "merged" they should create new control points wherever these strokes overlap. So the merging would be an active boolean additive operation.
This merge feature seems to be have been thought out only for vector strokes, but we should also consider a possibility that in a future tool we can achieve a vector brush tool and even a geometric tool which creates vector fills or geometric shapes respectively.
These shapes should also "fuse" each other or not when there's a path overlap. Inkscape has a similar idea where you can convert objects or strokes into paths, and you use the "pathfinder" (boolean operations) where you can add, subtract or intersect the shapes at will, but in Pencil2D the process should feel more organic, happening behind the scenes while drawing while the merge option is ON.
I still need to finish organizing the feature requests I had collected to begin submitting before next weekend, so we can begin crafting the roadmap to guide the software after fixing all the major bugs that are remaining. With that said however, I've always felt that vector tools in Pencil2D need a major overhaul to allow for greater control and flexibility when working. This would definitely help improve it's appeal among animators and artists who are used to commercial vector software like Flash, ToonBoom, CACANi and even Moho as well as integrate with existing open source software like Synfig, Inkscape, and even Blender through SVG import /export.
Hmm okay so it seems that the merge function does "work" as long as the points are generated close enough to each other. Now I understand your previous post, they don't merge though, both points can still be seen, they just somewhat overlap each other and loose their ability to be dragged independently.
Yes, that's also the way I would expect it to behave, also that it should work in a more organic way and not require too much clicking here and there. I don't want Pencil to become a vector editing software, the vector engine should be focused on these things:
Anything else would imo. be nice to have for now.
@CandyFace I completely agree with your proposed focus for the vector engine :smile: I'll be submitting the feature request for enhanced vector tools sometime soon and I want to incorporate as much specific information as possible. Since you proposed some operations that hadn't been suggested to me before (join, split, possibility of it's own widget / panel, gradient), I want to have some time to integrate those points into it.
[2018 Review] This is still a work in progress, but it's been halted until Pencil2D has become more stable and it's bitmap layer requires less work.
Hmm okay so it seems that the merge function does "work" as long as the points are generated close enough to each other. Now I understand your previous post, they don't merge though, both points can still be seen, they just somewhat overlap each other and loose their ability to be dragged independently.
Yes, that's also the way I would expect it to behave, also that it should work in a more organic way and not require too much clicking here and there. I don't want Pencil to become a vector editing software, the vector engine should be focused on these things:
- Good and reliable lines
- A fill tool (with solid and gradient)
- The ability to control vector points, add, remove, join, split. These should be usable on any kind of stroke, be it pencil, pen or brush. They would be placed in their own widget too.
- Boolean operations to make additive, subtractive, intersection between strokes or geometrics and
- Create geometric shapes.
Anything else would imo. be nice to have for now.
inkscape as the core mite good
--Issue Summary--
The vector color fill is not working correctly. Outline and color fill are not synced. This was changed due to the tinkering that was made to the bucket fill to allow for "lazy brush" style of fill (where you can click and drag the bucket fill tool over and across a closed shape outline to fill it quickly)
--Actual Results
The color fill is being interpolated linearly even if the lines that form a shape are curved.
--Expected Results--
The color fill and the vector outline should have the same kind of interpolation to allow for complex shapes to be created and colored. That means that both outline and fill should conform to the same shape regardless of how the control points are moved.
--Video or Image Reference--
https://www.youtube.com/watch?v=SaWFDyQJDoM
--Steps to reproduce--
1) Create a random shape on a vector layer 2) (optional) Subdivide the shape 3) Fill the whole shape or it's quadrants (if followed step 2) 4) use the smudge / finger tool to move the vector points away from the fill 5) Notice how the fill does not adjust to the shape outline
--System Information--
Pencil2D Version:
Pencil2D Nightly Build November 2016 and prior.
Operating System:
Windows / Ultimate