Форум программистов, компьютерный форум, киберфорум
Наши страницы
DirectX
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
Helldrg
26 / 55 / 6
Регистрация: 10.01.2011
Сообщений: 1,156
1

Ошибка с выделением объектов

18.11.2011, 14:28. Просмотров 968. Ответов 1
Метки нет (Все метки)

Здравствуйте! Подскажите, пожалуйста, в чем у меня ошибка:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
bool Pick(IDirect3DDevice9 *p3dDevice, D3DXMATRIX  viewMatrix, ID3DXMesh *pMesh)
{
    HRESULT hr;
    D3DXVECTOR3 vPickRayDir;
    D3DXVECTOR3 vPickRayOrig;
 
    int m_dwNumIntersections = 0;
 
    // Get the pick ray from the mouse position
        D3DXMATRIXA16 matProj;
        p3dDevice->GetTransform( D3DTS_PROJECTION, &matProj );
 
        //I have program cursor
        POINT ptCursor;
         ptCursor.x=iWidth/2;
         ptCursor.y=iHeight/2;
 
        // Compute the vector of the pick ray in screen space
        D3DXVECTOR3 v;
        v.x =  ( ( ( 2.0f * ptCursor.x ) / iWidth  ) - 1 ) / matProj._11;
        v.y = -( ( ( 2.0f * ptCursor.y ) / iHeight ) - 1 ) / matProj._22;
        v.z =  1.0f;
 
        // Get the inverse view matrix
        D3DXMATRIXA16 m;
       // p3dDevice->GetTransform( D3DTS_VIEW, &matView );
        D3DXMatrixInverse( &m, NULL, &viewMatrix );
 
        // Transform the screen space pick ray into 3D space
        vPickRayDir.x  = v.x*m._11 + v.y*m._21 + v.z*m._31;
        vPickRayDir.y  = v.x*m._12 + v.y*m._22 + v.z*m._32;
        vPickRayDir.z  = v.x*m._13 + v.y*m._23 + v.z*m._33;
        vPickRayOrig.x = m._41;
        vPickRayOrig.y = m._42;
        vPickRayOrig.z = m._43;
 
        // Collect only the closest intersection
        BOOL bHit;
        DWORD dwFace;
        FLOAT fBary1, fBary2, fDist;
        D3DXIntersect(pMesh, &vPickRayOrig, &vPickRayDir, &bHit, &dwFace, &fBary1, &fBary2, &fDist,
                    NULL, NULL);
        if( bHit )
         {
          m_dwNumIntersections = 1;
          //SELECT
          return true;
         }
    return false;
}
 
-------------------
 
 
            if (Pick(lp_D3DDevice, matView, g_pMesh[0]) == true) lp_D3DFont -> DrawText( NULL, "Helloeee", -1, &FontPosition, DT_LEFT, 0xFFFFFFFF );
Заранее благодарен!

Добавлено через 13 часов 31 минуту
этот код возращает тру когда я навожу его на определенную точку (не меш)
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.11.2011, 14:28
Ответы с готовыми решениями:

ошибка с выделением памяти
выдает ошибку в выделении памяти. никто не подскажет почему? если что -задача...

Ошибка с выделением памяти
Помогите с прогой. Какая то ошибка с выделением памяти. В free_result пишет,...

Ошибка в коде с выделением памяти
Не могу понять, в чем проблема? double** FuzzySet::operator&&(FuzzySet*...

Ошибка с выделением динамической памяти
#include "stdafx.h" #include <iostream> using namespace std; class Vector ...

Ошибка с выделением памяти для структур
У меня возникла большая проблема. В функции обработки сообщений я создаю...

1
Helldrg
26 / 55 / 6
Регистрация: 10.01.2011
Сообщений: 1,156
21.11.2011, 23:20  [ТС] 2
Этот код правильный! Я просто с мешем напутал немного
Тема офф!
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.11.2011, 23:20

Ошибка в массиве объектов
Добрый вечер. Буквально недавно начал изучать яву, и для пробного захода...

Ошибка создания объектов!
Привет всем еще раз! Тут у меня при динамическом создании объектов появляеться...

Ошибка в использовании объектов класса
Здравствуйте. У меня есть упрощённый код прог., которая не работает: #include...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru