Merge branch 'devel' of https://github.com/cnr-isti-vclab/vcglib into devel
This commit is contained in:
commit
16694a31cf
|
@ -666,7 +666,7 @@ public:
|
|||
CoordType dirR=vcg::tri::CrossField<MeshType>::Rotate(f0,f1,dir0);
|
||||
///then get the closest upf to K*PI/2 rotations
|
||||
CoordType dir1=f1.cPD1();
|
||||
CoordType ret=vcg::tri::CrossField<MeshType>::K_PI(dirR,dir1,f1.cN());
|
||||
CoordType ret=vcg::tri::CrossField<MeshType>::K_PI(dir1,dirR,f1.cN());
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
|
|
@ -368,7 +368,6 @@ Note: The faux bit is used to color polygonal faces uniformly
|
|||
}
|
||||
|
||||
/*! \brief Perlin Noise.
|
||||
\return the number of changed vertexes (the selected ones)
|
||||
|
||||
Simple Perlin noise. To make things weirder each color band can have its own offset and frequency.
|
||||
Period is expressed in absolute terms.
|
||||
|
@ -396,6 +395,34 @@ static void PerVertexPerlinNoise(MeshType& m, CoordType period, CoordType offset
|
|||
|
||||
}
|
||||
|
||||
|
||||
/*! \brief Perlin Color mixing.
|
||||
|
||||
Simple Perlin color mixing. Color 1 and 2 are mixed according the perlin noise function, with period and offset.
|
||||
*/
|
||||
static void PerVertexPerlinColoring(MeshType& m, ScalarType period, CoordType offset = CoordType(0, 0, 0), Color4b color1 = Color4b::Black, Color4b color2 = Color4b::White, bool onSelected = false)
|
||||
{
|
||||
RequirePerVertexColor(m);
|
||||
|
||||
CoordType p;
|
||||
|
||||
for (VertexIterator vi = m.vert.begin(); vi != m.vert.end(); ++vi)
|
||||
if (!(*vi).IsD())
|
||||
if ((!onSelected) || ((*vi).IsS()))
|
||||
{
|
||||
// perlin noise is defined in 022
|
||||
p = (vi->P() / period) + offset;
|
||||
double factor = (math::Perlin::Noise(p[0], p[1], p[2]) + 1.0) / 2.0;
|
||||
|
||||
int rr = (color1[0] * factor) + (color2[0] * (1.0 - factor));
|
||||
int gg = (color1[1] * factor) + (color2[1] * (1.0 - factor));
|
||||
int bb = (color1[2] * factor) + (color2[2] * (1.0 - factor));
|
||||
int aa = (color1[3] * factor) + (color2[3] * (1.0 - factor));
|
||||
|
||||
(*vi).C() = Color4b(rr, gg, bb, aa);
|
||||
}
|
||||
}
|
||||
|
||||
/*! \brief Simple Noise adding function.
|
||||
It simply add signed noise to the color of the mesh. The noise has uniform distribution and the amplitude is +/-2^(noisebits-1).
|
||||
*/
|
||||
|
|
|
@ -57,7 +57,7 @@ inline bool IsEdgeBorder(EdgeType const & e, const int j )
|
|||
}
|
||||
|
||||
template <class VertexType>
|
||||
void VVStarVE(VertexType* vp, std::vector<VertexType *> &starVec)
|
||||
void VVStarVE(const VertexType* vp, std::vector<VertexType *> &starVec)
|
||||
{
|
||||
starVec.clear();
|
||||
edge::VEIterator<typename VertexType::EdgeType> vei(vp);
|
||||
|
|
|
@ -1561,12 +1561,12 @@ namespace vcg
|
|||
}
|
||||
|
||||
glEnable(GL_COLOR_MATERIAL);
|
||||
if ((isgloptsvalid) && ((glopts->_perpoint_fixed_color_enabled) || (glopts->_perpoint_mesh_color_enabled)))
|
||||
if ((isgloptsvalid) && ((glopts->_perpoint_fixed_color_enabled) || (glopts->_perpoint_mesh_color_enabled))){
|
||||
if (glopts->_perpoint_fixed_color_enabled)
|
||||
glColor(glopts->_perpoint_fixed_color);
|
||||
else
|
||||
glColor(_mesh.C());
|
||||
|
||||
}
|
||||
|
||||
if (req[INT_ATT_NAMES::ATT_VERTCOLOR])
|
||||
glColorMaterial(GL_FRONT_AND_BACK,GL_AMBIENT_AND_DIFFUSE);
|
||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -496,7 +496,7 @@ namespace nanoply
|
|||
for (int i = 0; i < faceDescr.dataDescriptor.size(); i++)
|
||||
if (faceDescr.dataDescriptor[i]->elem != NNP_UNKNOWN_ENTITY)
|
||||
delete faceDescr.dataDescriptor[i];
|
||||
|
||||
mesh.textures = info.textureFile;
|
||||
return info.errInfo;
|
||||
}
|
||||
|
||||
|
@ -687,6 +687,7 @@ namespace nanoply
|
|||
infoSave.AddPlyElement(vertexElem);
|
||||
infoSave.AddPlyElement(edgeElem);
|
||||
infoSave.AddPlyElement(faceElem);
|
||||
infoSave.textureFile = mesh.textures;
|
||||
std::vector<ElementDescriptor*> meshDescr;
|
||||
meshDescr.push_back(&cameraDescr);
|
||||
meshDescr.push_back(&vertexDescr);
|
||||
|
|
Loading…
Reference in New Issue