00001 00002 #include <OSGDVRRenderSlice.h> 00003 #include <vector> 00004 #include <stdlib.h> 00005 #include <OSGGL.h> 00006 00007 OSG_BEGIN_NAMESPACE 00008 00009 void DVRRenderSlicePrimitive::render(void) const 00010 { 00011 glBegin(type); 00012 { 00013 for(std::vector<GLdouble*>::const_iterator i = vertices.begin(); 00014 i != vertices.end(); 00015 ++i) 00016 { 00017 glTexCoord3dv(&((*i)[3])); 00018 glVertex3dv(*i); 00019 } 00020 } 00021 glEnd(); 00022 } 00023 00024 00025 DVRRenderSlice::DVRRenderSlice(void) 00026 { 00027 numVertexCombineData = 0; 00028 maxVertexCombineData = 0; 00029 00030 vertexCombineData = NULL; 00031 } 00032 00033 DVRRenderSlice::~DVRRenderSlice(void) 00034 { 00035 if(maxVertexCombineData > 0) 00036 free(vertexCombineData); // allocation with malloc/realloc!! 00037 00038 vertexCombineData = NULL; 00039 } 00040 00041 void DVRRenderSlice::render(void) const 00042 { 00043 for(DVRRenderSlice::const_iterator i = begin(); 00044 i != end(); 00045 ++i) 00046 { 00047 (*i)->render(); 00048 } 00049 } 00050 00051 void DVRRenderSlice::clear(void) 00052 { 00053 if(!directRender) 00054 { 00055 for(DVRRenderSlice::const_iterator i = begin(); i != end(); ++i) 00056 { 00057 delete (*i); 00058 } 00059 00060 std::vector<DVRRenderSlicePrimitive*>::clear(); 00061 } 00062 00063 numVertexCombineData = 0; 00064 } 00065 00066 OSG_END_NAMESPACE
1.5.5