Пример #1
0
FirstPersonCamera::FirstPersonCamera(float aspectRatio, float fieldOfView, float nearClip, float farClip)
    : BaseCamera(nearClip, farClip)
    , m_aspectRatio(aspectRatio)
    , m_fov(fieldOfView)
{
    OC_ASSERT(m_aspectRatio > 0);
    OC_ASSERT(m_fov > 0 && m_fov < OC_PI);
    CreateProjection();
}
Пример #2
0
	OrthographicCamera::OrthographicCamera(float minX, float minY, float maxX,
		float maxY, float nearClip, float farClip) : Camera(),
		m_fxMin(minX),
		m_fyMin(minY),
		m_fxMax(maxX),
		m_fyMax(maxY)
	{
		Assert_(maxX > minX && maxY > minY);

		m_fNearPlane = nearClip;
		m_fFarPlane = farClip;

		CreateProjection();
	}
Пример #3
0
    void initilize()
    {
        // SenseManagerを生成する
        senseManager = PXCSenseManager::CreateInstance();
        if ( senseManager == 0 ) {
            throw std::runtime_error( "SenseManagerの生成に失敗しました" );
        }

        // カラーストリームを有効にする
        auto sts = senseManager->EnableStream( PXCCapture::StreamType::STREAM_TYPE_COLOR,
            COLOR_WIDTH, COLOR_HEIGHT, COLOR_FPS );
        if ( sts<PXC_STATUS_NO_ERROR ) {
            throw std::runtime_error( "カラーストリームの有効化に失敗しました" );
        }

        // Depthストリームを有効にする
        sts = senseManager->EnableStream( PXCCapture::StreamType::STREAM_TYPE_DEPTH,
            DEPTH_WIDTH, DEPTH_HEIGHT, DEPTH_FPS );
        if ( sts<PXC_STATUS_NO_ERROR ) {
            throw std::runtime_error( "Depthストリームの有効化に失敗しました" );
        }

        // 手の検出を有効にする
        sts = senseManager->EnableHand();
        if ( sts < PXC_STATUS_NO_ERROR ) {
            throw std::runtime_error( "手の検出の有効化に失敗しました" );
        }

        // パイプラインを初期化する
        sts = senseManager->Init();
        if ( sts<PXC_STATUS_NO_ERROR ) {
            throw std::runtime_error( "パイプラインの初期化に失敗しました" );
        }

        // デバイスを取得する
        auto device = senseManager->QueryCaptureManager()->QueryDevice();

        // ミラー表示にする
        device->SetMirrorMode(
            PXCCapture::Device::MirrorMode::MIRROR_MODE_HORIZONTAL );

        // 座標変換オブジェクトを作成
        projection = device->CreateProjection();

        // 手の検出の初期化
        initializeHandTracking();
    }
	ERMsg CProjectionManager::Load(const std::string& filePath, CProjectionPtr& pPrj)
	{
		ERMsg msg;

		ifStream file;
		msg = file.open(filePath);
		if (msg)
		{
			string src = file.GetText();
			msg = CreateProjection(src.c_str());
			if (msg)
				pPrj = GetPrj(src.c_str());

			file.close();
		}

		return msg;
	}
Пример #5
0
	void OrthographicCamera::SetMaxY(float maxY)
	{
		m_fyMax = maxY;
		CreateProjection();
	}
Пример #6
0
	void OrthographicCamera::SetMaxX(float maxX)
	{
		m_fxMax = maxX;
		CreateProjection();
	}
Пример #7
0
	void OrthographicCamera::SetMinY(float minY)
	{
		m_fyMin = minY;
		CreateProjection();
	}
Пример #8
0
	void OrthographicCamera::SetMinX(float minX)
	{
		m_fxMin = minX;
		CreateProjection();
	}
Пример #9
0
void BaseCamera::SetNearClip(float nearClip)
{
    m_nearZ = nearClip;
    CreateProjection();
}
Пример #10
0
void BaseCamera::SetFarClip(float farClip)
{
    m_farZ = farClip;
    CreateProjection();
}
Пример #11
0
void FirstPersonCamera::SetFov(float fov)
{
    m_fov = fov;
    CreateProjection();
}
Пример #12
0
void FirstPersonCamera::SetAspectRatio(float aspect)
{
    m_aspectRatio = aspect;
    CreateProjection();
}