const



  • Hey ich hab n problem meinen geschriebenen Code const zu machen.
    Hab bei const nicht so den durchblick...

    bool checkForSimple(const std::vector<std::vector<Segment<T> > > polyLine)
    {
    	for(std::vector<std::vector<Segment<T> > >::iterator const iter1 = polyLine.begin(); iter1 != polyLine.end();iter1++)
    	{
    		for( std::vector<Segment<T> >::iterator iterAussenS = (*iter1).begin();iterAussenS != (*iter1).end() ;iterAussenS++)
    		{
    			for( std::vector<Segment<T> >::iterator iterInnenS = (*iter1).begin()+1;iterInnenS != (*iter1).end()-1 ;iterInnenS++)
    			{	
    				bool intersection = true;
    
    				//contiguous segments are not examined
    				if( (*iterAussenS).getPoint1() == (*iterInnenS).getPoint1() || (*iterAussenS).getPoint1() == (*iterInnenS).getPoint2()||
    					(*iterAussenS).getPoint2() == (*iterInnenS).getPoint1() || (*iterAussenS).getPoint2() == (*iterInnenS).getPoint2())
    				{	}
    				else 
    				{
    					Line<T> l1 = Line<T>((*iterAussenS).getPoint1(), (*iterAussenS).getPoint2() - (*iterAussenS).getPoint1());
    					Line<T> l2 = Line<T>((*iterInnenS).getPoint1(),  (*iterInnenS).getPoint2() - (*iterInnenS).getPoint1());
    
    					Vector3<T> resultIntersect;
    					resultIntersect.zero();
    
    					// check whether the intersection is at the segment
    					intersection = getIntersectionLineLine(l1, l2, &resultIntersect);
    					intersection = intersectionOnTheEdge((*iterAussenS),resultIntersect,intersection);
    					intersection = intersectionOnTheEdge((*iterInnenS),resultIntersect, intersection);
    
    					if(intersection)
    						return false;
    				}
    			}
    		}
    	}
    	return true;
    }
    

    Danke schonmal.



  • erklär lieber mal was du machen willst, so wird dir keiner helfen (können)

    greetz KN4CK3R



  • Mach doch aus jeder Schleife ne Funktion, dann versteht man deinen Code auch und Fehler sind leichter zu lokalisieren.



  • KN4CK3R schrieb:

    erklär lieber mal was du machen willst, so wird dir keiner helfen (können)

    greetz KN4CK3R

    eig. möchte ich aus

    Segment<T> > > polyLine
    
    const Segment<T> > > polyLine
    

    werden.



  • 82kolu schrieb:

    KN4CK3R schrieb:

    erklär lieber mal was du machen willst, so wird dir keiner helfen (können)

    greetz KN4CK3R

    eig. möchte ich aus

    Segment<T> > > polyLine
    
    const Segment<T> > > polyLine
    

    werden.

    Du willst bestimmte nicht container<T>::iterator const i sondern container<T>::const_iterator i .
    Das erste ist ein konstanter Iterator (er zeigt immer auf das selbe Objekt) bei dem Du aber die Daten dahinter ändern kannst.
    Das zweite ist ein änderbarer Iterator (er darf auf verschiedene Sachen zeigen), jedoch darf das, worauf er zeigt nicht verändert werden.



  • 82kolu schrieb:

    KN4CK3R schrieb:

    erklär lieber mal was du machen willst, so wird dir keiner helfen (können)

    greetz KN4CK3R

    eig. möchte ich aus

    Segment<T> > > polyLine
    
    const Segment<T> > > polyLine
    

    werden.

    1. wieso?
    2. was soll die funktion noch machen?

    bb


Anmelden zum Antworten