Re: What am I doing wrong ?
On 5 May, 19:40, Rolf Magnus <ramag...@t-online.de> wrote:
watkins...@hotmail.com wrote:
I have re-written the application from passing pointers to the mesh
object to functions to an application that passes references but I
still get the same type of problem.
Sounds reasonable, if that was the only change you made.
in my current version, I declare a reference, m_ref and then pass
this object
You mean the object it refers to? Why are you creating a reference first?
to the following sequence of function calls :
create sphere ( my_mesh& p_mesh ) returning p_mesh.
select_vertex_cluster ( my_mesh& p_mesh ) returning p_mesh.
Edit_vertex_cluster (( my_mesh& p_mesh ) returning p_mesh.)
If I call the Edit_vertex_cluster , for a second time, it just cannot
find any data, that has been created previously within the object.
There is not enough information to say what is wrong.
I would guess that you are attempting to reseat a reference, which you
can
not do. Other than that, I would have to see the code.- Hide quoted text
-
- Show quoted text -
Is a reference reset if a return value is passed back to it ?
I have no idea what you mean by that. There is no way to "reset" a
reference. Everything you do after it's initialized is done to the object
it refers to.
Sorry, I am not wearing glasses, reset/reseat
Anyhow here's some code ,I apologie if it looks, un-together.
//////////////////////////////////////////////////////////////////////
// Setting up the references and pointers, Globaly
//////////////////////////////////////////////////////////////////////
m_model& m_ref = oooo;
m_model& b_ref = uuuu;
m_model* tmp;
m_model* z_mesh;
///////////////////////////////
// create sphere
///////////////////////////////
tmp = new m_model
;
D3DXCreateSphere(my3d_device,0.5, 32, 32,&tmp->m_Mesh, NULL);
m_ref = oooo;
m_ref = m_ref.copy_sphere(my3d_device,tmp, m_ref );
m_ref = m_ref.m_x_rotate(m_ref, 90.0, 1);
oooo.X = 0;
oooo.Y = 0;
oooo.Z = 0;
cluster_mesh[mesh_index] = m_ref;
mesh_index++;
///////////////////////////////////////
// Getting and setting a vertex cluster
///////////////////////////////////////
if( f_thru == true )
{
m_ref.vIndex = new WORD [4];
m_ref.Cull_Type = new int [4];
f_thru = false;
}
else
{
delete[] m_ref.vIndex;
m_ref.vIndex = new WORD [4];
delete[] m_ref.Cull_Type;
m_ref.Cull_Type = new int [4];
i_pos = 0;
}
switch(type_cursor)
{
case 1:
numberOfpoints = 4;
break;
. . .
}
m_ref.Get_cursor_Onject_data(m_ref, type_cursor, numberOfpoints);
/////////////////////////
//Edit mesh object
/////////////////////////
m_ref = m_ref.process_Sub_Trunc_Level_Extrude( m_ref,
my3d_device ,
scale_value, true, e_type );
cluster_mesh[0] = m_ref;