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()); }