Added shapes, found and fixed possible memory leak

This commit is contained in:
andreja6
2019-11-07 10:28:19 -08:00
parent b2240a4ad0
commit 7b87773abf
10 changed files with 446 additions and 120 deletions

View File

@@ -128,12 +128,27 @@ Vector3 PartInstance::getPosition()
{
return position;
}
void PartInstance::setShape(Enum::Shape::Value shape)
{
switch(shape)
{
case Enum::Shape::Block:
this->shape = shape;
break;
default:
this->shape = shape;
this->setSize(this->getSize());
}
changed = true;
}
void PartInstance::setPosition(Vector3 pos)
{
position = pos;
cFrame = CoordinateFrame(pos);
changed = true;
}
CoordinateFrame PartInstance::getCFrame()
{
return cFrame;
@@ -228,6 +243,114 @@ void PartInstance::addVertex(Vector3 vertexPos,Color3 color)
addSingularNormal(cross(v3-v2,v1-v2).direction());
addSingularNormal(cross(v1-v3,v2-v3).direction());
}
void PartInstance::addPlus(Vector3 v1)
{
float renderY = size.y/2 - 0.25f;
Vector3 vx1 = v1 + Vector3(0, -renderY, -0.1f);
Vector3 vx2 = v1 + Vector3(0, -renderY, 0.1f);
Vector3 vx3 = v1 + Vector3(0, renderY, 0.1f);
addVertex(vx1,Color3::WHITE);
addVertex(vx2,Color3::WHITE);
addVertex(vx3,Color3::WHITE);
//addNormals(cross(v2-v1,v3-v1).direction());
addSingularNormal(cross(vx2-vx1,vx3-vx1).direction());
addSingularNormal(cross(vx3-vx2,vx1-vx2).direction());
addSingularNormal(cross(vx1-vx3,vx2-vx3).direction());
vx1 = v1 + Vector3(0, renderY, 0.1f);
vx2 = v1 + Vector3(0, renderY, -0.1f);
vx3 = v1 + Vector3(0, -renderY, -0.1f);
addVertex(vx1,Color3::WHITE);
addVertex(vx2,Color3::WHITE);
addVertex(vx3,Color3::WHITE);
//addNormals(cross(v2-v1,v3-v1).direction());
addSingularNormal(cross(vx2-vx1,vx3-vx1).direction());
addSingularNormal(cross(vx3-vx2,vx1-vx2).direction());
addSingularNormal(cross(vx1-vx3,vx2-vx3).direction());
vx3 = v1 + Vector3(0, -0.1f, -renderY);
vx2 = v1 + Vector3(0, 0.1f, -renderY);
vx1 = v1 + Vector3(0, 0.1f, renderY);
addVertex(vx1,Color3::WHITE);
addVertex(vx2,Color3::WHITE);
addVertex(vx3,Color3::WHITE);
//addNormals(cross(v2-v1,v3-v1).direction());
addSingularNormal(cross(vx2-vx1,vx3-vx1).direction());
addSingularNormal(cross(vx3-vx2,vx1-vx2).direction());
addSingularNormal(cross(vx1-vx3,vx2-vx3).direction());
vx3 = v1 + Vector3(0, 0.1f, renderY);
vx2 = v1 + Vector3(0, -0.1f, renderY);
vx1 = v1 + Vector3(0, -0.1f, -renderY);
addVertex(vx1,Color3::WHITE);
addVertex(vx2,Color3::WHITE);
addVertex(vx3,Color3::WHITE);
//addNormals(cross(v2-v1,v3-v1).direction());
addSingularNormal(cross(vx2-vx1,vx3-vx1).direction());
addSingularNormal(cross(vx3-vx2,vx1-vx2).direction());
addSingularNormal(cross(vx1-vx3,vx2-vx3).direction());
}
void PartInstance::addPlus2(Vector3 v1)
{
float renderY = max(size.z, max(size.x, size.y))/2 - 0.25f;
Vector3 vx3 = v1 + Vector3(0, -renderY, -0.1f);
Vector3 vx2 = v1 + Vector3(0, -renderY, 0.1f);
Vector3 vx1 = v1 + Vector3(0, renderY, 0.1f);
addVertex(vx1,Color3::WHITE);
addVertex(vx2,Color3::WHITE);
addVertex(vx3,Color3::WHITE);
//addNormals(cross(v2-v1,v3-v1).direction());
addSingularNormal(cross(vx2-vx1,vx3-vx1).direction());
addSingularNormal(cross(vx3-vx2,vx1-vx2).direction());
addSingularNormal(cross(vx1-vx3,vx2-vx3).direction());
vx3 = v1 + Vector3(0, renderY, 0.1f);
vx2 = v1 + Vector3(0, renderY, -0.1f);
vx1 = v1 + Vector3(0, -renderY, -0.1f);
addVertex(vx1,Color3::WHITE);
addVertex(vx2,Color3::WHITE);
addVertex(vx3,Color3::WHITE);
//addNormals(cross(v2-v1,v3-v1).direction());
addSingularNormal(cross(vx2-vx1,vx3-vx1).direction());
addSingularNormal(cross(vx3-vx2,vx1-vx2).direction());
addSingularNormal(cross(vx1-vx3,vx2-vx3).direction());
vx1 = v1 + Vector3(0, -0.1f, -renderY);
vx2 = v1 + Vector3(0, 0.1f, -renderY);
vx3 = v1 + Vector3(0, 0.1f, renderY);
addVertex(vx1,Color3::WHITE);
addVertex(vx2,Color3::WHITE);
addVertex(vx3,Color3::WHITE);
//addNormals(cross(v2-v1,v3-v1).direction());
addSingularNormal(cross(vx2-vx1,vx3-vx1).direction());
addSingularNormal(cross(vx3-vx2,vx1-vx2).direction());
addSingularNormal(cross(vx1-vx3,vx2-vx3).direction());
vx1 = v1 + Vector3(0, 0.1f, renderY);
vx2 = v1 + Vector3(0, -0.1f, renderY);
vx3 = v1 + Vector3(0, -0.1f, -renderY);
addVertex(vx1,Color3::WHITE);
addVertex(vx2,Color3::WHITE);
addVertex(vx3,Color3::WHITE);
//addNormals(cross(v2-v1,v3-v1).direction());
addSingularNormal(cross(vx2-vx1,vx3-vx1).direction());
addSingularNormal(cross(vx3-vx2,vx1-vx2).direction());
addSingularNormal(cross(vx1-vx3,vx2-vx3).direction());
}
void PartInstance::debugPrintVertexIDs(RenderDevice* rd,GFontRef font,Matrix3 rot)
{
_debugUniqueVertices.clear();
@@ -273,124 +396,261 @@ void PartInstance::render(RenderDevice* rd) {
getBox();
_vertices.clear();
_normals.clear();
_indices.clear();
//std::vector<GLfloat>(_vertices).swap(_vertices); //Clear the memory
Vector3 renderSize = size/2;
// Front
addTriangle(Vector3(renderSize.x-_bevelSize,renderSize.y-_bevelSize,renderSize.z),
Vector3(-renderSize.x+_bevelSize,-renderSize.y+_bevelSize,renderSize.z),
Vector3(renderSize.x-_bevelSize,-renderSize.y+_bevelSize,renderSize.z)
);
addTriangle(Vector3(-renderSize.x+_bevelSize,renderSize.y-_bevelSize,renderSize.z),
Vector3(-renderSize.x+_bevelSize,-renderSize.y+_bevelSize,renderSize.z),
Vector3(renderSize.x-_bevelSize,renderSize.y-_bevelSize,renderSize.z)
);
// Top
addTriangle(Vector3(renderSize.x-_bevelSize,renderSize.y,renderSize.z-_bevelSize),
Vector3(renderSize.x-_bevelSize,renderSize.y,-renderSize.z+_bevelSize),
Vector3(-renderSize.x+_bevelSize,renderSize.y,renderSize.z-_bevelSize)
);
addTriangle(Vector3(-renderSize.x+_bevelSize,renderSize.y,renderSize.z-_bevelSize),
Vector3(renderSize.x-_bevelSize,renderSize.y,-renderSize.z+_bevelSize),
Vector3(-renderSize.x+_bevelSize,renderSize.y,-renderSize.z+_bevelSize)
);
// Back
addTriangle(Vector3(renderSize.x-_bevelSize,renderSize.y-_bevelSize,-renderSize.z),
Vector3(renderSize.x-_bevelSize,-renderSize.y+_bevelSize,-renderSize.z),
Vector3(-renderSize.x+_bevelSize,-renderSize.y+_bevelSize,-renderSize.z)
);
addTriangle(Vector3(renderSize.x-_bevelSize,renderSize.y-_bevelSize,-renderSize.z),
Vector3(-renderSize.x+_bevelSize,-renderSize.y+_bevelSize,-renderSize.z),
Vector3(-renderSize.x+_bevelSize,renderSize.y-_bevelSize,-renderSize.z)
);
// Bottom
addTriangle(Vector3(renderSize.x-_bevelSize,-renderSize.y,-renderSize.z+_bevelSize),
Vector3(renderSize.x-_bevelSize,-renderSize.y,renderSize.z-_bevelSize),
Vector3(-renderSize.x+_bevelSize,-renderSize.y,renderSize.z-_bevelSize)
);
addTriangle(Vector3(-renderSize.x+_bevelSize,-renderSize.y,renderSize.z-_bevelSize),
Vector3(-renderSize.x+_bevelSize,-renderSize.y,-renderSize.z+_bevelSize),
Vector3(renderSize.x-_bevelSize,-renderSize.y,-renderSize.z+_bevelSize)
);
// Left
addTriangle(Vector3(-renderSize.x,renderSize.y-_bevelSize,-renderSize.z+_bevelSize),
Vector3(-renderSize.x,-renderSize.y+_bevelSize,renderSize.z-_bevelSize),
Vector3(-renderSize.x,renderSize.y-_bevelSize,renderSize.z-_bevelSize)
);
addTriangle(Vector3(-renderSize.x,-renderSize.y+_bevelSize,renderSize.z-_bevelSize),
Vector3(-renderSize.x,renderSize.y-_bevelSize,-renderSize.z+_bevelSize),
Vector3(-renderSize.x,-renderSize.y+_bevelSize,-renderSize.z+_bevelSize)
);
// Right
addTriangle(Vector3(renderSize.x,renderSize.y-_bevelSize,renderSize.z-_bevelSize),
Vector3(renderSize.x,-renderSize.y+_bevelSize,renderSize.z-_bevelSize),
Vector3(renderSize.x,renderSize.y-_bevelSize,-renderSize.z+_bevelSize)
);
addTriangle(Vector3(renderSize.x,-renderSize.y+_bevelSize,-renderSize.z+_bevelSize),
Vector3(renderSize.x,renderSize.y-_bevelSize,-renderSize.z+_bevelSize),
Vector3(renderSize.x,-renderSize.y+_bevelSize,renderSize.z-_bevelSize)
);
switch(this->shape)
{
case Enum::Shape::Block:
{
// Front
addTriangle(Vector3(renderSize.x-_bevelSize,renderSize.y-_bevelSize,renderSize.z),
Vector3(-renderSize.x+_bevelSize,-renderSize.y+_bevelSize,renderSize.z),
Vector3(renderSize.x-_bevelSize,-renderSize.y+_bevelSize,renderSize.z)
);
addTriangle(Vector3(-renderSize.x+_bevelSize,renderSize.y-_bevelSize,renderSize.z),
Vector3(-renderSize.x+_bevelSize,-renderSize.y+_bevelSize,renderSize.z),
Vector3(renderSize.x-_bevelSize,renderSize.y-_bevelSize,renderSize.z)
);
// Top
addTriangle(Vector3(renderSize.x-_bevelSize,renderSize.y,renderSize.z-_bevelSize),
Vector3(renderSize.x-_bevelSize,renderSize.y,-renderSize.z+_bevelSize),
Vector3(-renderSize.x+_bevelSize,renderSize.y,renderSize.z-_bevelSize)
);
addTriangle(Vector3(-renderSize.x+_bevelSize,renderSize.y,renderSize.z-_bevelSize),
Vector3(renderSize.x-_bevelSize,renderSize.y,-renderSize.z+_bevelSize),
Vector3(-renderSize.x+_bevelSize,renderSize.y,-renderSize.z+_bevelSize)
);
// Back
addTriangle(Vector3(renderSize.x-_bevelSize,renderSize.y-_bevelSize,-renderSize.z),
Vector3(renderSize.x-_bevelSize,-renderSize.y+_bevelSize,-renderSize.z),
Vector3(-renderSize.x+_bevelSize,-renderSize.y+_bevelSize,-renderSize.z)
);
addTriangle(Vector3(renderSize.x-_bevelSize,renderSize.y-_bevelSize,-renderSize.z),
Vector3(-renderSize.x+_bevelSize,-renderSize.y+_bevelSize,-renderSize.z),
Vector3(-renderSize.x+_bevelSize,renderSize.y-_bevelSize,-renderSize.z)
);
// Bottom
addTriangle(Vector3(renderSize.x-_bevelSize,-renderSize.y,-renderSize.z+_bevelSize),
Vector3(renderSize.x-_bevelSize,-renderSize.y,renderSize.z-_bevelSize),
Vector3(-renderSize.x+_bevelSize,-renderSize.y,renderSize.z-_bevelSize)
);
addTriangle(Vector3(-renderSize.x+_bevelSize,-renderSize.y,renderSize.z-_bevelSize),
Vector3(-renderSize.x+_bevelSize,-renderSize.y,-renderSize.z+_bevelSize),
Vector3(renderSize.x-_bevelSize,-renderSize.y,-renderSize.z+_bevelSize)
);
// Left
addTriangle(Vector3(-renderSize.x,renderSize.y-_bevelSize,-renderSize.z+_bevelSize),
Vector3(-renderSize.x,-renderSize.y+_bevelSize,renderSize.z-_bevelSize),
Vector3(-renderSize.x,renderSize.y-_bevelSize,renderSize.z-_bevelSize)
);
addTriangle(Vector3(-renderSize.x,-renderSize.y+_bevelSize,renderSize.z-_bevelSize),
Vector3(-renderSize.x,renderSize.y-_bevelSize,-renderSize.z+_bevelSize),
Vector3(-renderSize.x,-renderSize.y+_bevelSize,-renderSize.z+_bevelSize)
);
// Right
addTriangle(Vector3(renderSize.x,renderSize.y-_bevelSize,renderSize.z-_bevelSize),
Vector3(renderSize.x,-renderSize.y+_bevelSize,renderSize.z-_bevelSize),
Vector3(renderSize.x,renderSize.y-_bevelSize,-renderSize.z+_bevelSize)
);
addTriangle(Vector3(renderSize.x,-renderSize.y+_bevelSize,-renderSize.z+_bevelSize),
Vector3(renderSize.x,renderSize.y-_bevelSize,-renderSize.z+_bevelSize),
Vector3(renderSize.x,-renderSize.y+_bevelSize,renderSize.z-_bevelSize)
);
// Bevel Top Front
makeFace(0,36,48);
makeFace(48,18,0);
// Bevel Left Front Corner
makeFace(18,156,162);
makeFace(24,18,162);
// Bevel Left Front Top Corner
makeFace(48,156,18);
// Bevel Left Front Bottom Corner
makeFace(120,6,150);
// Bevel Left Top
makeFace(48,66,156);
makeFace(144,156,66);
// Bevel Bottom
makeFace(6,120,114);
makeFace(114,12,6);
// Left Bottom
makeFace(120,150,174);
makeFace(174,132,120);
// Right Front Top Corner
makeFace(36,0,180);
// Right Front Corner
makeFace(180,0,12);
makeFace(186,180,12);
// Right Front Bottom Corner
makeFace(186,12,114);
// Right Bottom
makeFace(186,114,108);
makeFace(108,198,186);
// Right Top Corner
makeFace(180,192,36);
makeFace(192,42,36);
// Right Back Top Corner
makeFace(72,42,192);
// Right Back Bottom Corner
makeFace(78,198,108);
// Right Back Corner
makeFace(72,192,198);
makeFace(198,78,72);
// Back Bottom Corner
makeFace(78,108,132);
makeFace(132,84,78);
// Back Top
makeFace(42,72,102);
makeFace(102,66,42);
// Back Left Top Corner
makeFace(144,66,102);
// Back Left Corner
makeFace(144,102,84);
makeFace(84,174,144);
// Back Left Bottom Corner
makeFace(174,84,132);
// Bevel Top Front
makeFace(0,36,48);
makeFace(48,18,0);
// Bevel Left Front Corner
makeFace(18,156,162);
makeFace(24,18,162);
// Bevel Left Front Top Corner
makeFace(48,156,18);
// Bevel Left Front Bottom Corner
makeFace(120,6,150);
// Bevel Left Top
makeFace(48,66,156);
makeFace(144,156,66);
// Bevel Bottom
makeFace(6,120,114);
makeFace(114,12,6);
// Left Bottom
makeFace(120,150,174);
makeFace(174,132,120);
// Right Front Top Corner
makeFace(36,0,180);
// Right Front Corner
makeFace(180,0,12);
makeFace(186,180,12);
// Right Front Bottom Corner
makeFace(186,12,114);
// Right Bottom
makeFace(186,114,108);
makeFace(108,198,186);
// Right Top Corner
makeFace(180,192,36);
makeFace(192,42,36);
// Right Back Top Corner
makeFace(72,42,192);
// Right Back Bottom Corner
makeFace(78,198,108);
// Right Back Corner
makeFace(72,192,198);
makeFace(198,78,72);
// Back Bottom Corner
makeFace(78,108,132);
makeFace(132,84,78);
// Back Top
makeFace(42,72,102);
makeFace(102,66,42);
// Back Left Top Corner
makeFace(144,66,102);
// Back Left Corner
makeFace(144,102,84);
makeFace(84,174,144);
// Back Left Bottom Corner
makeFace(174,84,132);
for (unsigned short i=0;i<_vertices.size()/6;i++) {
_indices.push_back(i);
}
for (unsigned short i=0;i<_vertices.size()/6;i++) {
_indices.push_back(i);
}
}
break;
case Enum::Shape::Cylinder:
{
// Front
addTriangle(Vector3(renderSize.x-_bevelSize,renderSize.y-_bevelSize,renderSize.z),
Vector3(-renderSize.x+_bevelSize,-renderSize.y+_bevelSize,renderSize.z),
Vector3(renderSize.x-_bevelSize,-renderSize.y+_bevelSize,renderSize.z)
);
addTriangle(Vector3(-renderSize.x+_bevelSize,renderSize.y-_bevelSize,renderSize.z),
Vector3(-renderSize.x+_bevelSize,-renderSize.y+_bevelSize,renderSize.z),
Vector3(renderSize.x-_bevelSize,renderSize.y-_bevelSize,renderSize.z)
);
// Top
addTriangle(Vector3(renderSize.x-_bevelSize,renderSize.y,renderSize.z-_bevelSize),
Vector3(renderSize.x-_bevelSize,renderSize.y,-renderSize.z+_bevelSize),
Vector3(-renderSize.x+_bevelSize,renderSize.y,renderSize.z-_bevelSize)
);
addTriangle(Vector3(-renderSize.x+_bevelSize,renderSize.y,renderSize.z-_bevelSize),
Vector3(renderSize.x-_bevelSize,renderSize.y,-renderSize.z+_bevelSize),
Vector3(-renderSize.x+_bevelSize,renderSize.y,-renderSize.z+_bevelSize)
);
// Back
addTriangle(Vector3(renderSize.x-_bevelSize,renderSize.y-_bevelSize,-renderSize.z),
Vector3(renderSize.x-_bevelSize,-renderSize.y+_bevelSize,-renderSize.z),
Vector3(-renderSize.x+_bevelSize,-renderSize.y+_bevelSize,-renderSize.z)
);
addTriangle(Vector3(renderSize.x-_bevelSize,renderSize.y-_bevelSize,-renderSize.z),
Vector3(-renderSize.x+_bevelSize,-renderSize.y+_bevelSize,-renderSize.z),
Vector3(-renderSize.x+_bevelSize,renderSize.y-_bevelSize,-renderSize.z)
);
// Bottom
addTriangle(Vector3(renderSize.x-_bevelSize,-renderSize.y,-renderSize.z+_bevelSize),
Vector3(renderSize.x-_bevelSize,-renderSize.y,renderSize.z-_bevelSize),
Vector3(-renderSize.x+_bevelSize,-renderSize.y,renderSize.z-_bevelSize)
);
addTriangle(Vector3(-renderSize.x+_bevelSize,-renderSize.y,renderSize.z-_bevelSize),
Vector3(-renderSize.x+_bevelSize,-renderSize.y,-renderSize.z+_bevelSize),
Vector3(renderSize.x-_bevelSize,-renderSize.y,-renderSize.z+_bevelSize)
);
// Left
addTriangle(Vector3(-renderSize.x,renderSize.y-_bevelSize,-renderSize.z+_bevelSize),
Vector3(-renderSize.x,-renderSize.y+_bevelSize,renderSize.z-_bevelSize),
Vector3(-renderSize.x,renderSize.y-_bevelSize,renderSize.z-_bevelSize)
);
addTriangle(Vector3(-renderSize.x,-renderSize.y+_bevelSize,renderSize.z-_bevelSize),
Vector3(-renderSize.x,renderSize.y-_bevelSize,-renderSize.z+_bevelSize),
Vector3(-renderSize.x,-renderSize.y+_bevelSize,-renderSize.z+_bevelSize)
);
// Right
addTriangle(Vector3(renderSize.x,renderSize.y-_bevelSize,renderSize.z-_bevelSize),
Vector3(renderSize.x,-renderSize.y+_bevelSize,renderSize.z-_bevelSize),
Vector3(renderSize.x,renderSize.y-_bevelSize,-renderSize.z+_bevelSize)
);
addTriangle(Vector3(renderSize.x,-renderSize.y+_bevelSize,-renderSize.z+_bevelSize),
Vector3(renderSize.x,renderSize.y-_bevelSize,-renderSize.z+_bevelSize),
Vector3(renderSize.x,-renderSize.y+_bevelSize,renderSize.z-_bevelSize)
);
// Bevel Top Front
makeFace(0,36,48);
makeFace(48,18,0);
// Bevel Left Front Corner
makeFace(18,156,162);
makeFace(24,18,162);
// Bevel Left Front Top Corner
makeFace(48,156,18);
// Bevel Left Front Bottom Corner
makeFace(120,6,150);
// Bevel Left Top
makeFace(48,66,156);
makeFace(144,156,66);
// Bevel Bottom
makeFace(6,120,114);
makeFace(114,12,6);
// Left Bottom
makeFace(120,150,174);
makeFace(174,132,120);
// Right Front Top Corner
makeFace(36,0,180);
// Right Front Corner
makeFace(180,0,12);
makeFace(186,180,12);
// Right Front Bottom Corner
makeFace(186,12,114);
// Right Bottom
makeFace(186,114,108);
makeFace(108,198,186);
// Right Top Corner
makeFace(180,192,36);
makeFace(192,42,36);
// Right Back Top Corner
makeFace(72,42,192);
// Right Back Bottom Corner
makeFace(78,198,108);
// Right Back Corner
makeFace(72,192,198);
makeFace(198,78,72);
// Back Bottom Corner
makeFace(78,108,132);
makeFace(132,84,78);
// Back Top
makeFace(42,72,102);
makeFace(102,66,42);
// Back Left Top Corner
makeFace(144,66,102);
// Back Left Corner
makeFace(144,102,84);
makeFace(84,174,144);
// Back Left Bottom Corner
makeFace(174,84,132);
addPlus(Vector3(-renderSize.x-0.01,0,0));
addPlus2(Vector3(renderSize.x+0.01,0,0));
for (unsigned short i=0;i<_vertices.size()/6;i++) {
_indices.push_back(i);
}
}
break;
}
changed=false;
glNewList(glList, GL_COMPILE);
@@ -497,6 +757,28 @@ char pto[512];
char pto2[512];
#include <sstream>
static Enum::Shape::Value strEnum(TCHAR* shape)
{
if(strcmp("Block", shape) == 0)
return Enum::Shape::Block;
if(strcmp("Cylinder", shape) == 0)
return Enum::Shape::Cylinder;
return Enum::Shape::Ball;
}
static TCHAR* enumStr(int shape)
{
switch(shape)
{
case Enum::Shape::Block:
return "Block";
case Enum::Shape::Ball:
return "Ball";
case Enum::Shape::Cylinder:
return "Cylinder";
}
}
void PartInstance::PropUpdate(LPPROPGRIDITEM &item)
{
if(strcmp(item->lpszPropName, "Color3") == 0)
@@ -561,10 +843,16 @@ void PartInstance::PropUpdate(LPPROPGRIDITEM &item)
setSize(size);
}
}
if(strcmp(item->lpszPropName, "Shape") == 0)
{
printf("%s", enumStr(strEnum((TCHAR*)item->lpCurValue)));
setShape(strEnum((TCHAR*)item->lpCurValue));
}
else PVInstance::PropUpdate(item);
}
std::vector<PROPGRIDITEM> PartInstance::getProperties()
{
std::vector<PROPGRIDITEM> properties = PVInstance::getProperties();
@@ -594,6 +882,15 @@ std::vector<PROPGRIDITEM> PartInstance::getProperties()
(LPARAM)pto2,
PIT_EDIT
));
properties.push_back(createPGI(
"Item",
"Shape",
"The shape of the object in the workspace",
(LPARAM)enumStr(shape),
PIT_COMBO,
TEXT("Ball\0Block\0Cylinder\0")
));
return properties;
}