Exemplo n.º 1
0
void dtInspectorQt::LightView::OnSpecularColorChooserClicked()
{
   QColor initialColor(mUI->lightSpecRedEdit->value() * 255,
      mUI->lightSpecGreenEdit->value() * 255, mUI->lightSpecBlueEdit->value() * 255);
   QColor newColor = QColorDialog::getColor(initialColor, mUI->lightSpecPushbutton);
   if (newColor.isValid())
   {
      mUI->lightSpecRedEdit->setValue(newColor.redF());
      mUI->lightSpecGreenEdit->setValue(newColor.greenF());
      mUI->lightSpecBlueEdit->setValue(newColor.blueF());
   }
}
Exemplo n.º 2
0
void dtInspectorQt::EnvironmentView::OnFogColorPickerClicked()
{
   QColor initialColor(mUI->envFogRedEdit->value() * 255,
      mUI->envFogGreenEdit->value() * 255, mUI->envFogBlueEdit->value() * 255);
   QColor newColor = QColorDialog::getColor(initialColor, mUI->envFogColorButton);
   if (newColor.isValid())
   {
      mUI->envFogRedEdit->setValue(newColor.redF());
      mUI->envFogGreenEdit->setValue(newColor.greenF());
      mUI->envFogBlueEdit->setValue(newColor.blueF());
   }
}
Exemplo n.º 3
0
void LodDistanceControl::SetDistances(float32 *newDistances, int32 newCount)
{
    Vector2 newSize = GetSize();
    newSize.y = (newCount + 1) * ControlsFactory::BUTTON_HEIGHT;
    SetSize(newSize);
    
    ReleaseControls();
    
    if(1 < newCount)
    {
        count = newCount;
        Memcpy(distances, newDistances, count * sizeof(float32));
        
        zones = new UIControl*[count];
        
        maxDistance = (distances[count - 1] < LodNode::MAX_LOD_DISTANCE) 
                                        ? LodNode::MAX_LOD_DISTANCE 
                                        : (LodNode::MAX_LOD_DISTANCE * 1.1f);
        
        Rect fullRect = GetRect();
        
        Color initialColor(0.8f, 0.5f, 0.1f, 1.0f);
        
        for(int32 iZone = 0; iZone < count; ++iZone)
        {
            float32 x = (iZone) ? distances[iZone] : 0.f;
            float32 dx = (iZone != count - 1) ? (distances[iZone + 1] - x) : (maxDistance - distances[iZone]);

            x = x * fullRect.dx / maxDistance;
            dx = dx * fullRect.dx / maxDistance;
            
            
            zones[iZone] = new UIControl(Rect(x, 0, dx, ControlsFactory::BUTTON_HEIGHT));
            zones[iZone]->SetInputEnabled(false, false);
            zones[iZone]->GetBackground()->SetDrawType(UIControlBackground::DRAW_FILL);
            
            float32 color = distances[iZone] / maxDistance;
            
            Color zoneColor;
            zoneColor.r = initialColor.r + color;
            zoneColor.g = initialColor.g + color;
            zoneColor.b = initialColor.b + color;
            zoneColor.a = 1.0f;
            
            if(1.0f < zoneColor.r) zoneColor.r -= (int32)zoneColor.r;
            if(1.0f < zoneColor.g) zoneColor.g -= (int32)zoneColor.g;
            if(1.0f < zoneColor.b) zoneColor.b -= (int32)zoneColor.b;
            
            zones[iZone]->GetBackground()->SetColor(zoneColor);
            
            AddControl(zones[iZone]);
        }
        
        sliders = new UIControl*[count - 1];
        for(int32 iSlider = 0; iSlider < count - 1; ++iSlider)
        {
            float32 x = distances[iSlider + 1] / maxDistance * fullRect.dx;
            sliders[iSlider] = new UIControl(Rect(x - 1, 0, 3, ControlsFactory::BUTTON_HEIGHT));
            sliders[iSlider]->SetInputEnabled(false, false);
            sliders[iSlider]->GetBackground()->SetDrawType(UIControlBackground::DRAW_FILL);
            sliders[iSlider]->GetBackground()->SetColor(Color(1.0f, 0.0f, 0.0f, 1.0f));
            
            AddControl(sliders[iSlider]);
        }
    }
    
    for(int32 iDist = 0; iDist < LodNode::MAX_LOD_LAYERS; ++iDist)
    {
        RemoveControl(distanceText[iDist]);
        RemoveControl(distanceTextValues[iDist]);
        
        if(iDist < count)
        {
            AddControl(distanceText[iDist]);
            distanceText[iDist]->SetText(Format(L"Distance_%d:", iDist));

            AddControl(distanceTextValues[iDist]);
            distanceTextValues[iDist]->SetText(Format(L"%3.0f", distances[iDist]));
        }
    }
}