Paolo Cignoni
eb642099f1
Corrected another typeclash in the curvature types (a CurVecType definition was missing in the emptycore component)
2014-06-24 08:41:41 +00:00
Nico Pietroni
938eefd398
2014-06-23 09:47:29 +00:00
Paolo Cignoni
4198a3bd7c
Cleaned up various type name clashes. There were some components that wrongly re-defined <ScalarType> covering the real <ScalarType> of the simplex. Renamed to something less ambiguous (like CurScalarType for denoting the scalar type used inside curvature types).
2014-06-19 08:31:51 +00:00
giorgiomarcias
c1f34b6517
Initialize data members in default constructors (e.g. Pos<FaceType> pos; pos.IsNull() now can't be false).
2014-06-15 21:29:45 +00:00
Paolo Cignoni
8825048e46
BUG corrected: missing initialization of optional per face color data.
2014-04-28 12:01:56 +00:00
Nico Pietroni
335354fdca
corrected one wrong assert on FFlinkConditions
2014-03-07 10:36:12 +00:00
Paolo Cignoni
e8d745dd10
PolygonalMesh Debugging: forgot a debugging prntf
2014-02-18 20:15:16 +00:00
Paolo Cignoni
df29c81227
Removed hideous, nasty, damned bug in polygon component. The ImportData was silently cleaning the vertex references in polygonal faces
2014-02-18 14:08:28 +00:00
Paolo Cignoni
1a4c5ef80d
PolygonalMesh Debugging: renamed the SetVN function to __SetVN (it is internal and should not never be called by the users)
2014-02-18 10:58:12 +00:00
Paolo Cignoni
eb233462ba
PolygonalMesh Debugging: removed the SetVN from the base class (it is internal)
2014-02-18 10:55:12 +00:00
Paolo Cignoni
6efdd91ecc
Many small changes to remove useless annoying warnings.
2014-02-13 15:52:17 +00:00
Paolo Cignoni
15bec03c89
Corrected the FHp member of the polygon.
2014-02-13 13:16:09 +00:00
Paolo Cignoni
d00d1b90e0
removed useless mesh parameter in FFLinkCondition
2014-02-12 10:58:38 +00:00
Nico Pietroni
c5d79ea704
commented out a wrong assert in FFlip function
2014-02-07 11:07:36 +00:00
Nico Pietroni
677295f1a3
added include <set>
2014-02-07 11:06:12 +00:00
Paolo Cignoni
91946b7847
Added basic link condition for FF adjacency and VVOrderedStarFF
2013-12-20 11:42:27 +00:00
Paolo Cignoni
3d150e9aea
changed an assert condition in FlipF that could lead to a failure in the case of quad mesh navigation over polygonal faces.
2013-11-25 10:15:54 +00:00
Paolo Cignoni
a29df708da
Removed warning. Changed a surely verified if condition into an assert.
...
(chosing the min between 3 elems we had a if-else chain where the last if was useless unless you have NAN )
2013-11-25 10:14:27 +00:00
Paolo Cignoni
1c1e3f778a
Include header cleaning and reordering.
2013-11-25 10:12:01 +00:00
Paolo Cignoni
6ec2689383
Corrected weird error in pos assignement operator.
2013-11-11 13:32:33 +00:00
granzuglia
d59e519e8f
- added missing "#include"
2013-10-16 08:36:05 +00:00
Paolo Cignoni
93eb66356b
removed a survived debug printf...
2013-10-09 09:18:56 +00:00
Paolo Cignoni
dc842fd034
Corrected a Bug in the VFOrderedStarFF (it could return twice the same face in when asked on boundary faces)
...
Added FFCollapseEdge
Added managment of faux edges in swapedges
2013-10-09 08:48:10 +00:00
Paolo Cignoni
df97ef0c36
Added zero initialization to quality component. (and corrected a small bug in the ocf quality component)
2013-09-24 13:55:23 +00:00
Paolo Cignoni
344de42c2e
removed the return type from the ++ operator of the vfi iterator
2013-09-10 10:54:40 +00:00
Paolo Cignoni
9ad68bc573
Added DihedralAngleRad that computes the signed dihedral angle between the normals of two adjacent faces
2013-06-24 07:55:54 +00:00
Paolo Cignoni
f3337dcb7c
updated polygon component to the cP/P behavior for access to elements
2013-03-20 08:56:20 +00:00
Paolo Cignoni
4665f36e40
Improved component documentation. Added IsVFInitialized, VFClear function for VF component. Clarified the difference between null and uninitialized for a VF component.
2013-03-13 14:02:03 +00:00
Nico Pietroni
e5ed268b6a
added function cVFi
2013-02-19 13:56:37 +00:00
Nico Pietroni
60bca978f7
added function VVExtendedStarVF
2013-02-19 13:55:15 +00:00
Paolo Cignoni
8111bcda24
Corrected a very nasty bug introduced in Revision 4782 that reorganized ocf face component and added a standard interface for query the availabiilty of data:
...
bool FaceType::IsXXXAvaialble() ,must be defined in the XXX ocf type and not in the info type otherwise it would be defined also for non ocf components.
2013-02-06 11:22:11 +00:00
Paolo Cignoni
b48b0e568c
added initialization of mark component to zero. So all the element it is sure that are unitialized after the first unmarkall.
2012-12-21 15:33:18 +00:00
Paolo Cignoni
8476a1ff20
Reorganized ocf vertex component and added a standard interface for query the availability of data:
...
now we have
static bool vertextype::HasXXX() // statically says if a certain type is present
bool vertextype::IsXXXAvaialble() // NON STATIC (always true for non ocf objects)
So now ImportData correctly works for both sides of vertex ocf component.
2012-12-17 22:54:48 +00:00
Paolo Cignoni
5dcf1aec47
forgot a IsCurvatureDirEnabled()
2012-12-17 15:58:16 +00:00
Paolo Cignoni
08aeee8716
Reorganized ocf face component and added a standard interface for query the availabiilty of data:
...
now we have
static bool FaceType::HasXXX() // statically says if a certain type is present
bool FaceType::IsXXXAvaialble() // NON STATIC (always true for non ocf objects)
So now ImportData works for face ocf component.
2012-12-17 15:02:34 +00:00
Paolo Cignoni
4d0450d521
added better comment to edge pos implicit ordering
2012-12-17 14:59:29 +00:00
Nico Pietroni
fb9a9bbac6
added function FFExtendedStarFF
2012-12-12 16:04:26 +00:00
Paolo Cignoni
9a1704379f
Improved documentation to include stars
2012-12-10 12:40:21 +00:00
Paolo Cignoni
3b466514b3
Added Standard exception throwing functions to claim requirements in the mesh algorithmic functions (Te Deum!)
...
for example, now at the beginning of a function requiring FFAdjacency you should just write:
RequireFFAdjacency(mesh);
No more assert please.
2012-12-06 10:34:08 +00:00
ganovelli
755eb7dda7
added HasNormal to EmptyCore
2012-12-03 17:47:15 +00:00
Paolo Cignoni
ab49388781
Added a VFDetach for face.
2012-11-27 14:03:24 +00:00
Paolo Cignoni
3fb4e6d061
re-Added to all the data members of vertex the const access member
2012-11-27 12:16:16 +00:00
Paolo Cignoni
8b4d04be7a
Added a bunch of 'c' to component members to clarify constant access
2012-11-15 19:11:28 +00:00
Paolo Cignoni
51fe0fb938
Added a bunch of 'c' to component members to clarify constant access
2012-11-15 19:07:34 +00:00
Paolo Cignoni
5c266a7ccb
HEAVY CHANGE:
...
The vertex and face component (natural and optional) have been cleaned and reordered.
Particular care has been devoted to have common behaviour in the import, const access, and so.
If you get compilation errors probably it is due to the fact that if you really need constant access to a member you have to use the "c" prefixed member (e.g. if you access to normal of a constant vertex you should use the cN() member.
2012-11-15 19:04:08 +00:00
Paolo Cignoni
f2be4a4d95
mismatch in the VertexVectorHasVFAdjacency and FaceVectorHasVFAdjacency names
2012-11-14 12:37:18 +00:00
Nico Pietroni
3864a934da
corrected 1 call of VFStarVF
2012-11-12 12:59:50 +00:00
Paolo Cignoni
feb77d945a
Significant changes of interface of VFOrderedStarFF (that substitute two very similar VFOrderedStarFF_VF)
...
Added EFStarFF
2012-11-10 16:53:10 +00:00
Paolo Cignoni
1a8c1dafe2
VFlip() and FFlip are const members but there is no need of returning a pointer to a Const element
2012-11-09 11:11:50 +00:00
Paolo Cignoni
3170472174
added a IMark()->cIMark()
2012-11-08 18:35:38 +00:00
Paolo Cignoni
26ee5e5246
const access to flags -> cFlags()
2012-11-07 22:53:41 +00:00
Paolo Cignoni
9f39a0c7cb
added cflags to the emtpycore face component
2012-11-07 15:51:51 +00:00
Paolo Cignoni
1046deb107
Corrected bug recently introduced due to small difference in the signature of the flags functions...
2012-11-07 15:42:14 +00:00
Paolo Cignoni
7bc4277fcd
Cleaned up documentation of components (new doxygroup for them, written something for most of them...).
...
Cleaned Edge components (Added adjacency stuff, implemented the single emptycore)
2012-11-07 01:24:45 +00:00
Paolo Cignoni
2523982d4d
harmless gcc warning (comment in comment)
2012-10-31 21:04:58 +00:00
Paolo Cignoni
578ea5ae6b
Added control in the creation of a pos that you pass a consistent triple
2012-10-26 12:39:58 +00:00
Nico Pietroni
8e8f537321
corrected order of functions call in NextE()
2012-10-26 12:28:17 +00:00
Paolo Cignoni
d784bebe07
Added guards to avoid useless (and sometime dangerous) inclusion of internal file of the vcglib
2012-10-25 21:29:10 +00:00
Paolo Cignoni
671af109a9
improved vertex component documentation
2012-10-25 21:20:10 +00:00
Paolo Cignoni
9658740974
Improving documentation. Reordered groups and started documenting main components
2012-10-25 13:47:31 +00:00
Paolo Cignoni
4c0acdbb7c
Removed all the UberXXX members from the various components. No more needed since many years. Still there just because we are quite lazy...
2012-10-25 13:46:08 +00:00
Paolo Cignoni
049c996846
Removed all the UberXXX members from the various components. No more needed since many years. Still there just because we are quite lazy...
2012-10-25 13:16:03 +00:00
Paolo Cignoni
cfda5a3eca
Removed all the UberXXX members from the various components. No more needed since many years. Still there just because we are quite lazy...
2012-10-25 13:07:25 +00:00
Paolo Cignoni
b045c9b992
Removed old useless files. Why do we kept them?
2012-10-25 13:01:34 +00:00
Paolo Cignoni
b1a1b36260
Re added the empty component. It can be useful sometimes...
2012-10-19 11:45:51 +00:00
Paolo Cignoni
fb60087ee4
component_ocf are now part of the standard inclusion sequence of complex.h
...
No more need of including them.
It was needed to avoid the issue of wrong inclusion order that could trigger a failure in the partial specialization of the reflection functions that should say if a component is present or not...
2012-10-15 09:17:48 +00:00
Nico Pietroni
8d4bdc467e
added function VFExtendedStarVF
2012-10-14 09:24:49 +00:00
Paolo Cignoni
a7dc9a853e
Better naming for the EdgePlane face component for fast closest query
2012-10-04 16:17:31 +00:00
Paolo Cignoni
d97f08e23e
Better naming for the EdgePlane face component for fast closest query
2012-10-04 16:15:24 +00:00
Paolo Cignoni
2577210a54
**** SIGNIFICANT CHANGES *****
...
- Cleaned up include order: Now you only need to include <vcg/complex/complex.h> (no more vertex/base.h etc)
- Added official VN() EN() FN() const members for knowing number of vertexes etc...
- Added exceptions (at last!)
Now instead of:
assert(HasPerVertexNormal(m))
you should write:
if(!HasPerFaceNormal(m)) throw vcg::MissingComponentException();
2012-10-04 11:10:25 +00:00
Nico Pietroni
dcb0d036ff
added FindSharedFaces and VFOrderedStarVF functions
2012-09-22 12:54:30 +00:00
Nico Pietroni
be2d3613b9
added one more call of VFStarVF that returns also the indexes of vertices as seen from the faces
2012-09-03 15:57:52 +00:00
Marco Di Benedetto
c209a384a0
fixed Color4bOcf interface (missing "public" section).
2012-08-22 18:36:59 +00:00
Paolo Cignoni
2aa57698ad
better uniform naming for detach attach functions (now there is FFAttach, FFAttachManifold, FFDetach, etc)
...
changed SharedVertex into FindSharedVertex
added FindSharedEdge
2012-07-27 12:59:27 +00:00
Paolo Cignoni
45b0deb7eb
Important Change: ** LastBitFlag ** now is named ** FirstUnusedBitFlag **
...
Corrected the name of the function allocating a user bit among the flags of the simplexes.
Changed in ALL the simplexes (vertex, edge, face, etc) and updating functions.
Note that the LastBitFlag should never be used by common users...
2012-07-18 09:37:32 +00:00
Paolo Cignoni
7ffb878913
SIGNIFICANT CHANGE
...
About the point to mesh distance functionalities
Now the two different 'path' for this distance computation (with or without the precomputation of planes and edges for triangular faces) are well distinct and with different names:
PointDistanceEP and PointDistanceBase
See the sample/trimesh_closest sample for more details
2012-07-06 15:24:04 +00:00
Paolo Cignoni
24110c34b2
added an Empty Component for the edgePlane component.
2012-07-06 05:07:25 +00:00
granzuglia
db57bd4e19
added missing public keyword on the static Name function of some ocf components.
2012-07-03 11:12:21 +00:00
ganovelli
0f99bd505e
changes and minor fix to enable input/output with VMI on memory
2012-07-02 14:38:10 +00:00
Nico Pietroni
c1e19b4b55
added assert(0) for cVFi function if does not exixts the component
2012-05-25 13:19:03 +00:00
Paolo Cignoni
37759ffcb0
sligthly better comments
2012-05-06 14:42:04 +00:00
Paolo Cignoni
e532ec9751
Added VVStarVE and VEStarVE functions (to get stars of vertexes and edges when working with edge meshes) to edge topology.
2012-04-27 09:23:01 +00:00
Marco Di Benedetto
1c5f2c2264
added static capability query function for ocf vertex texcoord (VertexVectorHasPerVertexTexCoord()) (not having it caused false positives).
2012-04-10 16:47:15 +00:00
Marco Di Benedetto
a82ac9639f
added constant accessors without the infamous "c" prefix for color (C()) and texcoord (T()).
2012-04-10 15:46:20 +00:00
granzuglia
1548d6415a
added missing functions in Empty:
...
- static bool HasCurvatureDir() { return false; }
- static bool IsCurvatureEnabled(const typename TT::VertexType *) { return false; }
2012-04-06 08:10:32 +00:00
Paolo Cignoni
b0d7d5c52e
removed harmless gcc warnings
2012-04-04 10:05:35 +00:00
Paolo Cignoni
ea701b39b3
Restructured Face component in order to follow the unique emptycore approach that avoid an endless derivation chain in the type definition
2012-04-04 10:04:46 +00:00
Paolo Cignoni
8a631d48c1
Corrected a significant bug in the reflection types for ocf components.
...
Changed the basic reflection mechanism: Instead of having a function templates over all the four containers now we template over Trimesh and we rely on a second function templated on face/vert that wants a vector<face> ; this second function only is eventually overloaded by another function that needs a vector_ocf of faces.
That is Before we had:
- in complex.h
template < class CType0, class CType1, class CType2 , class CType3>
bool HasPerFaceVFAdjacency (const TriMesh < CType0, CType1, CType2, CType3> & /*m*/) {return TriMesh < CType0 , CType1, CType2, CType3>::FaceContainer::value_type::HasVFAdjacency();}
- in the component_ocf.h
template < class VertContainerType, class FaceType, class Container1, class Container2 >
bool HasPerFaceVFAdjacency (const TriMesh < VertContainerType , face::vector_ocf< FaceType >, Container1, Container2 > & m)
{
if(FaceType::HasVFAdjacencyOcf()) return m.face.IsVFAdjacencyEnabled();
else return FaceType::FaceType::HasVFAdjacency();
}
While now we have:
- in complex.h
template < class FaceType > bool FaceVectorHasPerFaceVFAdjacency (const std::vector<FaceType > &) { return FaceType::HasVFAdjacency(); }
template < class TriMeshType> bool HasPerFaceVFAdjacency (const TriMeshType &m) { return tri::FaceVectorHasPerFaceVFAdjacency (m.vert); }
- and in component_ocf.h
template < class FaceType >
bool FaceVectorHasPerFaceVFAdjacency(const face::vector_ocf<FaceType> &fv)
{
if(FaceType::HasVFAdjacencyOcf()) return fv.IsVFAdjacencyEnabled();
else return FaceType::HasVFAdjacency();
}
2012-03-31 01:16:58 +00:00
Nico Pietroni
a53447ab1c
added VFOrderedStarVF_FF function
2012-03-29 16:36:01 +00:00
ganovelli
bbcfbfabc2
added CurvatureDir to Face
2012-03-28 12:39:22 +00:00
ganovelli
749f67c3b6
added curvature direction
2012-03-28 11:56:10 +00:00
Nico Pietroni
4f166fbd95
added Crease Flag access functions
2012-03-16 13:49:04 +00:00
Paolo Cignoni
57bd611892
added assert in the VFIterator to handle uninitialized topology.
2012-03-14 16:02:30 +00:00
Paolo Cignoni
f58551601a
CHANGE to the VERY USED PointDistanceBase, the basic functor used to find the closest point to a face in all the grids.
...
It has a bug that could return a nan in some degnerate case where an almost null face has different vertices but the squared distance between them could be zero.
Now it should handle also these cases.
2012-03-14 15:59:42 +00:00
Paolo Cignoni
159f9d0c0f
added an assertion to block the use of VEiterators in case of unitialized VEadjacency
2012-02-09 17:54:25 +00:00
Paolo Cignoni
c8e202738c
added initialization of VE adjacency components to something that allows to discriminate between the uninitializated adjacency and a vertex with no edges
2012-02-09 17:53:08 +00:00
Paolo Cignoni
c32db09276
Changed the name of the Distance from point to plane
...
from DistancePointPlane
to SignedDistancePointPlane
to underline the fact that it is SIGNED!!!
2012-01-23 06:47:31 +00:00
Paolo Cignoni
7fb6c417da
Missing Include
2012-01-20 07:51:49 +00:00
Paolo Cignoni
f4cf3b9221
Changed the name of the Distance from point to plane
...
from DistancePointPlane
to SignedDistancePointPlane
to underline the fact that it is SIGNED!!!
2012-01-18 11:44:42 +00:00
ganovelli
d256abfaaf
added PointScaledDistanceFunctor
2011-12-21 16:15:32 +00:00