Example #1
0
const AABB& Node::worldAABB() const {
	evaluateBounds();
	return _bounds;
}
Example #2
0
returnValue Constraint::evaluate( const OCPiterate& iter ) {


    if( grid.getNumPoints() == 0 ) return ACADOERROR(RET_MEMBER_NOT_INITIALISED);

    uint run1;
    returnValue returnvalue;


    // EVALUATE BOUNDARY CONSTRAINS:
    // -----------------------------

    if( boundary_constraint->getNC() != 0 ) {
        returnvalue = boundary_constraint->init( iter );
        if( returnvalue != SUCCESSFUL_RETURN ) return ACADOERROR(returnvalue);
        returnvalue = boundary_constraint->evaluate( iter );
        if( returnvalue != SUCCESSFUL_RETURN ) return ACADOERROR(returnvalue);
    }


    // EVALUATE COUPLED PATH CONSTRAINS:
    // ---------------------------------

    if( coupled_path_constraint->getNC() != 0 ) {
        returnvalue = coupled_path_constraint->init( iter );
        if( returnvalue != SUCCESSFUL_RETURN ) return ACADOERROR(returnvalue);
        returnvalue = coupled_path_constraint->evaluate( iter );
        if( returnvalue != SUCCESSFUL_RETURN ) return ACADOERROR(returnvalue);
    }


    // EVALUATE PATH CONSTRAINS:
    // -------------------------

    if( path_constraint->getNC() != 0 ) {
        returnvalue = path_constraint->init( iter );
        if( returnvalue != SUCCESSFUL_RETURN ) return ACADOERROR(returnvalue);
        returnvalue = path_constraint->evaluate( iter );
        if( returnvalue != SUCCESSFUL_RETURN ) return ACADOERROR(returnvalue);
    }


    // EVALUATE ALGEBRAIC CONSISTENCY CONSTRAINS:
    // ------------------------------------------

    if( algebraic_consistency_constraint->getNC() != 0 ) {
        returnvalue = algebraic_consistency_constraint->init( iter );
        if( returnvalue != SUCCESSFUL_RETURN ) return ACADOERROR(returnvalue);
        returnvalue = algebraic_consistency_constraint->evaluate( iter );
        if( returnvalue != SUCCESSFUL_RETURN ) return ACADOERROR(returnvalue);
    }


    // EVALUATE POINT CONSTRAINS:
    // --------------------------

    if( point_constraints != 0 ) {
        for( run1 = 0; run1 < grid.getNumPoints(); run1++ ) {
            if( point_constraints[run1] != 0 ) {
                returnvalue = point_constraints[run1]->init( iter );
                if( returnvalue != SUCCESSFUL_RETURN ) return ACADOERROR(returnvalue);
                returnvalue = point_constraints[run1]->evaluate( iter );
                if( returnvalue != SUCCESSFUL_RETURN ) return ACADOERROR(returnvalue);
            }
        }
    }


    // EVALUATE BOUNDS:
    // ----------------

    return evaluateBounds( iter );
}