Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
C
CGoGN
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Service Desk
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Operations
Operations
Incidents
Environments
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
KennethVanhoey
CGoGN
Commits
033d38b8
Commit
033d38b8
authored
Oct 07, 2011
by
Thomas
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
3gcarte avec ogl2
parent
4e3c81e2
Changes
3
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
259 additions
and
1019 deletions
+259
-1019
include/Algo/Render/GL1/topo_render.hpp
include/Algo/Render/GL1/topo_render.hpp
+0
-336
include/Algo/Render/GL2/topo3Render.h
include/Algo/Render/GL2/topo3Render.h
+17
-49
include/Algo/Render/GL2/topo3Render.hpp
include/Algo/Render/GL2/topo3Render.hpp
+242
-634
No files found.
include/Algo/Render/GL1/topo_render.hpp
View file @
033d38b8
...
...
@@ -38,125 +38,6 @@ namespace Render
namespace
GL1
{
//template<typename PFP>
//class FunctorGM2Face: public FunctorMap<typename PFP::MAP>
//{
// typedef typename PFP::MAP MAP;
// typedef typename PFP::EMB EMB;
//
//
//protected:
// std::vector<gmtl::Vec3f>& m_vf1;
// std::vector<gmtl::Vec3f>& m_vf2;
// int m_lab;
// Marker m_mark;
//
//public:
// FunctorGM2Face(MAP& map, std::vector<gmtl::Vec3f>& vf1, std::vector<gmtl::Vec3f>& vf2, Marker m):
// FunctorMap<MAP>(map), m_vf1(vf1), m_vf2(vf2), m_lab(0), m_mark(m)
// {}
//
// bool operator()(Dart d)
// {
// std::vector<gmtl::Vec3f> vecPos;
// vecPos.reserve(16);
//
// Dart dd = d;
// int nb=0;
// gmtl::Vec3f center = Geometry::faceCentroid<PFP>(this->m_map, d);
// do
// {
// const gmtl::Vec3f& P = this->m_map.getVertexEmb(d)->getPosition();
// vecPos.push_back(P);
// nb++;
// d->setLabel(m_lab++);
// d = this->m_map.alpha(0,d);
// d->setLabel(m_lab++);
// d = this->m_map.alpha1(d);
// } while (d!=dd);
//
// for (int i=0; i<nb; ++i)
// {
// vecPos[i] = center*0.05f + vecPos[i]*0.95f;
// }
// vecPos.push_back(vecPos.front());
//
// for (int i=0; i<nb; ++i)
// {
// if (this->m_map.isMarkedDart(d,m_mark))
// glColor3f(1.,1.,0.);
// else
// glColor3f(1.,1.,1.);
// // pour d
// gmtl::Vec3f P = vecPos[i]*0.9f + vecPos[i+1]*0.1f;
// gmtl::Vec3f M = vecPos[i]*0.55f + vecPos[i+1]*0.45f;
// glVertex3fv(P.getData());
// glVertex3fv(M.getData());
// gmtl::Vec3f f = vecPos[i]*0.8f + vecPos[i+1]*0.2f;
// m_vf1.push_back(f);
// f = vecPos[i]*0.6f + vecPos[i+1]*0.4f;
// m_vf2.push_back(f);
//
// d = this->m_map.alpha(0,d);
//
// if (this->m_map.isMarkedDart(d,m_mark))
// glColor3f(1.,1.,0.);
// else
// glColor3f(1.,1.,1.);
// // pour alpha(0,d)
// P = vecPos[i+1]*0.9f + vecPos[i]*0.1f;
// M = vecPos[i+1]*0.55f + vecPos[i]*0.45f;
// glVertex3fv(P.getData());
// glVertex3fv(M.getData());
// f = vecPos[i+1]*0.8f + vecPos[i]*0.2f;
// m_vf1.push_back(f);
// f = vecPos[i+1]*0.6f + vecPos[i]*0.4f;
// m_vf2.push_back(f);
//
// d = this->m_map.alpha1(d);
// }
// return false;
// }
//};
//
//template <typename PFP>
//void renderTopoGM2(typename PFP::MAP& map, Mark m)
//{
//
//
// std::vector<gmtl::Vec3f> fv1;
// std::vector<gmtl::Vec3f> fv2;
// fv1.reserve(map.getNbDarts());
// fv2.reserve(map.getNbDarts());
//
// // first pass render the triangles
// FunctorGM2Face<PFP> fgl_gc(map,fv1,fv2,m);
//
// glLineWidth(1.0f);
// glBegin(GL_LINES);
// glColor3f(1.0,1.0,1.0);
//
// map.foreach_orbit(2,fgl_gc);
// glEnd();
// glLineWidth(2.0f);
// glBegin(GL_LINES);
// for(Dart d = map.begin(); d!= map.end(); map.next(d))
// {
// glColor3f(0.0,1.0,1.0);
// int i=d->getLabel();
// int j=(map.alpha1(d))->getLabel();
// glVertex3fv(fv1[i].getData());
// glVertex3fv(fv1[j].getData());
// glColor3f(1.0,0.0,0.0);
// j=(map.alpha(2,d))->getLabel();
// glVertex3fv(fv2[i].getData());
// glVertex3fv(fv2[j].getData());
// }
// glEnd();
//}
template
<
typename
PFP
>
void
renderTopoMD2
(
typename
PFP
::
MAP
&
map
,
const
typename
PFP
::
TVEC3
&
positions
,
bool
drawPhi1
,
bool
drawPhi2
,
float
ke
,
float
kf
)
...
...
@@ -256,223 +137,6 @@ void renderTopoMD2(typename PFP::MAP& map, const typename PFP::TVEC3& positions,
}
//template<typename PFP>
//class FunctorMD3Face : public FunctorMap<typename PFP::MAP>
//{
// typedef typename PFP::MAP MAP;
// typedef typename PFP::VEC3 VEC3;
//
//
// protected:
// std::vector<VEC3>& m_vf1;
//
// VEC3 m_volCenter;
// int m_lab;
// float m_ke;
// float m_kf;
// float m_kv;
// DartMarkerStore m_mark;
// bool m_drawPhi1;
//
// typename PFP::TVEC3 m_positions;
//
// public:
// FunctorMD3Face(MAP& map, typename PFP::TVEC3& positions, std::vector<VEC3>& vf1, float ke, float kf, float kv, Marker m, bool df1):
// FunctorMap<MAP>(map), m_positions(positions), m_vf1(vf1), m_lab(0), m_ke(ke), m_kf(kf), m_kv(kv), m_mark(m),m_drawPhi1(df1)
// {}
//
// void setVolCenter(const VEC3& vc) { m_volCenter = vc;}
//
// bool operator()(Dart d)
// {
// this->m_mark.markDart(d);
//
// VEC3 vPosPhi1[256]; // max 256 sides per face
//
// std::vector<VEC3> vecPos;
// vecPos.reserve(16);
// VEC3 centerFace(0.0f,0.0f,0.0f);
//
// float k = 1.0f - m_kv;
//
// Dart dd = d;
// do
// {
// VEC3 P = m_positions[dd];//this->m_map.getEmbedding(VERTEX,dd)->getPosition();
// VEC3 Q = m_volCenter*k + m_kv*P;
// centerFace += Q;
// vecPos.push_back(Q);
// dd = m_lab++;
// dd = this->m_map.phi1(dd);
// }while (dd!=d);
//
// int nb=vecPos.size();
//
// centerFace /= float(nb);
//
// k = 1.0f - m_kf;
// for (int i=0; i<nb; ++i)
// {
// vecPos[i] = centerFace*k + vecPos[i]*m_kf;
// }
// vecPos.push_back(vecPos.front());
//
// glTexCoord3f(m_volCenter[0],m_volCenter[1],m_volCenter[2]);
//
// k = (1.0f - m_ke)/2.0f;
// float ke = 1.0f - k;
//
// for (int i=0; i<nb; ++i)
// {
// VEC3 P = vecPos[i];
// VEC3 Q = vecPos[i+1]*ke + vecPos[i]*k;
// glColor3f(1.0f,1.0f,0.0f);
// glVertex3fv(P);
// glColor3f(1.0f,1.0f,1.0f);
// glVertex3fv(Q);
// VEC3 f = P*0.5f + Q*0.5f;
// m_vf1.push_back(f);
// f = P*0.9f + Q*0.1f;
// vPosPhi1[i] = f;
// d = this->m_map.phi1(d);
// }
//
// if (m_drawPhi1)
// {
// for (int i=0; i<nb; ++i)
// {
// glColor3f(0.0f,1.0f,1.0f);
// int k=d;
// int j=(i+1)%nb;
// VEC3 fv3 = 2.0f*m_vf1[k] - vPosPhi1[i];
// glVertex3fv(fv3);
// glVertex3fv(vPosPhi1[j]);
// d = this->m_map.phi1(d);
// }
// }
// return false;
// }
//};
//template <typename PFP>
//void renderTopoMD3(typename PFP::MAP& map, typename PFP::TVEC3& positions, bool drawPhi1, bool drawPhi2, bool drawPhi3, float ke, float kf, float kv, FunctorType& good)
//{
// typedef typename PFP::VEC3 VEC3;
// typedef typename PFP::REAL REAL;
//
// std::vector<VEC3> vPosPhi23;
//
// vPosPhi23.reserve(map.getNbDarts());
//
// glLineWidth(1.0f);
// glBegin(GL_LINES);
// glColor3f(1.0f,1.0f,1.0f);
//
// std::vector<Dart> vecDarts;
// vecDarts.reserve(50);
// FunctorStore fvol(vecDarts);
//
// DartMarkerStore markerFace(map);
//
// FunctorMD3Face<PFP> fgl_cd(map,positions,vPosPhi23,ke,kf,kv,markerFace,drawPhi1);
//
// // Scan all darts of the map
// for(Dart d = map.begin(); d != map.end(); map.next(d))
// {
// if ( good(d) && (!markerFace.isMarked(d))) // foreach volume (not already marked)
// {
// VEC3 centerVol= Algo::Geometry::volumeCentroid<PFP>(map,d, positions) ; // compute center
// fgl_cd.setVolCenter(centerVol); //set center of volume in face drawing fonctor
//
// vecDarts.clear();
// map.foreach_dart_of_oriented_volume(d,fvol); // get all darts of voluùe
//
// for (typename std::vector<Dart>::iterator it = vecDarts.begin(); it != vecDarts.end(); ++it)
// {
// if (!markerFace.isMarked(*it)) // for all face of the volume
// {
// fgl_cd(*it);
// }
// }
// }
// }
//
// markerFace.unmarkAll();
//
// glEnd();
// glLineWidth(2.0f);
// glBegin(GL_LINES);
//
// // si on doit tracer phi2 & phi3 : unes seule passe
// if ( drawPhi2 && drawPhi3)
// {
// for(Dart d = map.begin(); d!= map.end(); map.next(d))
// {
// if (good(d))
// {
// int i=d;
// glTexCoord3f(vPosPhi23[i][0],vPosPhi23[i][1],vPosPhi23[i][2]);
//
// if (good(map.phi2(d)))
// {
// glColor3f(1.0,0.0,0.0);
// int j=(map.phi2(d));
// glVertex3fv(vPosPhi23[i].getData());
// glVertex3fv(vPosPhi23[j].getData());
// }
// if (good(map.phi3(d)))
// {
// glColor3f(1.0,0.0,1.0);
// int j=(map.phi3(d));
// glVertex3fv(vPosPhi23[i].getData());
// glVertex3fv(vPosPhi23[j].getData());
// }
// }
// }
// glEnd();
// return; // on sort pour ne pas repasser dans les 2 if (pas très grave)
// }
//
// if (drawPhi2)
// {
// for(Dart d = map.begin(); d!= map.end(); map.next(d))
// {
// if (good(d) && good(map.phi2(d)))
// {
// glColor3f(1.0,0.0,0.0);
// int i=d;
// glTexCoord3f(vPosPhi23[i][0],vPosPhi23[i][1],vPosPhi23[i][2]);
// int j=(map.phi2(d));
// glVertex3fv(vPosPhi23[i].getData());
// glVertex3fv(vPosPhi23[j].getData());
// }
// }
// }
//
// if (drawPhi3)
// {
// for(Dart d = map.begin(); d!= map.end(); map.next(d))
// {
// if (good(d) && good(map.phi3(d)))
// {
// glColor3f(1.0,0.0,1.0);
// int i=d;
// glTexCoord3f(vPosPhi23[i][0],vPosPhi23[i][1],vPosPhi23[i][2]);
// int j=(map.phi3(d));
// glVertex3fv(vPosPhi23[i].getData());
// glVertex3fv(vPosPhi23[j].getData());
// }
// }
// }
//
// glEnd(); // end Lines for phi
//
//}
template
<
typename
PFP
>
void
renderTopoMD3
(
typename
PFP
::
MAP
&
map
,
typename
PFP
::
TVEC3
&
positions
,
bool
drawPhi1
,
bool
drawPhi2
,
bool
drawPhi3
,
float
ke
,
float
kf
,
float
kv
)
{
...
...
include/Algo/Render/GL2/topo3Render.h
View file @
033d38b8
...
...
@@ -76,7 +76,6 @@ protected:
Utils
::
ShaderSimpleColor
*
m_shader1
;
Utils
::
ShaderColorPerVertex
*
m_shader2
;
/**
*number of darts to draw
*/
...
...
@@ -171,19 +170,6 @@ public:
*/
~
Topo3Render
();
/**
* update all drawing buffers
* @param map the map
* @param good selector
* @param positions attribute of position vertices
* @param ke exploding coef for edge
* @param kf exploding coef for face
* @param kv exploding coef for face
*/
// template<typename PFP>
// void updateData(typename PFP::MAP& map, const FunctorSelect& good, const typename PFP::TVEC3& positions, float ke, float kf, float kv);
/**
* set the with of line use to draw darts (default val is 2)
* @param dw width
...
...
@@ -278,24 +264,6 @@ public:
};
//template<typename MAP>
//class topo3_VBORenderMap: public topo3_VBORender
//{
//public:
// /**
// * update all drawing buffers
// * @param map the map
// * @param good selector
// * @param positions attribute of position vertices
// * @param ke exploding coef for edge
// * @param kf exploding coef for face
// * @param kv exploding coef for face
// */
// template<typename PFP>
// void updateData(typename PFP::MAP& map, const FunctorSelect& good, const typename PFP::TVEC3& positions, float ke, float kf, float kv) {}
//};
class
Topo3RenderMapD
:
public
Topo3Render
...
...
@@ -313,23 +281,23 @@ public:
template
<
typename
PFP
>
void
updateData
(
typename
PFP
::
MAP
&
map
,
const
FunctorSelect
&
good
,
const
typename
PFP
::
TVEC3
&
positions
,
float
ke
,
float
kf
,
float
kv
);
};
//
//
//
class Topo3RenderGMap: public Topo3Render
//
{
//
public:
//
/**
//
* update all drawing buffers
//
* @param map the map
//
* @param good selector
//
* @param positions attribute of position vertices
//
* @param ke exploding coef for edge
//
* @param kf exploding coef for face
//
* @param kv exploding coef for face
//
*/
//
template<typename PFP>
// void updateData(typename PFP::MAP& map, const FunctorSelect& good, const typename PFP::TVEC3& positions
, float ke, float kf, float kv);
//
};
class
Topo3RenderGMap
:
public
Topo3Render
{
public:
/**
* update all drawing buffers
* @param map the map
* @param good selector
* @param positions attribute of position vertices
* @param ke exploding coef for edge
* @param kf exploding coef for face
* @param kv exploding coef for face
*/
template
<
typename
PFP
>
void
updateData
(
typename
PFP
::
MAP
&
map
,
const
FunctorSelect
&
good
,
const
typename
PFP
::
TVEC3
&
positions
,
float
kd
,
float
ke
,
float
kf
,
float
kv
);
};
}
//end namespace VBO
...
...
include/Algo/Render/GL2/topo3Render.hpp
View file @
033d38b8
This diff is collapsed.
Click to expand it.
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment