Dear Jan Möbius ,
Thank you very much for answering our questions.
We understood the second topic.
For the first topic, thank you for asking our suggestion to define/compute
it.
In curvature.cc,
Please change:
for(; voh_it; ++voh_it, ++n_voh_it)
{
typename MeshT::Point p1 = _mesh.point(_mesh.to_vertex_handle(
voh_it));
typename MeshT::Point p2 = _mesh.point(_mesh.to_vertex_handle(
n_voh_it));
gauss_curv -= acos(OpenMesh::sane_aarg( ((p1-p0).normalize() |
(p2-p0).normalize()) ));
}
to:
*bool isBoundaryVertex_ = _triMesh->is_boundary(_vh);*
for(; voh_it; ++voh_it, ++n_voh_it)
{
*if((* *isBoundaryVertex_ **) && !(n_voh_it))*
* break;*
typename MeshT::Point p1 = _mesh.point(_mesh.to_vertex_handle(
voh_it));
typename MeshT::Point p2 = _mesh.point(_mesh.to_vertex_handle(
n_voh_it));
gauss_curv -= acos(OpenMesh::sane_aarg( ((p1-p0).normalize() |
(p2-p0).normalize()) ));
}
In this way, we can avoid calculating the unnecessary facet for boundary
vertices.
With Regards,
Xianyong
2012/10/31 <openflipper-request(a)lists.rwth-aachen.de>
> Send Openflipper mailing list submissions to
> openflipper(a)lists.rwth-aachen.de
>
> To subscribe or unsubscribe via the World Wide Web, visit
> http://mailman.rwth-aachen.de/mailman/listinfo/openflipper
> or, via email, send a message with subject or body 'help' to
> openflipper-request(a)lists.rwth-aachen.de
>
> You can reach the person managing the list at
> openflipper-owner(a)lists.rwth-aachen.de
>
> When replying, please edit your Subject line so it is more specific
> than "Re: Contents of Openflipper digest..."
>
>
> Today's Topics:
>
> 1. Re: Bug in computing Gaussian curvature in openfliiper
> (Jan Möbius)
> 2. Re: How to get face area and how to iterate vertices of a
> face in counterclockwise (Jan Möbius)
>
>
> ----------------------------------------------------------------------
>
> Message: 1
> Date: Wed, 31 Oct 2012 08:16:23 +0100
> From: Jan Möbius <moebius(a)cs.rwth-aachen.de>
> To: openflipper(a)lists.rwth-aachen.de
> Subject: Re: [Openflipper] Bug in computing Gaussian curvature in
> openfliiper
> Message-ID: <5090D047.9090704(a)cs.rwth-aachen.de>
> Content-Type: text/plain; charset=UTF-8
>
> Hi,
>
> i think the gaussian curvature is not well defined on the boundary. The
> current computation computes it, as if the one ring is complete, which
> is just an approximation of course.
>
> How would you suggest to define/compute it?
>
> Best,
> Jan Möbius
>
> On 25.10.2012 04:39, ??? wrote:
> > Dear openfliiper,
> > Concerning the problem we sent last night.
> > We put two examples here. From the output,
> > we can see that for boundary vertex, the current way returns an
> > unnecessary face(shown in bold font).
> >
> > Besides, could you please help us how to iterate all incident vertices
> > in a face in counterclockwise.
> >
> >
> >>>>>>>> example one: 553 is a boundary vertex
> >
> > -------------------------- retrieve by incident half edges
> > (553,517);(553,482)
> > (553,482);(553,516)
> > (553,516);(553,464)
> > (553,464);(553,603)
> > *(553,603);(553,517)*
> >
> > --------------------------retrieve by incident faces
> > (553,517);(553,482)
> > (553,482);(553,516)
> > (553,516);(553,464)
> > (553,603);(553,464)
> >
> >
> >>>>>>>> example two: 509 is an interior vertex
> >
> > -------------------------- retrieve by incident half edges
> > (509,507);(509,534)
> > (509,534);(509,549)
> > (509,549);(509,535)
> > (509,535);(509,510)
> > (509,510);(509,492)
> > (509,492);(509,491)
> > (509,491);(509,507)
> >
> > --------------------------retrieve by incident faces
> > (509,507);(509,491)
> > (509,534);(509,507)
> > (509,549);(509,534)
> > (509,535);(509,549)
> > (509,535);(509,510)
> > (509,492);(509,510)
> > (509,492);(509,491)
> >
> > Best Regards,
> > Xianyong Liu.
> >
> >
> > 2012/10/24 ??? <xyliu80(a)gmail.com <mailto:xyliu80@gmail.com>>
> >
> > Dear openfliiper,
> >
> > We think, In Curvature.cc, the calculation for Gaussian curvature is
> > wrong.
> >
> > The fact is that the number of incident angles(facets) overs a
> > boundary vertex is one less than then number of incident vertices
> > (edges) over it.
> >
> > Below is the existing calculation.
> > It should judge whether the vertex is a boundary one or not!
> >
> > --------------- Curvature.cc --------------
> > for(; voh_it; ++voh_it, ++n_voh_it)
> > {
> > typename MeshT::Point p1 = _mesh.point(_mesh.to_vertex_handle(
> > voh_it));
> > typename MeshT::Point p2 = _mesh.point(_mesh.to_vertex_handle(
> > n_voh_it));
> >
> > gauss_curv -= acos(OpenMesh::sane_aarg( ((p1-p0).normalize() |
> > (p2-p0).normalize()) ));
> > }
> >
> > Best Regards,
> > Xianyong Liu.
> >
> >
> >
> >
> > _______________________________________________
> > Openflipper mailing list
> > Openflipper(a)lists.rwth-aachen.de
> > http://mailman.rwth-aachen.de/mailman/listinfo/openflipper
>
>
> --
> Dipl.Inform. Jan Möbius
> Department of Computer Science VIII
> Aachen University of Technology (RWTH)
> Ahornstrasse 55, 52074 Aachen, Germany
>
> Phone ++49 (0)241 80-21817
> Fax ++49 (0)241 80-22899
> mailto:moebius@cs.rwth-aachen.de
> http://www.rwth-graphics.de
>
>
> ------------------------------
>
> Message: 2
> Date: Wed, 31 Oct 2012 08:46:38 +0100
> From: Jan Möbius <moebius(a)cs.rwth-aachen.de>
> To: openflipper(a)lists.rwth-aachen.de
> Subject: Re: [Openflipper] How to get face area and how to iterate
> vertices of a face in counterclockwise
> Message-ID: <5090D75E.9070701(a)cs.rwth-aachen.de>
> Content-Type: text/plain; charset=UTF-8
>
> Hi,
>
> On 25.10.2012 18:01, ??? wrote:
> > Dear Openflipper,
> >
> > We have two questions. Hopefully we can get answers from you.
> >
> > 1). We can not use the following formula to get the right face area .
> > 0.5* (((p1-p0) * (p2-p0)).norm());
> > For instance, the right value should be 0.145643363, but we got
> 0.0874207.
> >
> > x y z
> > 0.2649 0.1398 4.8136
> > 0.7567 0.0491 4.8185
> > 0.6181 -0.0791 4.2549
> >
> > i j k
> > 0.4918 -0.0907 0.0049
> > 0.3532 -0.2189 -0.5587
> >
> > 0.0517467 0.27649934 -0.07562
> > 0.002677721 0.076451885 0.005718 0.084848
> > 0.145643
> >
>
> The area is defined via the cross product, but you use the scalar
> product. Changing your function to
> 0.5* (((p1-p0) % (p2-p0)).norm());
> will fix it.
>
>
> > 2). How to iterate vertices of a face in counterclockwise?
>
> There is no fixed function for this, but you can simply walk around your
> vertex on your own:
>
> Take one outgoing halfedge ohe;
>
> To go counterclockwise to the next halfedge do:
> he = mesh.prev_halfedge_handle(he);
> he = opposite_halfedge_handle(he);
>
> To get the vertices, Just use
> mesh.to_vertex_handle(he);
>
> Best,
> Jan Möbius
>
>
> --
> Dipl.Inform. Jan Möbius
> Department of Computer Science VIII
> Aachen University of Technology (RWTH)
> Ahornstrasse 55, 52074 Aachen, Germany
>
> Phone ++49 (0)241 80-21817
> Fax ++49 (0)241 80-22899
> mailto:moebius@cs.rwth-aachen.de
> http://www.rwth-graphics.de
>
>
> ------------------------------
>
> _______________________________________________
> Openflipper mailing list
> Openflipper(a)lists.rwth-aachen.de
> http://mailman.rwth-aachen.de/mailman/listinfo/openflipper
>
>
> End of Openflipper Digest, Vol 32, Issue 10
> *******************************************
>
Dear Openflipper,
We have two questions. Hopefully we can get answers from you.
1). We can not use the following formula to get the right face area .
0.5* (((p1-p0) * (p2-p0)).norm());
For instance, the right value should be 0.145643363, but we got 0.0874207.
x y z 0.2649 0.1398 4.8136 0.7567 0.0491 4.8185 0.6181 -0.0791 4.2549
i j k 0.4918 -0.0907 0.0049 0.3532 -0.2189 -0.5587 0.0517467
0.27649934 -0.07562 0.002677721 0.076451885 0.005718 0.084848 0.145643
2). How to iterate vertices of a face in counterclockwise?
Thank you very much!
Best Regards,
Xianyong Liu.
Dear openfliiper,
We think, In Curvature.cc, the calculation for Gaussian curvature is wrong.
The fact is that the number of incident angles(facets) overs a boundary
vertex is one less than then number of incident vertices (edges) over it.
Below is the existing calculation.
It should judge whether the vertex is a boundary one or not!
--------------- Curvature.cc --------------
for(; voh_it; ++voh_it, ++n_voh_it)
{
typename MeshT::Point p1 = _mesh.point(_mesh.to_vertex_handle(
voh_it));
typename MeshT::Point p2 = _mesh.point(_mesh.to_vertex_handle(
n_voh_it));
gauss_curv -= acos(OpenMesh::sane_aarg( ((p1-p0).normalize() |
(p2-p0).normalize()) ));
}
Best Regards,
Xianyong Liu.
Hi, Jan Möbius
We build OpenFipper1.3 and 1.4, found that QWT does not be activated at all.
For example, the plot in mesh compare is disappeared.
Reading the code, we saw WITH_QWT macro controls it.
Do we need to download QWT, build it, and specify the path in the cmak, and re-build whole openfilpper solution again?
Could you please tell us where is WITH_QWT defined in the solution?
Do we have a simple to use QWT without rebuilding the solution?
Thanks and best wishes!
Xianyong Liu
Shanghai JiaoTong University
Office: +86 021 34204586
E-mail: xyliu80(a)gmail.com
Address: 504 Room, SEIEE buiding 3#, 800 Dongchuan Rd,Min Hang,Shanghai,200240,China
Hi, Jan Möbius,
Thanks for sharing your ideas.
The Plugin Collection is a good concept to deal with this case,
if the cmake can automatically recognize how many plugins in the collection and generate the corresponding binaries,
because, from a developers viewpoint, we DO want to maintain them in a single project.
If the cmake cannot, we prefer the SINGAL and SLOT mode, the business relationship looks clear even we have to sacrifice more code lines.
Regards,
Xianyong Liu
Shanghai JiaoTong University
Office: +86 021 34204586
E-mail: xyliu80(a)gmail.com
Address: 504 Room, SEIEE buiding 3#, 800 Dongchuan Rd,Min Hang,Shanghai,200240,China
Dear Jan Möbius,
Thanks for your helpful answers.
Concerning to topic: About the plugin desing : one host and other slaved.
We still have our different view.
Firstly, We do not want to put the host class and the slave classes into different folders,
instead, we prefer to keeping them together in the same project, because they focus on the same 'business'.
We split them because we want to make the 'business' looks clear;
We make them inherit by LogInterface, RPCInterface and others because we need to call external functions, like log, rpc, within them.
Secondly, let me state the problems with our current design.
For example, we have a subclass named :GeometricSignature.cpp.
We put Q_EXPORT_PLUGIN2( lmgcgeometricsignature , LMGCGeometricSignature); at the bottom of it.
however, we got the following building eorrs
2>Linking...
2>LMGCPlugin.obj : error LNK2005: _qt_plugin_query_verification_data already defined in GeometricSignature.obj
2>LMGCPlugin.obj : error LNK2005: _qt_plugin_instance already defined in GeometricSignature.obj
if we remvoved Q_EXPORT_PLUGIN2( lmgcgeometricsignature , LMGCGeometricSignature); out of it,
Building is fine, but calls to those external functions do not work; that is say, no errors, no feedbacks;
From the log window, we can see only the main class is loaded; other subclasses do not loaded as plugins even they have the same inheritance as the main class.
We are looking forward to hearing suggestions from you.
Best Regards,
Xianyong Liu
Shanghai JiaoTong University
Office: +86 021 34204586
E-mail: xyliu80(a)gmail.com
Address: 504 Room, SEIEE buiding 3#, 800 Dongchuan Rd,Min Hang,Shanghai,200240,China
From: openflipper-request
Date: 2012-10-18 18:00
To: openflipper
Subject: Openflipper Digest, Vol 32, Issue 2
Send Openflipper mailing list submissions to
openflipper(a)lists.rwth-aachen.de
To subscribe or unsubscribe via the World Wide Web, visit
http://mailman.rwth-aachen.de/mailman/listinfo/openflipper
or, via email, send a message with subject or body 'help' to
openflipper-request(a)lists.rwth-aachen.de
You can reach the person managing the list at
openflipper-owner(a)lists.rwth-aachen.de
When replying, please edit your Subject line so it is more specific
than "Re: Contents of Openflipper digest..."
Today's Topics:
1. About Gaussian curvature computation (xyliu80(a)gmail.com)
2. About the plugin desing : one host and other slaved.
(xyliu80(a)gmail.com)
3. Re: About the plugin desing : one host and other slaved.
(Jan Möbius)
4. Re: About Gaussian curvature computation (Jan Möbius)
----------------------------------------------------------------------
Message: 1
Date: Wed, 17 Oct 2012 23:01:20 +0800
From: "xyliu80(a)gmail.com" <xyliu80(a)gmail.com>
To: openflipper <openflipper(a)lists.rwth-aachen.de>
Subject: [Openflipper] About Gaussian curvature computation
Message-ID: <201210172301158434251(a)gmail.com>
Content-Type: text/plain; charset="gb2312"
Dear Openflipper developer,
We saw that, in openflipper,
the initial Guassian curvature for each vetex is :
double gauss_curv( 2.0*M_PI);
However, in lots of papers, they set the initial value to M_PI, if it is a boundary vertex.
Could you please explain such difference?
Thank you for your great work in graphics community!
Best Regards,
Xianyong Liu
Shanghai JiaoTong University
Office: +86 021 34204586
E-mail: xyliu80(a)gmail.com
Address: 504 Room, SEIEE buiding 3#, 800 Dongchuan Rd,Min Hang,Shanghai,200240,China
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman.rwth-aachen.de/pipermail/openflipper/attachments/20121017/73…>
------------------------------
Message: 2
Date: Thu, 18 Oct 2012 12:15:01 +0800
From: "xyliu80(a)gmail.com" <xyliu80(a)gmail.com>
To: openflipper <openflipper(a)lists.rwth-aachen.de>
Subject: [Openflipper] About the plugin desing : one host and other
slaved.
Message-ID: <201210181214589375012(a)gmail.com>
Content-Type: text/plain; charset="gb2312"
Dear Openflipper developer,
Suppose we have built up a plugin, but we want to split it into a classes and other slaved ones.
Every inherits from QObject, BaseInterface, LoggingInterface, StatusbarInterface, RPCInterface
such that they can call other plugin functions, like log, rpc::callFunction, by themselves.
The problem is that we found such design does not work,
because they can not work as we imagine;
Only the primary one works fine.
Therefore, we want to ask for suggestions for the support team!
Best Regards,
Xianyong Liu
Shanghai JiaoTong University
Office: +86 021 34204586
E-mail: xyliu80(a)gmail.com
Address: 504 Room, SEIEE buiding 3#, 800 Dongchuan Rd,Min Hang,Shanghai,200240,China
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman.rwth-aachen.de/pipermail/openflipper/attachments/20121018/61…>
------------------------------
Message: 3
Date: Thu, 18 Oct 2012 09:19:02 +0200
From: Jan Möbius <moebius(a)cs.rwth-aachen.de>
To: openflipper(a)lists.rwth-aachen.de
Subject: Re: [Openflipper] About the plugin desing : one host and
other slaved.
Message-ID: <507FAD66.10801(a)cs.rwth-aachen.de>
Content-Type: text/plain; charset=ISO-8859-1
Hi,
On 18.10.2012 06:15, xyliu80(a)gmail.com wrote:
> Dear Openflipper developer,
> Suppose we have built up a plugin, but we want to split it into
> a classes and other slaved ones.
> Every inherits from
> QObject, BaseInterface, LoggingInterface, StatusbarInterface, RPCInterface
> such that they can call other plugin functions, like log,
> rpc::callFunction, by themselves.
This setup is fine. Usually we also split the functionality into basic
plugins. You have to put the plugins into separate folders at
OpenFlippers top level directory. Additionally you have to make sure,
that they have different names (especially the plugin name returned has
to be different).
You can only have one class handling the interfaces in your plugin. All
other classes can be derived from QObject but have to communicate to the
core via the main plugin class (But you can connect the signals of your
subclass directly to the signals of your ain class).
> The problem is that we found such design does not work,
> because they can not work as we imagine;
Do you get any error message?
> Only the primary one works fine.
Take a look at the log window. When OpenFlipper starts, it shows which
plugins get loaded in the log window. Check for messages regarding
plugins that are not loaded. If you use linux, you can start OpenFlipper
with the command line option "-c" which will print the full log to your
console.
Best,
Jan Möbius
--
Dipl.Inform. Jan Möbius
Department of Computer Science VIII
Aachen University of Technology (RWTH)
Ahornstrasse 55, 52074 Aachen, Germany
Phone ++49 (0)241 80-21817
Fax ++49 (0)241 80-22899
mailto:moebius@cs.rwth-aachen.de
http://www.rwth-graphics.de
------------------------------
Message: 4
Date: Thu, 18 Oct 2012 09:28:32 +0200
From: Jan Möbius <moebius(a)cs.rwth-aachen.de>
To: openflipper(a)lists.rwth-aachen.de
Subject: Re: [Openflipper] About Gaussian curvature computation
Message-ID: <507FAFA0.1020203(a)cs.rwth-aachen.de>
Content-Type: text/plain; charset=ISO-8859-1
On 17.10.2012 17:01, xyliu80(a)gmail.com wrote:
> Dear Openflipper developer,
>
> We saw that, in openflipper,
> the initial Guassian curvature for each vetex is :
> double gauss_curv( 2.0*M_PI);
> However, in lots of papers, they set the initial value to M_PI, if it is
> a boundary vertex.
>
> Could you please explain such difference?
Was a bug. Boundary vertices where not handled at all. -> Fixed in svn.
Best,
Jan Möbius
--
Dipl.Inform. Jan Möbius
Department of Computer Science VIII
Aachen University of Technology (RWTH)
Ahornstrasse 55, 52074 Aachen, Germany
Phone ++49 (0)241 80-21817
Fax ++49 (0)241 80-22899
mailto:moebius@cs.rwth-aachen.de
http://www.rwth-graphics.de
------------------------------
_______________________________________________
Openflipper mailing list
Openflipper(a)lists.rwth-aachen.de
http://mailman.rwth-aachen.de/mailman/listinfo/openflipper
End of Openflipper Digest, Vol 32, Issue 2
******************************************
Dear Openflipper developer,
We saw that, in openflipper,
the initial Guassian curvature for each vetex is :
double gauss_curv( 2.0*M_PI);
However, in lots of papers, they set the initial value to M_PI, if it is a boundary vertex.
Could you please explain such difference?
Thank you for your great work in graphics community!
Best Regards,
Xianyong Liu
Shanghai JiaoTong University
Office: +86 021 34204586
E-mail: xyliu80(a)gmail.com
Address: 504 Room, SEIEE buiding 3#, 800 Dongchuan Rd,Min Hang,Shanghai,200240,China
Hi all,
I just found out about OpenFlipper. Tried the program, but have no clue
on how to use some of the plugins. Looked for the user documentations on
the specific plugins "how to"s, but couldn't find it anywhere. Can someone
help me and show me how to use the skeleton plugin (drawing bones, and
animate it), please? Thanks.
I also read the supplied pdf regarding OpenFlipper being used by two
companies. How does the license applied to the commercial project such as
that? Also, is there any differences between the free and the commercial
OpenFlipper?
Thanks.
Best regards,
Faizol
Hi
I am trying to create a new camera objects from a plugin but the reported function PluginFunctions::addCamera is missing.
Also I would like to know how to associate a view with a camera. I have seen the viewerId and examinerId methods of the CamerObject class, but it is not clear how to use them.
Thank you
Olaf