public static function add($object) { // NODE 1 $node1 = new \Classes\Instance\Node\Node(); $node1->setProperty('x', $object->getProperty('x1')); $node1->setProperty('y', $object->getProperty('y1')); $node1->setProperty('z', $object->getProperty('z1')); // NODE 2 $node2 = new \Classes\Instance\Node\Node(); $node2->setProperty('x', $object->getProperty('x2')); $node2->setProperty('y', $object->getProperty('y2')); $node2->setProperty('z', $object->getProperty('z2')); // MEMBER $member = new \Classes\Instance\Member\Member(); $member->setProperty('betaAngle', $object->getProperty('betaAngle')); $member->setProperty('isDivided', $object->getProperty('isDivided')); $member->setProperty('name', $object->getProperty('name')); // SECTION $sectionString = NULL; if (\Classes\Utils\Section\Steel\SectionType::steelProfile($sectionString, $object->getProperty('sectionType')->get(), $object->getProperty('sectionName')->get())) { $section = new \Classes\Value\StringValue($sectionString); // var_dump($sectionString); $member->setProperty('section', $section); } // ADD TO MODEL \Classes\Factory\Model\Model::addInstance($node1); \Classes\Factory\Model\Model::addInstance($node2); \Classes\Factory\Model\Model::addInstance($member); // PINS $pin1 = new \Classes\Factory\Connection\SixFreedomConnection\PinConnection($object->getProperty('pin1')->get()); $pin2 = new \Classes\Factory\Connection\SixFreedomConnection\PinConnection($object->getProperty('pin2')->get()); // ADD TO HASH TABLE $hashTable = \Classes\Factory\Model\Model::getHashTable(); $hashTable->setConnection($node1->getUin(), $member->getUin(), $pin1); $hashTable->setConnection($node2->getUin(), $member->getUin(), $pin2); // MAKE CHECK GROUP FOR STEEL MEMBER $group = new \Classes\Instance\Group\SteelMember\SteelMemberCheckGroup(); $group->setProperty('steel', $object->getProperty('steel')); $group->setProperty('Ry', $object->getProperty('Ry')); $group->setProperty('muXZ', $object->getProperty('muXZ')); $group->setProperty('muXY', $object->getProperty('muXY')); $group->setProperty('gammaC', $object->getProperty('gammaC')); $group->setProperty('FC', $object->getProperty('FC')); $group->setProperty('name', $object->getProperty('name')); // CREATE LISTBOX $memberList = new \Classes\Listbox\Listbox(\Classes\Factory\Model\Model::getMemberActionCollection()); $memberList->add($member->getUin()); // ADD LISTBOX TO GROUP $group->setProperty('listbox', $memberList); // ADD GROUP TO MODEL \Classes\Factory\Model\Model::addInstance($group); }
public static function divideMemberByNode($memberUin, $nodeUin) { // Get nodes and members $nodes = \Classes\Factory\Model\Model::getNodes(); $members = \Classes\Factory\Model\Model::getMembers(); $hashTable = \Classes\Factory\Model\Model::getHashTable(); // TODO isDivided //Check are node and member exist or not if (!isset($nodes[$nodeUin]) || !isset($members[$memberUin])) { return FALSE; } // Check if member is divided if ($members[$memberUin]->getProperty('isDivided')->get() == FALSE) { return FALSE; } // Get 2nd connection from oldMember $hash = $hashTable->getConnection($memberUin); $uin2 = array_keys($hash)[1]; $con2 = array_values($hash)[1]; // Create zero Pin connection $zeroPin = new \Classes\Factory\Connection\SixFreedomConnection\PinConnection(); // Remove 2nd connection from oldMember $hashTable->removeConnection($memberUin, $uin2); // Set 2nd connection to oldMember $hashTable->setConnection($memberUin, $nodeUin, $zeroPin); // Create newMember same as oldMember $newMember = clone $members[$memberUin]; // echo "<br/>"; // echo "DIVIDE MEMBER $memberUin<br/>"; // echo "BY NODE $nodeUin<br/>"; // echo "NEW MEMBER " . $newMember->getUin() . "<br/>"; // echo "<br/>"; //Add member to Model \Classes\Factory\Model\Model::addInstance($newMember); // Set 1st connection to newMember $hashTable->setConnection($newMember->getUin(), $nodeUin, $zeroPin); // Set 2nd connection to newMember $hashTable->setConnection($newMember->getUin(), $uin2, $con2); // Add information about operation in ListBoxCollection $actionCollection = \Classes\Factory\Model\Model::getMemberActionCollection(); $actionCollection->addAction(new \Classes\Listbox\Action\ReplaceListboxAction($memberUin, array($memberUin, $newMember->getUin()))); return $newMember->getUin(); }
<?php spl_autoload_extensions(".php"); spl_autoload_register(); $arrayA = array(1, 2, 3, 4, 5, 6, 7); $arrayB = array(4, 5, 6, 7, 8, 9, 10); $a = new \Classes\Listbox\Listbox(\Classes\Factory\Model\Model::getMemberActionCollection()); $b = new \Classes\Listbox\Listbox(\Classes\Factory\Model\Model::getMemberActionCollection()); foreach ($arrayA as $e) { $a->add($e); } foreach ($arrayB as $e) { $b->add($e); } $actionCollection = \Classes\Factory\Model\Model::getMemberActionCollection(); //CREATE ACTION $actionCollection->addAction(new \Classes\Listbox\Action\DeleteListboxAction(3)); //PRINT echo "A: (" . implode(",", $a->get()) . ")<br/>"; echo "B: (" . implode(",", $b->get()) . ")<br/>"; echo "<br/>"; //PRINT $actionCollection->servicePrint(); echo "<br/>"; //CREATE ACTION $actionCollection->addAction(new \Classes\Listbox\Action\ReplaceListboxAction(4, array(1, 9, 13, 15))); //PRINT echo "A: (" . implode(",", $a->get()) . ")<br/>"; echo "B: (" . implode(",", $b->get()) . ")<br/>"; echo "<br/>"; //CREATE ACTION