//---------------------------------------------------------------------------- void EditMap::CreateSphere (PX2::APoint pos) { PX2::Texture2D *tex = DynamicCast<PX2::Texture2D>( ResourceManager::GetSingleton().BlockLoad("ToolRes/images/default.png")); if (!tex) return; StandardMesh stdMesh(mVertexFormat); TriMesh *mesh = stdMesh.Sphere(16, 16, 1); mesh->SetName("NoName"); Texture2DMaterialPtr material = new0 Texture2DMaterial; mesh->SetMaterialInstance(material->CreateInstance(tex)); ActorPtr actor = new0 Actor(); actor->SetName("NoName"); actor->SetMovable(mesh); actor->SetPosition(pos); actor->ComeInToEventWorld(); AddActor(actor); Event *event = 0; event = EditorEventSpace::CreateEventX (EditorEventSpace::AddActor); event->SetData<Actor*>(actor); EventWorld::GetSingleton().BroadcastingLocalEvent(event); ActorAddDeleteCommand *command = new0 ActorAddDeleteCommand(actor); EditSystem::GetSingleton().GetCM()->PushUnDo(command); }
//---------------------------------------------------------------------------- void EditMap::CreateSphere (PX2::APoint pos) { PX2::Texture2D *tex = DynamicCast<PX2::Texture2D>( ResourceManager::GetSingleton().BlockLoad("ToolRes/images/default.png")); if (!tex) return; StandardMesh stdMesh(mVertexFormat); TriMesh *mesh = stdMesh.Sphere(16, 16, 1); mesh->SetName("NoName"); //Texture2DMaterialPtr material = new0 Texture2DMaterial; //mesh->SetMaterialInstance(material->CreateInstance(tex)); StandardESMaterial_DefaultPtr mtl = new0 StandardESMaterial_Default(); mesh->SetMaterialInstance(mtl->CreateInstance(tex, 0 ,0)); ActorPtr actor = new0 Actor(); actor->SetName("NoName"); actor->SetMovable(mesh); actor->SetPosition(pos); actor->ComeInToEventWorld(); AddActor(actor); ActorAddDeleteCommand *command = new0 ActorAddDeleteCommand(actor); EditSystem::GetSingleton().GetCM()->PushUnDo(command); }
ActorPtr ModelActorFactory::RecurseNew(ModelDataPtr modelData, Dali::Entity entity) { ActorPtr actorPtr; if(entity.HasMeshes()) { actorPtr = Internal::MeshActor::New(modelData, entity); } else { // Root with no mesh, or bone/joint actor (with no mesh) actorPtr = Internal::Actor::New(); actorPtr->SetName(entity.GetName()); Matrix transform(entity.GetTransformMatrix()); Vector3 position; Quaternion rotation; Vector3 scale; transform.GetTransformComponents(position, rotation, scale); actorPtr->SetPosition(position); actorPtr->SetRotation(rotation); actorPtr->SetScale(scale); } actorPtr->SetParentOrigin(ParentOrigin::CENTER); actorPtr->SetAnchorPoint(AnchorPoint::CENTER); if (entity.HasChildren()) { for (EntityConstIter iter = entity.GetChildren().begin(); iter != entity.GetChildren().end(); ++iter) { Dali::Entity childEntity = (*iter); ActorPtr child = RecurseNew(modelData, childEntity); actorPtr->Add(*child.Get()); } } return actorPtr; }