Re: How to access following data using Luabind

Nicolas Goles <[email protected]>
Newsgroups gmane.comp.lang.lua.bind.user
Message-ID <[email protected]>
Hello, 

Thanks for your help.

I was able to make it work, though I have 1 problem:

This is my Placemark (trapezoid) C++ Class constructor:

Placemark::Placemark(float x1, float y1,
		     float x2, float y2,
		     float x3, float y3,
		     float x4, float y4)
{ 
	vertex[0] = Vec2f(x1, y1);
	vertex[1] = Vec2f(x2, y2);
	vertex[2] = Vec2f(x3, y3);
	vertex[3] = Vec2f(x4, y4);
	
	//Create the vertex Dots
	for(int i = 0; i < 4; ++i)
	{
		VertexCircle *c = new VertexCircle(vertex[i], i);
		c->setParent(this);
		vertexDots.push_back(c);
	}
	
	glGenBuffers(1, &vbo);
}

However I bounded this constructor using luabind and called it in Lua with:

	p = Placemark(1.0, 2.0, 3.0, 4.0, 1.0, 2.0, 3.0, 4.0)

The following piece of code in my C++ constructor:

	glGenBuffers(1, &vbo); //vbo is a Placemark private attribute. GLuint vbo;

Makes my Application to Crash.

I don't really know why, and it's easy to take that line out from my constructor, but still I was wondering if someone could enlighten me about why is it crashing when calling the OpenGL function glGenBuffers ??

Thanks.

--------------------------------------------------------------
Nicolas Goles Domic
Founder & Lead Programmer of Gando Games





On Jun 18, 2010, at 4:42 AM, Iliya Trendafilov wrote:

> Hi,
> 
> Just to access the data from your script in C++ you can do something like this:
> 
> luabind::object_cast<double>(luabind::globals(lua)["polygons"]["vertex"][1][1])
> // returns x1 of the first trapezoid
> 
> The return of every operator[] above is luabind::object that you could "cache".
> 
> That said, I'd rather register Color3f and Trapezoid classes with at
> least their constructors, then write a tiny glue lua script
> 
> polygonInsances = {}
> for i = 1, #polygons.vertex
> do
>    local v = polygons.vertex[i]
>    local c = polygons.color[i]
>    polygonInstances[i] = Trapezoid(v[1][1], v[1][2], v[2][1],
> v[2][2], v[3][1], v[3][2], v[4][1], v[4][2], Color3f(c[1], c[2],
> c[3]))
> done
> 
> And then use polygonInstances:
> 
> luabind::object_cast<Trapezoid>(luabind::globals(lua)["polygonInstances"][1]);
> // returns the first trapezoid
> 
> Hope that helps.
> (WARNING: None of the code above has been compiled or run through Lua
> interpreter)
> 
> 
> 
> On Fri, Jun 18, 2010 at 8:54 AM, Nicolas Goles <[email protected]> wrote:
>> Hello,
>> I'm quite new to Luabind, I'm trying to access the following data
>> polygons = {
>> -- 3 "different" Trapezoidal polygons, 4 vertex (x,y) each.
>> vertex = {
>> {{1,0}, {1,10}, {21,30}, {25,35}},
>> {{1,0}, {1,10}, {21,30}, {25,35}},
>> {{1,0}, {1,10}, {21,30}, {25,35}},
>> },
>> -- 3 Colors ( R , G , B) one for each polygon
>> color = {
>> {1,0,0},
>> {0,1,0},
>> {0,0,1},
>> }
>> }
>> it represents 3 "different" trapezoidal polygons, each one with a color.
>> In my Application, I have a C++ class "Trapezoid" that has a constructor
>> that receives 8 floats (x1,y2 , x2, y2.... ) and a color.
>> Trapezoid::Trapezoid(x1, y1, x2, y2, x3, y3, x4, y4, Color3f color);
>> What would be the correct way to access this Lua script using luabind? I
>> have been struggling all day.
>> Sorry if this is noobish, but haven't found any clear solutions for this (
>> most of the examples focus on executing functions, and more complex stuff )
>> What would you guys suggest  ?
>> Thanks!
>> _Nicolas
>> ------------------------------------------------------------------------------
>> ThinkGeek and WIRED's GeekDad team up for the Ultimate
>> GeekDad Father's Day Giveaway. ONE MASSIVE PRIZE to the
>> lucky parental unit.  See the prize list and enter to win:
>> http://p.sf.net/sfu/thinkgeek-promo
>> _______________________________________________
>> luabind-user mailing list
>> [email protected]
>> https://lists.sourceforge.net/lists/listinfo/luabind-user
>> 
>> 
> 
> ------------------------------------------------------------------------------
> ThinkGeek and WIRED's GeekDad team up for the Ultimate 
> GeekDad Father's Day Giveaway. ONE MASSIVE PRIZE to the 
> lucky parental unit.  See the prize list and enter to win: 
> http://p.sf.net/sfu/thinkgeek-promo
> _______________________________________________
> luabind-user mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/luabind-user

------------------------------------------------------------------------------
ThinkGeek and WIRED's GeekDad team up for the Ultimate 
GeekDad Father's Day Giveaway. ONE MASSIVE PRIZE to the 
lucky parental unit.  See the prize list and enter to win: 
http://p.sf.net/sfu/thinkgeek-promo

_______________________________________________
luabind-user mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/luabind-user
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.