Changeset 1274


Ignore:
Timestamp:
09/09/23 15:12:57 (16 months ago)
Author:
Maciej Komosinski
Message:

Cosmetic

Files:
6 edited

Legend:

Unmodified
Added
Removed
  • cpp/common/2d.h

    r1130 r1274  
    11// This file is a part of Framsticks SDK.  http://www.framsticks.com/
    2 // Copyright (C) 1999-2021  Maciej Komosinski and Szymon Ulatowski.
     2// Copyright (C) 1999-2023  Maciej Komosinski and Szymon Ulatowski.
    33// See LICENSE.txt for details.
    44
     
    99#include <algorithm>
    1010
    11 //unification of old GUIXY and Pt2D
    1211template <typename T> class XY
    1312{
     
    174173        }
    175174
     175        XYRect fillAspect(float aspect)
     176        {
     177                XYRect r;
     178                r.size = size;
     179                if (size.x < size.y * aspect)
     180                        r.size.x = r.size.y * aspect;
     181                else
     182                        r.size.y = r.size.x / aspect;
     183                r.p = p + (size - r.size) * 0.5;
     184                return r;
     185        }
     186       
    176187        XYRect intersection(const XYRect &r) const
    177188        {
  • cpp/common/Convert.cpp

    r1130 r1274  
    155155        wstring wstr;
    156156        int nOffset = 0;
    157         int nDataLen = strlen(str); //ending \0 is not converted, but resize() below sets the proper length of wstr
     157        int nDataLen = (int)strlen(str); //ending \0 is not converted, but resize() below sets the proper length of wstr
    158158        int nLenWide = MultiByteToWideChar(CP_UTF8, 0, (LPCSTR)(str + nOffset),
    159159                (int)(nDataLen - nOffset), NULL, 0);
  • cpp/frams/genetics/f4/f4_conv.cpp

    r1259 r1274  
    247247        {
    248248                const char* nclass = C->neuclass->name.c_str();
    249                 if (C->neuclass->getPreferredLocation() == 0)
     249                switch (C->neuclass->getPreferredLocation())
     250                {
     251                case NeuroClass::PrefLocation::PREFER_UNATTACHED:
    250252                {
    251253                        if (strcmp(nclass, "N") == 0) //special case just to specify the only neuron properties supported by f4, i.e., the properties for neuron class 'N'
     
    253255                        else
    254256                                sprintf(tmpLine, "d=\"%s\"", nclass);
    255                 }
    256                 else if (C->neuclass->getPreferredLocation() == 1) // attached to Part or have no required attachment - also part
     257                        break;
     258                }
     259                case NeuroClass::PrefLocation::PREFER_PART: // attach to Part
    257260                {
    258261                        int partno = C->dadlink->p2_refno;
     
    260263
    261264                        sprintf(tmpLine, "p=%d,d=\"%s\"", partno, nclass);
    262                 }
    263                 else // attached to Joint, assume there are only three possibilities of getPreferredLocation()
     265                        break;
     266                }
     267                case NeuroClass::PrefLocation::PREFER_JOINT: // attach to Joint
    264268                {
    265269                        int jointno = C->dadlink->joint_refno;
     
    273277                        else
    274278                                sprintf(tmpLine, "j=%d,d=\"%s\"", jointno, nclass);
     279                        break;
     280                }
    275281                }
    276282
  • cpp/frams/genetics/f4/f4_oper.cpp

    r1259 r1274  
    88
    99
    10 // This representation has a tendency to bloat - adding a small penalty to fitness such as "this.velocity - 0.000000001*String.len(this.genotype);"
    11 // may help, but it would be better to improve the source code to make genetic operators neutral in terms of genotype length. Adding such a penalty
    12 // removes "work in progress" changes in genotypes thus promoting immediate, straightforward improvements while hindering slower, multifaceted progress.
     10// This representation has a tendency to bloat - adding a small penalty to fitness such as "this.velocity - 0.000000001*String.len(this.genotype);" may help, but it would be better to improve the source code to make genetic operators neutral in terms of genotype length. Adding such a penalty removes "work in progress" changes in genotypes thus promoting immediate, straightforward improvements while hindering slower, multifaceted progress.
    1311// TODO getting rid of redundancy (valid genotypes with a lot of "junk code") in this representation looks like a good idea; many improvements to this end have already been done in April & May 2023, so maybe it is not a big problem now?
    14 // 
     12//
    1513//
    1614// TODO the behavior of neuron input indexes during mutation seems badly implemented (see also TREAT_BAD_CONNECTIONS_AS_INVALID_GENO). Are they kept properly maintained when nodes are added and removed? This could be done well because during mutation we operate on the tree structure with cross-references between nodes (so they should not be affected by local changes in the tree), and then convert the tree back to string. Yet, the f4_Node.conn_from is an integer and these fields in nodes do not seem to be maintained on tree node adding/removal... change these integer offsets to references to node objects? But actually, do the offsets that constitute relative connection references concern the f4_Node tree structure (and all these sophisticated calculations of offsets during mutation are useful) or rather they concern the f4_Cells development? verify all situations in f4_Cell::oneStep(), case '['.
  • cpp/frams/genetics/f9/f9_oper.cpp

    r1216 r1274  
    124124{
    125125        int len1 = (int)strlen(g1), len2 = (int)strlen(g2);
    126         int p1 = rndUint(len1);  //random cut point for first genotype
    127         int p2 = rndUint(len2);  //random cut point for second genotype
     126        int p1 = rndUint(len1);  //random cut point for the first genotype
     127        int p2 = rndUint(len2);  //random cut point for the second genotype
    128128        char *child1 = (char*)malloc(p1 + len2 - p2 + 1);
    129129        char *child2 = (char*)malloc(p2 + len1 - p1 + 1);
     
    147147                int pos = ptr - turtle_commands_f9;
    148148                int axis = pos / 2;
    149                 style = GENSTYLE_RGBS(axis == 0 ? 200 : 0, axis == 1 ? 200 : 0, axis == 2 ? 200 : 0, GENSTYLE_NONE);
     149                style = GENSTYLE_RGBS(axis == 0 ? 200 : 0, axis == 2 ? 200 : 0, axis == 1 ? 200 : 0, GENSTYLE_NONE);
    150150        }
    151151        return style;
  • framspy/eval-allcriteria.sim

    r1162 r1274  
    7575genoper_f0s:0
    7676genoper_f1:0
    77 genoper_f2:0
    78 genoper_f3:0
    7977genoper_f4:0
    8078genoper_f8:0
     
    183181f1_nmWei:1.0
    184182f1_nmVal:0.05
    185 f2_mutAddOper:0.4
    186 f2_mutJointElem:0.33
    187 f2_mutNeuroElem:0.33
    188 f2_mutConnElem:0.33
    189 f2_mutDelOper:0.1
    190 f2_mutHandleOper:0.3
    191 f2_mutPropOper:0.2
    192 f3_mutSubstitution:0.6
    193 f3_mutSubstPerChar:0.1
    194 f3_mutDelIns:0.1
    195 f3_mutDelInsPerChar:0.05
    196 f3_mutDelInsLength:5
    197 f3_mutDuplication:0.05
    198 f3_mutTranslocation:0.15
    199 f3_xovGeneTransfer:0.8
    200 f3_xovCrossingOver:0.2
    201183f4_mut_add:50.0
    202184f4_mut_add_div:20.0
Note: See TracChangeset for help on using the changeset viewer.