//--------------------------------------------------------------------------------------------------
/// 
//--------------------------------------------------------------------------------------------------
void Rendering::renderOverlayItems(OpenGLContext* oglContext, bool useSoftwareRendering)
{
    OverlayItemRectMap itemRectMap;
    calculateOverlayItemLayout(&itemRectMap);
    
    // Must setup a scissor to limit the overlay items to the current viewport, as they might setup a local viewport (e.g. navigation cube)
    GLboolean scissorWasOn = glIsEnabled(GL_SCISSOR_TEST);
    int scissorBox[4] = {0, 0, -1, -1};
    glGetIntegerv(GL_SCISSOR_BOX, scissorBox);
    glScissor(static_cast<GLsizei>(m_camera->viewport()->x()), static_cast<GLsizei>(m_camera->viewport()->y()), static_cast<GLsizei>(m_camera->viewport()->width()), static_cast<GLsizei>(m_camera->viewport()->height()));
    glEnable(GL_SCISSOR_TEST);

    OverlayItemRectMap::iterator it;
    for (it = itemRectMap.begin(); it != itemRectMap.end(); ++it)
    {
        OverlayItem* item = it->first;
        Recti rect = it->second;

        if (useSoftwareRendering)
        {
            item->renderSoftware(oglContext, rect.min(), Vec2ui(static_cast<cvf::uint>(rect.width()), static_cast<cvf::uint>(rect.height())));
        }
        else
        {
            item->render(oglContext, rect.min(),  Vec2ui(static_cast<cvf::uint>(rect.width()), static_cast<cvf::uint>(rect.height())));
        }
    }

    // Restore scissor settings
    if (!scissorWasOn) glDisable(GL_SCISSOR_TEST);
    glScissor(scissorBox[0], scissorBox[1], scissorBox[2], scissorBox[3]); 
}
void make_box(Vec2f bottom_left, float height, float width, std::vector<Vec2f>& verts, std::vector<Vec2ui>& edges) {
   verts.clear();
   edges.clear();

   verts.push_back(bottom_left);
   verts.push_back(bottom_left+Vec2f(width,0));
   verts.push_back(bottom_left+Vec2f(width,height));
   verts.push_back(bottom_left+Vec2f(0,height));

   edges.push_back(Vec2ui(0,1));
   edges.push_back(Vec2ui(1,2));
   edges.push_back(Vec2ui(2,3));
   edges.push_back(Vec2ui(3,0));
}
Exemple #3
0
 const Vec2ui UIWidget::GetSize() const {
     if (uIControl != nullptr) {
         return uIControl->GetSize();
     } else {
         return Vec2ui(0);
     }
 }
Exemple #4
0
    std::vector<Vec2ui> *ParticleExtractor::exportParticlesFromImageToListAll(GPUMapped<Image> *inputImage)
    {
        auto *result = new std::vector<Vec2ui>();

        inputImage->ensureIsUpToDateOnCPU();

        Vec2ui size = inputImage->getResolution();
        float value;
        for( unsigned int j = 0; j < size.y; ++j )
        {
            for( unsigned int i = 0; i < size.x; ++i )
            {
                value = inputImage->getObjectOnCPU()->getPixel((int)i, (int)j);
                if( value > 0.0f )
                {
                    result->push_back(Vec2ui(i, j));
                }
            }
        }
        std::sort(result->begin(), result->end(), [&](const Vec2ui& left, const Vec2ui& right)
        {
            float lVal = inputImage->getObjectOnCPU()->getPixel(left.x, left.y);
            float rVal = inputImage->getObjectOnCPU()->getPixel(right.x, right.y);
            return lVal > rVal;
        });
        result->shrink_to_fit();

        return result;
    }
Exemple #5
0
    ParticleData ParticleExtractor::loadFromFile(std::string filename)
    {
        ParticleData result;
        result.data = new std::vector<Vec2ui>();

        std::ifstream input(filename, std::ifstream::in);
        if(!input.good())
        {
            std::cout << "Wrong particle file name " << filename << "!" << std::endl;
            return result;
        }

        input >> result.size.x >> result.size.y;

        unsigned int temp, temp2;
        input >> temp;
        if( temp )
            result.coordinateOfCenter = true;
        else
            result.coordinateOfCenter = false;

        while(input.good())
        {
            input >> temp >> temp2;
            result.data->push_back(Vec2ui(temp, temp2));
        }
        input.close();

        result.data->shrink_to_fit();
        return result;
    }
 RegularizationBackProjectionKernel::RegularizationBackProjectionKernel(Framework* framework, const GeometricSetup* geometricSetup, GPUMapped<Image>* residual, GPUMapped<Image>* rayLength, GPUMapped<SubVolume>* subvolume, float lambda, bool useLongObjectCompensation)
     : ComputeKernel(framework, Voxel_by_Voxel_Regularization_Backprojection_kernel_SourceCode, "correct", "RegularizationBackProjectionKernel")
     , projectionResolution(geometricSetup->getResolution())
     , geometricSetup(geometricSetup)
     , residual(residual)
     , rayLength(rayLength)
     , subvolume(subvolume)
     , lambda(lambda)
 {
     transformMatrix = new GPUMapped<Matrix4x4>(abstractionLayer, Vec2ui(4, 4));
 }
void make_circle(Vec2f centre, float radius, int segments, std::vector<Vec2f>& verts, std::vector<Vec2ui>& edges ) {
   verts.clear();
   edges.clear();
   float d_angle = 2.0f*(float)M_PI / (float)segments;
   float angle = 0;
   for(int i = 0; i < segments; ++i) {
      verts.push_back(centre + radius*Vec2f(cos(angle), sin(angle)));
      edges.push_back(Vec2ui(i,i+1));
      angle+=d_angle;
   }
   edges[edges.size()-1][1] = 0; //fix the last one
}
Exemple #8
0
//--------------------------------------------------------------------------------------------------
/// 
//--------------------------------------------------------------------------------------------------
void Rendering::renderOverlayItems(OpenGLContext* oglContext, bool useSoftwareRendering)
{
    OverlayItemRectMap itemRectMap;
    calculateOverlayItemLayout(&itemRectMap);
    
    OverlayItemRectMap::iterator it;
    for (it = itemRectMap.begin(); it != itemRectMap.end(); ++it)
    {
        OverlayItem* item = it->first;
        Recti rect = it->second;

        if (useSoftwareRendering)
        {
            item->renderSoftware(oglContext, rect.min(), Vec2ui(static_cast<cvf::uint>(rect.width()), static_cast<cvf::uint>(rect.height())));
        }
        else
        {
            item->render(oglContext, rect.min(),  Vec2ui(static_cast<cvf::uint>(rect.width()), static_cast<cvf::uint>(rect.height())));
        }
    }
}
//--------------------------------------------------------------------------------------------------
/// 
//--------------------------------------------------------------------------------------------------
void Rendering::renderOverlayItems(OpenGLContext* oglContext, bool useSoftwareRendering)
{
    OverlayItemRectMap itemRectMap;
    calculateOverlayItemLayout(&itemRectMap);
    
    OverlayItemRectMap::iterator it;
    for (it = itemRectMap.begin(); it != itemRectMap.end(); ++it)
    {
        OverlayItem* item = it->first;
        Recti rect = it->second;

        if (useSoftwareRendering)
        {
            item->renderSoftware(oglContext, rect.min(), Vec2ui(static_cast<cvf::uint>(rect.width()), static_cast<cvf::uint>(rect.height())));
        }
        else
        {
            item->render(oglContext, rect.min(),  Vec2ui(static_cast<cvf::uint>(rect.width()), static_cast<cvf::uint>(rect.height())));
        }
    }

    for (size_t i = 0; i < m_overlayItems.size(); i++)
    {
        OverlayItemLayout item = m_overlayItems.at(i);
        if ((item.corner == OverlayItem::UNMANAGED) )
        {
            Vec2ui size = item.overlayItem->sizeHint();
            Vec2i pos =  item.overlayItem->unmanagedPosition();

            if (useSoftwareRendering)
            {
                item.overlayItem->renderSoftware(oglContext, pos, size);
            }
            else
            {
                item.overlayItem->render(oglContext, pos,  size);
            }
        }
    }
}
Exemple #10
0
//--------------------------------------------------------------------------------------------------
/// Set the size of the text box to fit the current text.
///
/// The method will also add a bit of space for the border or background if enabled.
//--------------------------------------------------------------------------------------------------
void OverlayTextBox::setSizeToFitText()
{
    cvf::Vec2ui textSize = m_font->textExtent(m_text);

    // Add the size of an 'A' as the margin, same as used in the Text Drawer
    ref<Glyph> glyph = m_font->getGlyph(L'A');
    Vec2ui size = Vec2ui(textSize.x() + glyph->width(), textSize.y() + glyph->height());

    if (m_drawBorder)
    {
        size.x() += 4;
        size.y() += 4;
    }

    setPixelSize(size);
}
//--------------------------------------------------------------------------------------------------
/// Get the extent (width and height) of the given text with this font in pixels
//--------------------------------------------------------------------------------------------------
cvf::Vec2ui Font::textExtent(const String& text)
{
    std::vector<cvf::String> lines = text.split("\n");

    float maxLineWidth = 0;
    uint textHeight = 0;
    uint lineSpacing = static_cast<uint>(this->lineSpacing());
    for (size_t lineIdx = 0; lineIdx < lines.size(); ++lineIdx)
    {
        String line = lines[lineIdx];
        size_t numCharacters = line.size();
        float lineWidth = 0;

        for (size_t j = 0; j < numCharacters; ++j)
        {
            wchar_t character = line[j];

            // Jump to the next character in the string, if any
            if (j < (numCharacters - 1))
            {
                float advance = static_cast<float>(this->advance(character, text[j + 1]));
                lineWidth += advance;
            }
            else
            {
                ref<Glyph> glyph = getGlyph(character);
                
                lineWidth += static_cast<float>(glyph->width()) + static_cast<float>(glyph->horizontalBearingX());
            }
        }

        maxLineWidth = CVF_MAX(lineWidth, maxLineWidth);

        if (lineIdx == 0)
        {
            ref<Glyph> glyph = getGlyph(L'A');
            textHeight += glyph->height();
        }
        else
        {
            textHeight += lineSpacing;
        }
    }

    return Vec2ui(static_cast<uint>(maxLineWidth), textHeight);
}
        virtual void SetUp() override
        {
            TestBase::SetUp();
            Logger::getInstance();

            projectionResolution = Vec2ui(2048, 2048);
            Vec3ui volumeResolution;
            if(framework->on64bitArchitecture())
            {
                volumeResolution = Vec3ui(2000, 2000, 100);
            }
            else
            {
                volumeResolution = Vec3ui(2000, 2000, 100);
            }
            volumeOptions = new VolumeParameterSet(volumeResolution);
            subVolumeCount = 4;

            volume = new FloatVolume(volumeOptions->getResolution(), 1.0f, subVolumeCount);

            Vec3f sourcePosition(-1000.0f, -1000.0f, -100.0f);
            Vec3f detectorPosition(-1000.0f, -1000.0f, 100.0f);
            Vec3f horizontalPitch(1.0f, 0.0f, 0.0f);
            Vec3f verticalPitch(0.0f, 1.0f, 0.0f);
            ScannerGeometry* initialScannerGeometry = new ParallelScannerGeometry ( projectionResolution );
            initialScannerGeometry->set(sourcePosition,
                                       detectorPosition,
                                       horizontalPitch,
                                       verticalPitch);
            satRotator->setBaseScannerGeometry(initialScannerGeometry);
            geometricSetup = new GeometricSetup(initialScannerGeometry->clone(), volume);

            accumulatedVolume = new GPUMappedVolume(framework->getOpenCLStack(), volume);
            residual = new GPUMapped<Image>(framework->getOpenCLStack(), projectionResolution);
            rayLengthImage = new GPUMapped<Image>(framework->getOpenCLStack(), projectionResolution);
            computeRayLength = new ComputeRayLengthKernel(framework, geometricSetup, rayLengthImage);
            backProjectKernel = new ParallelBeamsBackProjectionKernel(framework,
                                                                      geometricSetup,
                                                                      accumulatedVolume,
                                                                      nullptr,
                                                                      1.0f,
                                                                      1,
                                                                      false);
            backProjectKernel->SetInput(residual, computeRayLength->getOutput());
        }
Exemple #13
0
//--------------------------------------------------------------------------------------------------
/// Get the extent (width and height) of the given text with this font in pixels
//--------------------------------------------------------------------------------------------------
cvf::Vec2ui Font::textExtent(const String& text)
{
    Vec2ui textBB(0,0);

    int minHeight = std::numeric_limits<int>::max();
    int maxHeight = std::numeric_limits<int>::min();

    size_t numCharacters = text.size();
    for (size_t j = 0; j < numCharacters; j++)
    {
        wchar_t character = text[j];
        ref<Glyph> glyph = getGlyph(character);

        // Find bottom and top with regards to baseline (Y = 0)
        int minY = static_cast<int>(glyph->horizontalBearingY()) - static_cast<int>(glyph->height());
        int maxY = glyph->horizontalBearingY();

        if (minHeight > minY) minHeight = minY;
        if (maxHeight < maxY) maxHeight = maxY;

        uint charWidth  = 0;

        if (j < (numCharacters - 1))
        {
            charWidth = advance(character, text[j + 1]);
        }
        else
        {
            charWidth  = glyph->width() + glyph->horizontalBearingX();
        }

        textBB.x() += charWidth;
    }

    if (maxHeight < minHeight)
    {
        return Vec2ui(0,0);
    }

    textBB.y() = static_cast<uint>(maxHeight - minHeight);

    return textBB;
}
Exemple #14
0
//--------------------------------------------------------------------------------------------------
/// Get the the overlay item (if any) at the given cursor position
//--------------------------------------------------------------------------------------------------
OverlayItem* Rendering::overlayItemFromWindowCoordinates(int x, int y)
{
    OverlayItemRectMap itemRectMap;
    calculateOverlayItemLayout(&itemRectMap);

    OverlayItemRectMap::iterator it;
    for (it = itemRectMap.begin(); it != itemRectMap.end(); ++it)
    {
        OverlayItem* item = it->first;
        Recti rect = it->second;

        if (item->pick(x, y, rect.min(), Vec2ui(static_cast<cvf::uint>(rect.width()), static_cast<cvf::uint>(rect.height()))))
        {
            return item;
        }
    }

    return NULL;
}
//--------------------------------------------------------------------------------------------------
/// 
//--------------------------------------------------------------------------------------------------
bool OverlayScalarMapperLegend::pick(int oglXCoord, int oglYCoord, const Vec2i& position, const Vec2ui& size)
{
    Recti oglRect(position, size.x(), size.y());

    OverlayColorLegendLayoutInfo layoutInViewPortCoords(oglRect.min(), Vec2ui(oglRect.width(), oglRect.height()));
    layoutInfo(&layoutInViewPortCoords);

    Vec2i legendBarOrigin = oglRect.min();
    legendBarOrigin.x() += static_cast<uint>(layoutInViewPortCoords.legendRect.min().x());
    legendBarOrigin.y() += static_cast<uint>(layoutInViewPortCoords.legendRect.min().y());

    Recti legendBarRect = Recti(legendBarOrigin, static_cast<uint>(layoutInViewPortCoords.legendRect.width()), static_cast<uint>(layoutInViewPortCoords.legendRect.height()));

    if ((oglXCoord > legendBarRect.min().x()) && (oglXCoord < legendBarRect.max().x()) &&
        (oglYCoord > legendBarRect.min().y()) && (oglYCoord < legendBarRect.max().y()))
    {
        return true;
    }

    return false;
}
//--------------------------------------------------------------------------------------------------
/// Get the the overlay item (if any) at the given cursor position
//--------------------------------------------------------------------------------------------------
OverlayItem* Rendering::overlayItemFromWindowCoordinates(int x, int y)
{
    OverlayItemRectMap itemRectMap;
    calculateOverlayItemLayout(&itemRectMap);

    const size_t numOverlayItems = m_overlayItems.size();
    for (size_t i = 0; i < numOverlayItems; i++)
    {
        OverlayItem* item = m_overlayItems.at(i);
        OverlayItemRectMap::iterator it = itemRectMap.find(item);
        if (it != itemRectMap.end())
        {
            Recti rect = it->second;
            if (item->pick(x, y, rect.min(), Vec2ui(static_cast<cvf::uint>(rect.width()), static_cast<cvf::uint>(rect.height()))))
            {
                return item;
            }
        }
    }

    return NULL;
}
//--------------------------------------------------------------------------------------------------
/// 
//--------------------------------------------------------------------------------------------------
cvf::Vec2ui OverlayScalarMapperLegend::minimumSize()
{
    return Vec2ui(100,100);
}
Exemple #18
0
void InitGameMemory(game_memory *Memory, Canvas &canvas)
{
	// �I�~�y���y�p�|�y�x�p���y��
	game_state* GameState = (game_state*)Memory->PermanentStorage;

	InitializeArena(&GameState->WorldArena, Memory->PermanentStorageSize - sizeof(game_state), (uint8*)Memory->PermanentStorage + sizeof(game_state));

	GameState->World = PushStruct(&GameState->WorldArena, world);
	world *World = GameState->World;
	World->TileMap = PushStruct(&GameState->WorldArena, tile_map);
	tile_map *TileMap = World->TileMap;

	GameState->Tick = 0;
	GameState->TimeElapsedFromLastTick = 0;

	// Camera 
	GameState->CameraPos.Tile = Vec2i(0, 0);
	GameState->CameraPos.TilePos = Vec2f(0, 0);
	GameState->CameraOrigin = GameState->ScreenSize / 2.0f;

	GameState->EntityToCameraIn = Rect(-7, -5, 7, 5);
	GameState->EntityToCameraOut = Rect(-8, -6, 8, 6);

	// �H�p�s�����x�y���� �������p�z����
	GameState->LoadGameSpriteFromImage(canvas, GameState->GameSprites.tmp_sprite, "sand_tile_01.png");
	GameState->LoadGameSpriteFromImage(canvas, GameState->GameSprites.tmp_object_sprite_001, "object_storage_01.png");
	GameState->LoadGameSpriteFromImage(canvas, GameState->GameSprites.tmp_object_sprite_stone1, "object_stone_01.png");
	GameState->LoadGameSpriteFromImage(canvas, GameState->GameSprites.tmp_player_image, "robot_base_horizontal.png");
	GameState->LoadGameSpriteFromImage(canvas, GameState->GameSprites.tmp_player_image_v, "robot_base_vertical.png");
	GameState->LoadGameSpriteFromImage(canvas, GameState->GameSprites.tmp_player_image_ur, "robot_base_diagonal_ur.png");
	GameState->LoadGameSpriteFromImage(canvas, GameState->GameSprites.tmp_player_image_ul, "robot_base_diagonal_ul.png");

	GameState->LoadGameSpriteFromResource(canvas, &GameState->game_resources, GameState->GameSprites.tmp_ground_sprite_01, "ground_concrete_tileset");
	GameState->AddGameSpriteFrameFromImage(canvas, GameState->GameSprites.tmp_ground_sprite_01, "ground_tile_01.png");

	GameState->LoadGameSpriteFromResource(canvas, &GameState->game_resources, GameState->GameSprites.tmp_player_image_torso, "robot_torso");
	GameState->LoadGameSpriteFromResource(canvas, &GameState->game_resources, GameState->GameSprites.tmp_player_image_track_down, "track_v_down");
	GameState->LoadGameSpriteFromResource(canvas, &GameState->game_resources, GameState->GameSprites.tmp_player_image_track_left, "track_h_left");
	GameState->LoadGameSpriteFromResource(canvas, &GameState->game_resources, GameState->GameSprites.tmp_player_image_track_right, "track_h_right");
	GameState->LoadGameSpriteFromResource(canvas, &GameState->game_resources, GameState->GameSprites.tmp_player_image_track_up, "track_v_up");
	GameState->LoadGameSpriteFromResource(canvas, &GameState->game_resources, GameState->GameSprites.tmp_player_image_track_ur, "track_d_ur");
	GameState->LoadGameSpriteFromResource(canvas, &GameState->game_resources, GameState->GameSprites.tmp_player_image_track_ul, "track_d_ul");
	GameState->LoadGameSpriteFromResource(canvas, &GameState->game_resources, GameState->GameSprites.tmp_player_image_track_br, "track_d_br");
	GameState->LoadGameSpriteFromResource(canvas, &GameState->game_resources, GameState->GameSprites.tmp_player_image_track_bl, "track_d_bl");

	GameState->LoadGameSpriteFromResource(canvas, &GameState->game_resources, GameState->GameSprites.tmp_wall_sprite1, "tileset_brick_wall");

	// Player entity
	//
	GameState->PlayerEntity = AddEntity(GameState);
	GameState->PlayerEntity->Position.Tile = Vec2i(0, 0);
	GameState->PlayerEntity->Position.TilePos = Vec2f(0, 0);
	GameState->PlayerEntity->EntityType = EntityType_Robot;
	GameState->PlayerEntity->CollisionType = 1;
	GameState->PlayerEntity->CollisionBox = Rectf(-0.45f, -0.25f, 0.45f, 0.25f);
	GameState->PlayerEntity->Controller.Active = 1;

	GameState->PlayerEntity->Mass = 20000.0f;
	GameState->PlayerEntity->RResistance = 0.008f;

	SetEntityToActive(GameState->PlayerEntity, GameState);

	World->TileSizeMeters = Vec2f(1.0f, 1.0f);
	World->TileSizePixels = Vec2f(100.0f, 100.0f);
	World->MetersToPixels = World->TileSizePixels / World->TileSizeMeters;

	World->g = 4.2f;

	TileMap->TileChunkSize = Vec2ui(16, 16);
	//TileMap->CenterChunkPosition = TileMap->TileChunksCount / (uint32)2;

	GameState->TilesOnHalfScreen.width = (int)((GameState->ScreenSize.width / 2) / World->TileSizePixels.x) + 1;
	GameState->TilesOnHalfScreen.height = (int)((GameState->ScreenSize.height / 2) / World->TileSizePixels.y) + 1;

	Vec2i TilesPerScreen = GameState->TilesOnHalfScreen * 2;

	for (int32 ScreenY = -16; ScreenY < 16; ScreenY++)
	{
		for (int32 ScreenX = -16; ScreenX < 16; ScreenX++)
		{
			for (int32 TY = 0; TY < TilesPerScreen.y; TY++)
			{
				for (int32 TX = 0; TX < TilesPerScreen.x; TX++)
				{
					int32 AbsTileX = ScreenX * TilesPerScreen.x + TX;
					int32 AbsTileY = ScreenY * TilesPerScreen.y + TY;

					SetTileValue(&GameState->WorldArena, TileMap, Vec2i(AbsTileX, AbsTileY), rand() % 16 + 1);
				}
			}
		}
	}
	/*
	for (int32 Y = 1; Y < 4; Y++)
	{
		for (int32 X = 1; X < 5; X++)
		{
			SetTileValue(&GameState->WorldArena, TileMap, Vec2i(X, Y), 5);
			SetTileValue(&GameState->WorldArena, TileMap, Vec2i(X - 7, Y), 5);
			SetTileValue(&GameState->WorldArena, TileMap, Vec2i(X - 5, Y + 6), 4);
		}
	}
	*/

	// Game entities
	GameState->TiledEntities.Entities = PushArray(&GameState->WorldArena, 4096, entity);
	GameState->TiledEntities.GroupSize = 4096;
	GameState->TiledEntities.EntityCount = 0;
	GameState->TiledEntities.NextGroup = 0;
	AddEntityToGroup(&GameState->WorldArena, &GameState->TiledEntities); // �N���|�u�r���z ���q���u�{�� �~�u �y�������|���x���u������

	// Add many stone entities
	world_position EntityPos;
	//Rectf CollisionBox(-0.4f, 0.0f, 0.4f, 0.3f);
	Rectf CollisionBox(-0.5f, -0.5f, 0.5f, 0.5f);
	for (int32 Y = 1; Y < 10; Y++)
	{
		for (int32 X = 1; X < 10; X++)
		{
			EntityPos.Tile = Vec2i(X, Y);
			EntityPos.TilePos = Vec2f(0, 0);

			uint32 StoneIndex = AddEntityToGroup(&GameState->WorldArena, &GameState->TiledEntities);
			entity *Entity = GetEntityFromGroupByIndex(&GameState->TiledEntities, StoneIndex);
			Entity->EntityType = EntityType_Storage;
			Entity->Position = EntityPos;
			Entity->CollisionType = 1;
			Entity->CollisionBox = CollisionBox;
			AddEntityToTile(GameState->World->TileMap, EntityPos.Tile, StoneIndex);
		}
	}

	/*
	EntityPos.Tile = Vec2i(1, 1);
	EntityPos.TilePos = Vec2f(0, 0);
	entity *Entity = AddEntity(GameState);
	Entity->EntityType = EntityType_Stone;
	Entity->Position = EntityPos;
	Entity->CollisionType = 1;
	Entity->CollisionBox = CollisionBox;
	//SetEntityToActive(Entity, GameState);

	/*
	Entity = AddEntity(GameState);
	Entity->EntityType = EntityType_Wall;
	EntityPos.Tile = Vec2i(0, -2);
	Entity->Position = EntityPos;
	Entity->CollisionType = 1;
	Entity->CollisionBox = Rectf(-0.5f, -0.1f, 0.5f, 0.1f);
	Entity->EntityFrame = 0;
	//SetEntityToActive(Entity, GameState);
	*/

	// Call to camera reset to activate entities in camera space
	MapEntitiesInCameraSpace(GameState);

	GameState->IsInitialized = 1;
}
Exemple #19
0
//--------------------------------------------------------------------------------------------------
/// 
//--------------------------------------------------------------------------------------------------
cvf::Vec2ui OverlayColorLegend::minimumSize()
{
    return Vec2ui(100,100);
}
Exemple #20
0
    TEST_F(VolumeTest, Test_SliceExtraction_FloatVolume)
    {
        static const float gaussKernel3D[] =
        {
            1.0f, 4.0f, 6.0f, 4.0f, 1.0f,
            4.0f, 16.0f, 24.0f, 16.0f, 4.0f,
            6.0f, 24.0f, 36.0f, 24.0f, 6.0f,
            4.0f, 16.0f, 24.0f, 16.0f, 4.0f,
            1.0f, 4.0f, 6.0f, 4.0f, 1.0f,

            4.0f, 16.0f, 24.0f, 16.0f, 4.0f,
            16.0f, 64.0f, 96.0f, 64.0f, 16.0f,
            24.0f, 96.0f, 144.0f, 96.0f, 24.0f,
            16.0f, 64.0f, 96.0f, 64.0f, 16.0f,
            4.0f, 16.0f, 24.0f, 16.0f, 4.0f,

            6.0f, 24.0f, 36.0f, 24.0f, 6.0f,
            24.0f, 96.0f, 144.0f, 96.0f, 24.0f,
            36.0f, 144.0f, 216.0f, 144.0f, 36.0f,
            24.0f, 96.0f, 144.0f, 96.0f, 24.0f,
            6.0f, 24.0f, 36.0f, 24.0f, 6.0f,

            4.0f, 16.0f, 24.0f, 16.0f, 4.0f,
            16.0f, 64.0f, 96.0f, 64.0f, 16.0f,
            24.0f, 96.0f, 144.0f, 96.0f, 24.0f,
            16.0f, 64.0f, 96.0f, 64.0f, 16.0f,
            4.0f, 16.0f, 24.0f, 16.0f, 4.0f,

            1.0f, 4.0f, 6.0f, 4.0f, 1.0f,
            4.0f, 16.0f, 24.0f, 16.0f, 4.0f,
            6.0f, 24.0f, 36.0f, 24.0f, 6.0f,
            4.0f, 16.0f, 24.0f, 16.0f, 4.0f,
            1.0f, 4.0f, 6.0f, 4.0f, 1.0f
        };
        static const float slice1ThroughXZPLane[] =
        {
            4.0f, 16.0f, 24.0f, 16.0f, 4.0f,
            16.0f, 64.0f, 96.0f, 64.0f, 16.0f,
            24.0f, 96.0f, 144.0f, 96.0f, 24.0f,
            16.0f, 64.0f, 96.0f, 64.0f, 16.0f,
            4.0f, 16.0f, 24.0f, 16.0f, 4.0f
        };
        static const float slice2ThroughXYPLane[] =
        {
            6.0f, 24.0f, 36.0f, 24.0f, 6.0f,
            24.0f, 96.0f, 144.0f, 96.0f, 24.0f,
            36.0f, 144.0f, 216.0f, 144.0f, 36.0f,
            24.0f, 96.0f, 144.0f, 96.0f, 24.0f,
            6.0f, 24.0f, 36.0f, 24.0f, 6.0f
        };

        Volume *volume = new FloatVolume(Vec3ui(5, 5, 5), gaussKernel3D);
        Image *image1 = new Image(Vec2ui(5, 5), slice1ThroughXZPLane);
        Image *image2 = new Image(Vec2ui(5, 5), slice2ThroughXYPLane);

        TestSliceExtraction(volume, 1, ORDER_XZY, image1);      // test general (Volume) slice extraction
        TestSliceExtraction(volume, 2, ORDER_XYZ, image2);      // test special (FloatVolume, XYZ) slice extraction (memcpy)

        auto *options = new OutputParameterSet(IO_VOXEL_TYPE_FLOAT_32, ORDER_XYZ);
        framework->getVolumeSerializer()->write( volume, std::string(TESTDATA_DIR) + "/work/volume/gaussian3dKernel.mrc", ".mrc", options);
        delete options;

        delete image1;
        delete image2;
        delete volume;
    }