Changeset 1286 for cpp


Ignore:
Timestamp:
12/06/23 03:29:15 (13 months ago)
Author:
Maciej Komosinski
Message:

Improved Model-building error messages; for some cases changed ERROR to WARNING because the Model is still considered invalid (and Simulator.creatwarnfail will still be effective), but ERROR messages would by default stop the simulation

File:
1 edited

Legend:

Unmodified
Added
Removed
  • cpp/frams/model/model.cpp

    r1280 r1286  
    11// This file is a part of Framsticks SDK.  http://www.framsticks.com/
    2 // Copyright (C) 1999-2020  Maciej Komosinski and Szymon Ulatowski.
     2// Copyright (C) 1999-2023  Maciej Komosinski and Szymon Ulatowski.
    33// See LICENSE.txt for details.
    44
     
    969969                                        {
    970970                                                ret = 0;
    971                                                 logPrintf("Model", "internalCheck", LOG_ERROR,
    972                                                         "Delta joint cycle detected at Joint #%d%s",
    973                                                         i, nameForErrors().c_str());
     971                                                logPrintf("Model", "internalCheck", LOG_WARN, "A cycle of \"delta Joints\" found at Joint #%d%s", i, nameForErrors().c_str());
    974972                                        }
    975973                                        j->resetDeltaMarkers();
     
    10061004                                                {
    10071005                                                        ret = 0;
    1008                                                         logPrintf("Model", "internalCheck", LOG_ERROR, "Joint #%d too long (its length %g exceeds allowed %g)%s", i, j->d(), getMaxJoint().d.x, nameForErrors().c_str());
     1006                                                        logPrintf("Model", "internalCheck", LOG_WARN, "Joint #%d too long (its length %g exceeds allowed %g)%s", i, j->d(), getMaxJoint().d.x, nameForErrors().c_str());
    10091007                                                }
    10101008                                                else if (j->d() < getMinJoint().d.x)
    10111009                                                {
    10121010                                                        ret = 0;
    1013                                                         logPrintf("Model", "internalCheck", LOG_ERROR, "Joint #%d too short (its length %g is below allowed %g)%s", i, j->d(), getMinJoint().d.x, nameForErrors().c_str());
     1011                                                        logPrintf("Model", "internalCheck", LOG_WARN, "Joint #%d too short (its length %g is below allowed %g)%s", i, j->d(), getMinJoint().d.x, nameForErrors().c_str());
    10141012                                                }
    10151013                                        }
     
    10181016                        else
    10191017                        {
    1020                                 logPrintf("Model", "internalCheck", LOG_ERROR, "Illegal part references in Joint #%d%s", i, nameForErrors().c_str());
    10211018                                ret = 0;
     1019                                logPrintf("Model", "internalCheck", LOG_WARN, "Illegal Part references in Joint #%d%s", i, nameForErrors().c_str());
    10221020                        }
    10231021                        if (shapetype != SHAPETYPE_ILLEGAL)
     
    10261024                                {
    10271025                                        shapetype = SHAPETYPE_ILLEGAL;
    1028                                         logPrintf("Model", "internalCheck", LOG_WARN, "Inconsistent joint shapes (mixed old and new shapes)%s", nameForErrors().c_str());
     1026                                        logPrintf("Model", "internalCheck", LOG_WARN, "Inconsistent Joint shapes (mixed ball-and-stick and solids shape types)%s", nameForErrors().c_str());
    10291027                                }
    10301028                        }
     
    10831081                                if (!(p->flags & LINKFLAG))
    10841082                                {
    1085                                         logPrintf("Model", "internalCheck", LOG_ERROR, "Not all parts connected (eg. Part #0 and Part #%d)%s", i, nameForErrors().c_str());
    10861083                                        ret = 0;
     1084                                        logPrintf("Model", "internalCheck", LOG_WARN, "Not all Parts connected (e.g., Part #0 and Part #%d)%s", i, nameForErrors().c_str());
    10871085                                        break;
    10881086                                }
     
    10951093                        if (j->p1_refno == j->p2_refno)
    10961094                        {
    1097                                 logPrintf("Model", "internalCheck", LOG_ERROR, "Illegal self connection, Joint #%d%s", i, nameForErrors().c_str());
    10981095                                ret = 0;
     1096                                logPrintf("Model", "internalCheck", LOG_WARN, "Part #%d connected to itself using Joint #%d%s", j->p1_refno, i, nameForErrors().c_str());
    10991097                                break;
    11001098                        }
     
    11051103                                        || ((j->p1_refno == j2->p2_refno) && (j->p2_refno == j2->p1_refno)))
    11061104                                {
    1107                                         logPrintf("Model", "internalCheck", LOG_ERROR, "Illegal duplicate Joint #%d and Joint #%d%s", i, k, nameForErrors().c_str());
    11081105                                        ret = 0;
     1106                                        logPrintf("Model", "internalCheck", LOG_WARN, "Two parallel Joints connect the same Parts: Joint #%d and Joint #%d%s", i, k, nameForErrors().c_str());
    11091107                                        break;
    11101108                                }
     
    11171115        else if ((declared_shapetype != SHAPETYPE_UNKNOWN) && (declared_shapetype != shapetype))
    11181116        {
    1119                 logPrintf("Model", "internalCheck", LOG_ERROR, "Model shape type '%s' does not match the declared type '%s'", getShapeTypeName(shapetype), getShapeTypeName(declared_shapetype));
    11201117                ret = 0;
     1118                logPrintf("Model", "internalCheck", LOG_WARN, "Model shape type '%s' does not match the declared type '%s'", getShapeTypeName(shapetype), getShapeTypeName(declared_shapetype));
    11211119        }
    11221120
Note: See TracChangeset for help on using the changeset viewer.