Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'source/blender/freestyle/intern/view_map/Functions0D.cpp')
-rwxr-xr-xsource/blender/freestyle/intern/view_map/Functions0D.cpp87
1 files changed, 48 insertions, 39 deletions
diff --git a/source/blender/freestyle/intern/view_map/Functions0D.cpp b/source/blender/freestyle/intern/view_map/Functions0D.cpp
index 1bd6d6f46f1..d6b820e3b18 100755
--- a/source/blender/freestyle/intern/view_map/Functions0D.cpp
+++ b/source/blender/freestyle/intern/view_map/Functions0D.cpp
@@ -146,7 +146,7 @@ namespace Functions0D {
}
//
- Vec2f VertexOrientation2DF0D::operator()(Interface0DIterator& iter) {
+ int VertexOrientation2DF0D::operator()(Interface0DIterator& iter) {
Vec2f A,C;
Vec2f B(iter->getProjectedX(), iter->getProjectedY());
if(iter.isBegin())
@@ -170,13 +170,13 @@ namespace Functions0D {
Vec2f BC(C-B);
if(BC.norm() != 0)
BC.normalize();
- Vec2f res (AB + BC);
- if(res.norm() != 0)
- res.normalize();
- return res;
+ result = AB + BC;
+ if(result.norm() != 0)
+ result.normalize();
+ return 0;
}
- Vec3f VertexOrientation3DF0D::operator()(Interface0DIterator& iter) {
+ int VertexOrientation3DF0D::operator()(Interface0DIterator& iter) {
Vec3r A,C;
Vec3r B(iter->getX(), iter->getY(), iter->getZ());
if(iter.isBegin())
@@ -200,13 +200,13 @@ namespace Functions0D {
Vec3r BC(C-B);
if(BC.norm() != 0)
BC.normalize();
- Vec3f res (AB + BC);
- if(res.norm() != 0)
- res.normalize();
- return res;
+ result = AB + BC;
+ if(result.norm() != 0)
+ result.normalize();
+ return 0;
}
- real Curvature2DAngleF0D::operator()(Interface0DIterator& iter) {
+ int Curvature2DAngleF0D::operator()(Interface0DIterator& iter) {
Interface0DIterator tmp1 = iter, tmp2 = iter;
++tmp2;
unsigned count = 1;
@@ -220,8 +220,11 @@ namespace Functions0D {
++tmp2;
++count;
}
- if(count < 3)
- return 0; // if we only have 2 vertices
+ if(count < 3) {
+ // if we only have 2 vertices
+ result = 0;
+ return -1;
+ }
Interface0DIterator v = iter;
if(iter.isBegin())
@@ -250,29 +253,30 @@ namespace Functions0D {
if((N1.norm() == 0) && (N2.norm() == 0))
{
Exception::raiseException();
- return 0;
+ result = 0;
+ return -1;
}
double cosin = N1*N2;
if(cosin > 1)
cosin = 1;
if(cosin < -1)
cosin = -1;
- return acos(cosin);
+ result = acos(cosin);
+ return 0;
}
- real ZDiscontinuityF0D::operator()(Interface0DIterator& iter) {
+ int ZDiscontinuityF0D::operator()(Interface0DIterator& iter) {
FEdge *fe1, *fe2;
getFEdges(iter, fe1, fe2);
- real result ;
result = fe1->z_discontinuity();
if(fe2!=0){
result += fe2->z_discontinuity();
result /= 2.f;
}
- return result;
+ return 0;
}
- Vec2f Normal2DF0D::operator()(Interface0DIterator& iter) {
+ int Normal2DF0D::operator()(Interface0DIterator& iter) {
FEdge *fe1, *fe2;
getFEdges(iter,fe1,fe2);
Vec3f e1(fe1->orientation2d());
@@ -285,31 +289,32 @@ namespace Functions0D {
n += n2;
}
n.normalize();
- return n;
+ result = n;
+ return 0;
}
- FrsMaterial MaterialF0D::operator()(Interface0DIterator& iter) {
+ int MaterialF0D::operator()(Interface0DIterator& iter) {
FEdge *fe1, *fe2;
getFEdges(iter,fe1,fe2);
if(fe1 == 0)
getFEdges(iter, fe1, fe2);
- FrsMaterial mat;
if(fe1->isSmooth())
- mat = ((FEdgeSmooth*)fe1)->frs_material();
+ result = ((FEdgeSmooth*)fe1)->frs_material();
else
- mat = ((FEdgeSharp*)fe1)->bFrsMaterial();
+ result = ((FEdgeSharp*)fe1)->bFrsMaterial();
// const SShape * sshape = getShapeF0D(iter);
// return sshape->material();
- return mat;
+ return 0;
}
- Id ShapeIdF0D::operator()(Interface0DIterator& iter) {
+ int ShapeIdF0D::operator()(Interface0DIterator& iter) {
ViewShape * vshape = getShapeF0D(iter);
- return vshape->getId();
+ result = vshape->getId();
+ return 0;
}
- unsigned int QuantitativeInvisibilityF0D::operator()(Interface0DIterator& iter) {
+ int QuantitativeInvisibilityF0D::operator()(Interface0DIterator& iter) {
ViewEdge * ve1, *ve2;
getViewEdges(iter,ve1,ve2);
unsigned int qi1, qi2;
@@ -319,38 +324,42 @@ namespace Functions0D {
if(qi2!=qi1)
cout << "QuantitativeInvisibilityF0D: ambiguous evaluation for point " << iter->getId() << endl;
}
- return qi1;
+ result = qi1;
+ return 0;
}
- Nature::EdgeNature CurveNatureF0D::operator()(Interface0DIterator& iter) {
+ int CurveNatureF0D::operator()(Interface0DIterator& iter) {
Nature::EdgeNature nat = 0;
ViewEdge * ve1, *ve2;
getViewEdges(iter, ve1, ve2);
nat |= ve1->getNature();
if(ve2!=0)
nat |= ve2->getNature();
- return nat;
+ result = nat;
+ return 0;
}
- vector<ViewShape*> GetOccludersF0D::operator()(Interface0DIterator& iter) {
+ int GetOccludersF0D::operator()(Interface0DIterator& iter) {
set<ViewShape*> occluders;
getOccludersF0D(iter,occluders);
- vector<ViewShape*> vsOccluders;
+ result.clear();
// vsOccluders.insert(vsOccluders.begin(), occluders.begin(), occluders.end());
for(set<ViewShape*>::iterator it=occluders.begin(), itend=occluders.end();
it!=itend;
++it){
- vsOccluders.push_back((*it));
+ result.push_back((*it));
}
- return vsOccluders;
+ return 0;
}
- ViewShape* GetShapeF0D::operator()(Interface0DIterator& iter) {
- return getShapeF0D(iter);
+ int GetShapeF0D::operator()(Interface0DIterator& iter) {
+ result = getShapeF0D(iter);
+ return 0;
}
- ViewShape* GetOccludeeF0D::operator()(Interface0DIterator& iter) {
- return getOccludeeF0D(iter);
+ int GetOccludeeF0D::operator()(Interface0DIterator& iter) {
+ result = getOccludeeF0D(iter);
+ return 0;
}
} // end of namespace Functions0D