Paolo Cignoni
24110c34b2
added an Empty Component for the edgePlane component.
2012-07-06 05:07:25 +00:00
granzuglia
398f906bb6
added missing cmath include
2012-07-05 14:46:16 +00:00
Paolo Cignoni
b77fa00b5e
removed a few unused commented out funcs
2012-07-04 15:27:17 +00:00
Paolo Cignoni
cd1ae00082
Added tri::UpdateFlags<MESH_TYPE>::FaceBorderFromFF(m); to the basic refine call.
...
In order to move these per face flags in less places as possible...
2012-07-04 15:25:21 +00:00
Paolo Cignoni
b2e2bfe2df
added Cotangent weighting to the basic laplacian smoothing.
2012-07-04 15:23:59 +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
Paolo Cignoni
bfc10096f0
small improvemnt in stat collection for voronoi atlas
2012-07-03 10:21:41 +00:00
Paolo Cignoni
7e4e023266
Removed a dubious unused normalize method...
2012-07-03 09:29:48 +00:00
Paolo Cignoni
f036874693
better comments
2012-07-03 09:14:17 +00:00
Paolo Cignoni
e362d54a25
Timing functions and stat collecting for voronoi atlas
2012-07-03 09:13:07 +00:00
Paolo Cignoni
b08fda7641
Corrected SegmentPointSquaredDistance to do not use anymore a hardcoded EPSilon value...
2012-07-02 16:45:49 +00:00
Paolo Cignoni
776fbe45a0
First Version of the Voronoi Atlas parametrizator.
2012-07-02 16:41:28 +00:00
Paolo Cignoni
539de75614
Cleaned up a bit the printint stuff. Now it should collect stats in a more clean way
2012-07-02 16:31:52 +00:00
ganovelli
0f99bd505e
changes and minor fix to enable input/output with VMI on memory
2012-07-02 14:38:10 +00:00
Paolo Cignoni
487b6c7bd5
Corrected a bug in search for the best edge to be fixed in the FindFarthestVert when setting up the system for the poisson solver...
2012-07-02 09:38:42 +00:00
Paolo Cignoni
7cc19a31c6
Added two stupid wrapper to ComputePerFaceQualityMinMax and ComputePerVertexQualityMinMax
2012-07-02 08:30:17 +00:00
Paolo Cignoni
52fed4c451
Added a PerWedgeMakeUnitaryUV to normalize for packing
2012-07-02 08:29:11 +00:00
Paolo Cignoni
ad9a7a237d
updated to match the Distorsion->Distortion name change
2012-07-02 08:19:06 +00:00
Paolo Cignoni
d900752b52
Renamed to correct the spelling error (distorsion -> distortion)
2012-07-02 08:15:24 +00:00
Paolo Cignoni
d6ff9f01de
Heavily modified. Corrected Spelling of distorsion->distortion
...
Completed a few measures and added difference between angle distortion in cos or rad space
2012-07-02 08:13:50 +00:00
Paolo Cignoni
28f3e120f0
Corrected naming for the unreference vertices function now the func that just count the unref vert is called CountUnreferencedVertex
2012-06-28 17:21:20 +00:00
Paolo Cignoni
9ed6314d10
removed harmless gcc warnings
2012-06-28 09:09:08 +00:00
Nico Pietroni
066f46c20b
first release version
2012-06-22 14:27:33 +00:00
Nico Pietroni
614a5fec16
first release version
2012-06-22 14:25:35 +00:00
Nico Pietroni
0e3d2abcfd
corrected return value of closest point
2012-06-22 14:23:33 +00:00
Paolo Cignoni
af15a07c0f
corrected small bug in RemoveDuplicateFace involving the unsafe subtracting 1 from an unsigned int that could be zero...
2012-06-14 13:48:25 +00:00
Federico Ponchio
cb639a12d7
renamed from max/min to hi/low
2012-06-14 09:40:26 +00:00
Paolo Cignoni
36905c5d93
Added extrude.h file for the creation of extruded meshes from profiles
2012-06-06 06:25:56 +00:00
Paolo Cignoni
75ebfa9d5a
Rewrote and commented the function that given a face pointer it follows the chain of non-faux edges. Now it supports the case of meshes with face with ALL edges faux (isolated faces in a polygon).
2012-05-28 11:30:37 +00:00
Nico Pietroni
894ebb26f6
added RemoveHugeConnectedComponentsDiameter function
2012-05-25 13:33:36 +00:00
Nico Pietroni
d4ad0bd6f6
added check if length of segment is zero then function SegmentPointDistance still works
2012-05-25 13:32:48 +00:00
Nico Pietroni
5445d99402
several major modifications
2012-05-25 13:21:11 +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
cb3fc0dbe2
corrected harmless gcc warnings
2012-05-06 16:01:14 +00:00
Paolo Cignoni
0c16045423
corrected harmless gcc warnings
2012-05-06 15:36:02 +00:00
Paolo Cignoni
64d7f31279
corrected bug in the face laplacian normal smoothing
2012-05-06 15:31:07 +00:00
Paolo Cignoni
37759ffcb0
sligthly better comments
2012-05-06 14:42:04 +00:00
Paolo Cignoni
05195b6201
in the functions for creating meshes: corrected bug in the OrientedRect and changed the interface of the grid to allow the creation of a flag grid
2012-05-06 14:22:29 +00:00
Paolo Cignoni
0cad100f9d
corrected harmless gcc warnings
2012-05-06 14:20:34 +00:00
Paolo Cignoni
486475d4a3
added another assert to histogram to avoid trash result...
2012-05-05 14:55:50 +00:00
Paolo Cignoni
7537b20933
Added a NormalizedDirection method
2012-05-05 14:54:45 +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
Paolo Cignoni
4c44513d4f
corrected bug in the UpdateTopology::EdgeEdge function: it touched a vector element beyond .end()
2012-04-22 09:01:04 +00:00
Paolo Cignoni
39df21640a
Updated to reflect the change from ColorRamp -> SetColorRamp
2012-04-18 21:19:11 +00:00
Paolo Cignoni
8eb94a7f9d
Changed ColorRamp non static method into a static one (that constructs a Color4b object) and added a more uniform SetColorRamp method.
2012-04-18 21:17:04 +00:00
Paolo Cignoni
5f22a3f7b5
added a very simple function wrapper to get a poisson disk distribution over a mesh with just function call
2012-04-18 21:12:12 +00:00
Paolo Cignoni
508c733bd4
added a missing updateQuality::FaceFromVertex
2012-04-18 21:09:56 +00:00
Paolo Cignoni
ba507529c8
Modified intersectionPlaneQuality so that it also compute the per vertex normal according to the mesh...
2012-04-18 21:09:08 +00:00
Paolo Cignoni
ffdc2f2b28
Geodesic: Added possibility of saving also the implict tree of the shortest path. For each vertex you can give an attribute where the function will save the 'parent' e.g. the previous vertex in the shortest path to the closest source.
2012-04-12 23:54:23 +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
5aed57a364
Heavy restructuring of the append function. Now it is hopefully must more efficient.
...
Added a parameter for requesting the copy of the non trivial topology. (e.g. all the adjacency relations beyond FV and EV).
2012-04-04 10:11:46 +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
3811efacd8
removed useless include
2012-04-04 09:59:42 +00:00
Paolo Cignoni
059a2f220b
added EdgeCount method for counting selected edges
2012-04-04 09:59:10 +00:00
Paolo Cignoni
06d481f5de
standardized function names e used area function of vcg lib
2012-04-04 09:57:46 +00:00
Paolo Cignoni
783aef369b
added hn initialization in the trimesh constructor
2012-04-04 09:53:54 +00:00
msabbadin
7c3687b8db
corrected an assert in PrincipalDirections static method:
...
from assert(m.HasVFAdjency());
to assert(tri::HasPerFaceVFAdjacency(m) && tri::HasPerVertexVFAdjacency(m));
2012-04-02 14:42:56 +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
Paolo Cignoni
b43fffd46f
added a few security assert on deletion of simplexes that you are actually deleting objects that belongs to the given mesh
2012-03-30 23:43:04 +00:00
Paolo Cignoni
e3d0a6d0cb
added method for generating a random point into a triangle (it generate three random barycentric coords)
2012-03-30 23:42:04 +00:00
Nico Pietroni
a53447ab1c
added VFOrderedStarVF_FF function
2012-03-29 16:36:01 +00:00
Nico Pietroni
fe71126700
added TransformationMatrix function
2012-03-29 16:34:31 +00:00
Nico Pietroni
d5e7d551ba
clean up the code and used new per face component
2012-03-29 16:33:33 +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
Nico Pietroni
d4275a3597
added several functions
2012-03-16 13:48:18 +00:00
Nico Pietroni
d941439fbb
corrected several bugs and done several changes
2012-03-16 13:47:42 +00:00
Paolo Cignoni
57bd611892
added assert in the VFIterator to handle uninitialized topology.
2012-03-14 16:02:30 +00:00
Paolo Cignoni
c4e116a42a
Corrected a bug in the RemoveUnreferencedVertex. It considered only faces and removed vertices referenced by edges
2012-03-14 16:01: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
b57a747441
rewriting of the SegmentPointSquaredDistance, now it is much much much shorter.
2012-03-14 15:57:37 +00:00
Nico Pietroni
ad417602bd
added default constructor
2012-03-09 11:01:25 +00:00
Nico Pietroni
5e7f95f94a
major changes
2012-03-08 18:09:31 +00:00
Nico Pietroni
f97f54a89b
erased vertex manifold as prerequisite
2012-03-08 18:09:09 +00:00
Nico Pietroni
1aed2f16da
first release version.. need to be tested in several functions
2012-03-08 18:08:35 +00:00
Paolo Cignoni
add25e7bf0
added a missing std::
2012-02-27 07:06:26 +00:00
Paolo Cignoni
29fdad2622
Added constructor with seed to the Mersenne rnd generator
2012-02-27 06:58:17 +00:00
Paolo Cignoni
6983d4f6e9
Added a few comments...
2012-02-25 14:40:23 +00:00
Paolo Cignoni
bc57fc36b4
Moved here and cleaned the kdtree for points implemented by Gael
2012-02-22 16:57:44 +00:00
Luigi Malomo
01453b8b0e
Fixed a call to InterpolationParameters. A Point3 reference must be provided for barycentric coordinates output, instead of 3 separate scalars.
2012-02-14 12:13:38 +00:00
Luigi Malomo
f358db54fd
Added a quick check for callback presence (avoid crash if cb function is not provided)
2012-02-14 12:02:43 +00:00
Paolo Cignoni
1def190868
harmless gcc warnings
2012-02-09 17:55:41 +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
d331cf7f60
Added OrientedDisk creation method. and a missing "clear()"
2012-02-09 17:50:38 +00:00
Paolo Cignoni
790cf5d7ef
Added a second function to compute the distance between a point and a box, according to the fact that you need the distance between the surface of a box or the distance from the filled box (e.g. the distance is 0 inside the box)
2012-02-09 17:30:54 +00:00
Paolo Cignoni
86f636b64b
Added function to add a point with radius to a bbox.
2012-02-09 17:24:23 +00:00
Nico Pietroni
69508353bb
resolved minor compilation issues
2012-02-09 14:02:34 +00:00
Paolo Cignoni
c90b11ca80
Changed all the MeshType::HasSomething() into the now standard tri::HasSomething(MeshType &m)
...
This changed implied the fact that you need different functor constructor (you have to keep the mesh inside it to know at runtime if some attribute are present or not)
2012-01-25 10:23:22 +00:00
Nico Pietroni
fc7983d3fd
added HasPolyInfo function, line 538
2012-01-24 13:34:46 +00:00
Nico Pietroni
5ad96544bb
added several functions...
2012-01-23 13:09:38 +00:00
Paolo Cignoni
b10ed11bc0
Added two functions to build disk, rectangles and squares (oriented in space).
...
Changed the reflection functions as usual
2012-01-23 07:07:19 +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
48e607f884
Changed all the MeshType::HasSomething() into the now standard tri::HasSomething(MeshType &m)
2012-01-23 06:38:32 +00:00
Paolo Cignoni
4bdf843589
Changed all the MeshType::HasSomething() into the now standard tri::HasSomething(MeshType &m)
2012-01-20 08:03:25 +00:00
Paolo Cignoni
6094438b4b
Changed all the MeshType::HasSomething() into the now standard tri::HasSomething(MeshType &m)
2012-01-20 07:58:43 +00:00