示例#1
0
    void createLeg( const dWorldID & _world ){
        // read leg parameters there 
        lower_part.mass = 0.5;
        lower_part.radius = 0.1;
        lower_part.length = 0.5;

        dReal lower_part_pos[3] =  {0.0, 0.0, lower_part.length};

        upper_part.mass = 0.5;
        upper_part.radius = 0.1;
        upper_part.length = 0.5;

        dReal upper_part_pos[3] =  {0.0, 0.0, upper_part.length + lower_part.length};

        createPart(_world,lower_part, lower_part_pos);
        createPart(_world,upper_part, upper_part_pos);

        jointHinge = dJointCreateHinge(_world, 0); // Create a hinge joint
        dJointAttach(jointHinge, lower_part.body, upper_part.body ); // Attach the joint
        dJointSetHingeAnchor(jointHinge, 1.0,0.0,0.0);//anchor_x[j], anchor_y[j],anchor_z[j]);
    }
KParts::Part* PartController::createPart( const KUrl & url, const QString& preferredPart )
{
    kDebug() << "creating part with url" << url << "and pref part:" << preferredPart;
    QString mimeType;
    if ( url.isEmpty() )
        //create a part for empty text file
        mimeType = QString::fromLatin1("text/plain");
    else if ( !url.isValid() )
        return 0;
    else
        mimeType = KMimeType::findByUrl( url )->name();

    KParts::Part* part = createPart( mimeType, preferredPart );
    if( part )
    {
        readOnly( part ) ->openUrl( url );
        return part;
    }

    return 0;
}
    void addPart(const char *partname, const char *xml, unsigned updateFlags, StringArray &filesNotFound)
    {
        init();

        if (!pmExisting)
        {
            doCreate(partname, xml, updateFlags, filesNotFound);
            return;
        }

        createPart(partname, xml);

        VStringBuffer xpath("Part[@id='%s']", partname);
        IPropertyTree *existingPart = pmExisting->queryPropTree(xpath);
        if (existingPart && !checkFlag(PKGADD_SEG_REPLACE))
            throw MakeStringException(PKG_NAME_EXISTS, "Package Part %s already exists, remove, or specify 'delete previous'", partname);

        cloneDfsInfo(updateFlags, filesNotFound);

        if (existingPart)
            pmExisting->removeTree(existingPart);

        pmExisting->addPropTree("Part", pmPart.getClear());
    }