Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
What's new
10
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Open sidebar
KennethVanhoey
CGoGN
Commits
9da47178
Commit
9da47178
authored
Feb 13, 2013
by
Pierre Kraemer
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
SCHNApps: first step towards attributes modifications notification & handling
parent
a75d3772
Changes
18
Hide whitespace changes
Inline
Side-by-side
Showing
18 changed files
with
92 additions
and
116 deletions
+92
-116
SCHNApps/CMakeLists.txt
SCHNApps/CMakeLists.txt
+1
-0
SCHNApps/Plugins/differentialProperties/include/computeNormalDialog.h
...gins/differentialProperties/include/computeNormalDialog.h
+2
-0
SCHNApps/Plugins/differentialProperties/include/differentialProperties.h
...s/differentialProperties/include/differentialProperties.h
+9
-0
SCHNApps/Plugins/differentialProperties/src/computeNormalDialog.cpp
...lugins/differentialProperties/src/computeNormalDialog.cpp
+16
-2
SCHNApps/Plugins/differentialProperties/src/differentialProperties.cpp
...ins/differentialProperties/src/differentialProperties.cpp
+3
-0
SCHNApps/Plugins/render/forms/render.ui
SCHNApps/Plugins/render/forms/render.ui
+1
-1
SCHNApps/Plugins/renderExplod/forms/renderExplod.ui
SCHNApps/Plugins/renderExplod/forms/renderExplod.ui
+1
-1
SCHNApps/Plugins/surfaceDeformation/src/surfaceDeformation.cpp
...pps/Plugins/surfaceDeformation/src/surfaceDeformation.cpp
+4
-1
SCHNApps/include/mapHandler.h
SCHNApps/include/mapHandler.h
+39
-83
SCHNApps/src/dialogs/cameraViewDialog.cpp
SCHNApps/src/dialogs/cameraViewDialog.cpp
+2
-2
SCHNApps/src/dialogs/camerasDialog.cpp
SCHNApps/src/dialogs/camerasDialog.cpp
+2
-2
SCHNApps/src/dialogs/mapsDialog.cpp
SCHNApps/src/dialogs/mapsDialog.cpp
+2
-2
SCHNApps/src/dialogs/mapsViewDialog.cpp
SCHNApps/src/dialogs/mapsViewDialog.cpp
+2
-2
SCHNApps/src/dialogs/pluginsDialog.cpp
SCHNApps/src/dialogs/pluginsDialog.cpp
+2
-1
SCHNApps/src/dialogs/pluginsViewDialog.cpp
SCHNApps/src/dialogs/pluginsViewDialog.cpp
+2
-2
SCHNApps/src/mapHandler.cpp
SCHNApps/src/mapHandler.cpp
+0
-13
include/Algo/Geometry/area.h
include/Algo/Geometry/area.h
+1
-1
include/Utils/drawer.h
include/Utils/drawer.h
+3
-3
No files found.
SCHNApps/CMakeLists.txt
View file @
9da47178
...
...
@@ -112,6 +112,7 @@ file(
SCHNApps_FILES
${
SCHNApps_ROOT_DIR
}
/src/*.cpp
${
SCHNApps_ROOT_DIR
}
/include/*.h
${
SCHNApps_ROOT_DIR
}
/include/*.hpp
)
file
(
...
...
SCHNApps/Plugins/differentialProperties/include/computeNormalDialog.h
View file @
9da47178
...
...
@@ -28,6 +28,8 @@ public slots:
void
addMapToList
(
MapHandlerGen
*
m
);
void
removeMapFromList
(
MapHandlerGen
*
m
);
void
addAttributeToList
(
unsigned
int
orbit
,
const
QString
&
nameAttr
);
void
attributeModified
(
unsigned
int
orbit
,
QString
nameAttr
);
};
}
// namespace SCHNApps
...
...
SCHNApps/Plugins/differentialProperties/include/differentialProperties.h
View file @
9da47178
...
...
@@ -72,6 +72,15 @@ private:
QAction
*
m_computeNormalAction
;
QAction
*
m_computeCurvatureAction
;
struct
ComputeNormalParameters
{
ComputeNormalParameters
()
{}
ComputeNormalParameters
(
QString
p
,
QString
n
)
:
positionName
(
p
),
normalName
(
n
)
{}
QString
positionName
;
QString
normalName
;
};
QHash
<
QString
,
ComputeNormalParameters
>
computeNormalLastParameters
;
};
#endif
SCHNApps/Plugins/differentialProperties/src/computeNormalDialog.cpp
View file @
9da47178
...
...
@@ -25,7 +25,11 @@ ComputeNormalDialog::ComputeNormalDialog(Window* w) :
const
QList
<
MapHandlerGen
*>&
maps
=
m_window
->
getMapsList
();
foreach
(
MapHandlerGen
*
map
,
maps
)
mapList
->
addItem
(
map
->
getName
());
{
QListWidgetItem
*
item
=
new
QListWidgetItem
(
map
->
getName
(),
mapList
);
item
->
setCheckState
(
Qt
::
Unchecked
);
connect
(
map
,
SIGNAL
(
attributeModified
(
unsigned
int
,
QString
)),
this
,
SLOT
(
attributeModified
(
unsigned
int
,
QString
)));
}
}
void
ComputeNormalDialog
::
selectedMapChanged
()
...
...
@@ -71,7 +75,8 @@ void ComputeNormalDialog::selectedMapChanged()
void
ComputeNormalDialog
::
addMapToList
(
MapHandlerGen
*
m
)
{
mapList
->
addItem
(
m
->
getName
());
QListWidgetItem
*
item
=
new
QListWidgetItem
(
m
->
getName
(),
mapList
);
item
->
setCheckState
(
Qt
::
Unchecked
);
}
void
ComputeNormalDialog
::
removeMapFromList
(
MapHandlerGen
*
m
)
...
...
@@ -100,6 +105,15 @@ void ComputeNormalDialog::addAttributeToList(unsigned int orbit, const QString&
}
}
void
ComputeNormalDialog
::
attributeModified
(
unsigned
int
orbit
,
QString
nameAttr
)
{
MapHandlerGen
*
map
=
static_cast
<
MapHandlerGen
*>
(
QObject
::
sender
());
// if(orbit == VERTEX && nameAttr == )
// {
// }
}
}
// namespace SCHNApps
}
// namespace CGoGN
SCHNApps/Plugins/differentialProperties/src/differentialProperties.cpp
View file @
9da47178
...
...
@@ -139,6 +139,9 @@ void DifferentialPropertiesPlugin::computeNormal(
if
(
createNormalVBO
)
mh
->
createVBO
(
normal
);
computeNormalLastParameters
[
mapName
]
=
ComputeNormalParameters
(
positionAttributeName
,
normalAttributeName
)
;
QList
<
View
*>
views
=
mh
->
getLinkedViews
();
foreach
(
View
*
view
,
views
)
view
->
updateGL
();
...
...
SCHNApps/Plugins/render/forms/render.ui
View file @
9da47178
...
...
@@ -7,7 +7,7 @@
<x>
0
</x>
<y>
0
</y>
<width>
174
</width>
<height>
54
7
</height>
<height>
54
5
</height>
</rect>
</property>
<property
name=
"windowTitle"
>
...
...
SCHNApps/Plugins/renderExplod/forms/renderExplod.ui
View file @
9da47178
...
...
@@ -7,7 +7,7 @@
<x>
0
</x>
<y>
0
</y>
<width>
174
</width>
<height>
55
3
</height>
<height>
5
4
5
</height>
</rect>
</property>
<property
name=
"windowTitle"
>
...
...
SCHNApps/Plugins/surfaceDeformation/src/surfaceDeformation.cpp
View file @
9da47178
...
...
@@ -192,7 +192,9 @@ void SurfaceDeformationPlugin::keyPress(View* view, QKeyEvent* event)
if
(
map
)
{
asRigidAsPossible
(
view
,
map
);
params
->
selectedMap
->
updateVBO
(
params
->
getCurrentMapParameterSet
()
->
positionAttribute
);
PerMapParameterSet
*
perMap
=
params
->
perMap
[
map
->
getName
()];
params
->
selectedMap
->
updateVBO
(
perMap
->
positionAttribute
);
params
->
selectedMap
->
notifyAttributeModification
(
perMap
->
positionAttribute
);
view
->
updateGL
();
}
}
...
...
@@ -318,6 +320,7 @@ void SurfaceDeformationPlugin::mouseMove(View* view, QMouseEvent* event)
asRigidAsPossible
(
view
,
params
->
selectedMap
);
params
->
selectedMap
->
updateVBO
(
perMap
->
positionAttribute
);
params
->
selectedMap
->
notifyAttributeModification
(
perMap
->
positionAttribute
);
view
->
updateGL
();
}
...
...
SCHNApps/include/mapHandler.h
View file @
9da47178
...
...
@@ -29,107 +29,68 @@ public:
MapHandlerGen
(
const
QString
&
name
,
Window
*
window
,
GenericMap
*
map
);
virtual
~
MapHandlerGen
();
const
QString
&
getName
()
const
{
return
m_name
;
}
inline
const
QString
&
getName
()
const
{
return
m_name
;
}
public
slots
:
QString
getName
()
{
return
m_name
;
}
void
setName
(
const
QString
&
name
)
{
m_name
=
name
;
}
inline
QString
getName
()
{
return
m_name
;
}
inline
void
setName
(
const
QString
&
name
)
{
m_name
=
name
;
}
Window
*
getWindow
()
const
{
return
m_window
;
}
void
setWindow
(
Window
*
w
)
{
m_window
=
w
;
}
inline
Window
*
getWindow
()
const
{
return
m_window
;
}
inline
void
setWindow
(
Window
*
w
)
{
m_window
=
w
;
}
GenericMap
*
getGenericMap
()
const
{
return
m_map
;
}
inline
GenericMap
*
getGenericMap
()
const
{
return
m_map
;
}
const
qglviewer
::
Vec
&
getBBmin
()
const
{
return
m_bbMin
;
}
const
qglviewer
::
Vec
&
getBBmax
()
const
{
return
m_bbMax
;
}
float
getBBdiagSize
()
const
{
return
m_bbDiagSize
;
}
inline
const
qglviewer
::
Vec
&
getBBmin
()
const
{
return
m_bbMin
;
}
inline
const
qglviewer
::
Vec
&
getBBmax
()
const
{
return
m_bbMax
;
}
inline
float
getBBdiagSize
()
const
{
return
m_bbDiagSize
;
}
bool
isUsed
()
const
{
return
!
l_views
.
empty
();
}
inline
bool
isUsed
()
const
{
return
!
l_views
.
empty
();
}
public:
virtual
void
draw
(
Utils
::
GLSLShader
*
shader
,
int
primitive
)
=
0
;
void
setPrimitiveDirty
(
int
primitive
)
{
m_render
->
setPrimitiveDirty
(
primitive
);
}
inline
void
setPrimitiveDirty
(
int
primitive
)
{
m_render
->
setPrimitiveDirty
(
primitive
);
}
/*********************************************************
* MANAGE ATTRIBUTES
*********************************************************/
template
<
typename
T
,
unsigned
int
ORBIT
>
AttributeHandler
<
T
,
ORBIT
>
getAttribute
(
const
QString
&
nameAttr
,
bool
onlyRegistered
=
true
)
const
{
if
(
onlyRegistered
)
{
if
(
h_attribs
[
ORBIT
].
contains
(
nameAttr
))
return
static_cast
<
AttribMap
*>
(
m_map
)
->
getAttribute
<
T
,
ORBIT
>
(
nameAttr
.
toStdString
());
else
return
AttributeHandler
<
T
,
ORBIT
>
();
}
else
return
static_cast
<
AttribMap
*>
(
m_map
)
->
getAttribute
<
T
,
ORBIT
>
(
nameAttr
.
toStdString
());
}
AttributeHandler
<
T
,
ORBIT
>
getAttribute
(
const
QString
&
nameAttr
,
bool
onlyRegistered
=
true
)
const
;
template
<
typename
T
,
unsigned
int
ORBIT
>
AttributeHandler
<
T
,
ORBIT
>
addAttribute
(
const
QString
&
nameAttr
,
bool
registerAttr
=
true
)
{
AttributeHandler
<
T
,
ORBIT
>
ah
=
static_cast
<
AttribMap
*>
(
m_map
)
->
addAttribute
<
T
,
ORBIT
>
(
nameAttr
.
toStdString
());
if
(
ah
.
isValid
()
&&
registerAttr
)
{
registerAttribute
(
ah
);
emit
(
attributeAdded
(
ORBIT
,
nameAttr
));
}
return
ah
;
}
AttributeHandler
<
T
,
ORBIT
>
addAttribute
(
const
QString
&
nameAttr
,
bool
registerAttr
=
true
);
template
<
typename
T
,
unsigned
int
ORBIT
>
void
registerAttribute
(
const
AttributeHandler
<
T
,
ORBIT
>&
ah
)
inline
void
registerAttribute
(
const
AttributeHandler
<
T
,
ORBIT
>&
ah
);
inline
QString
getAttributeTypeName
(
unsigned
int
orbit
,
const
QString
&
nameAttr
)
const
;
inline
const
AttributeHash
&
getAttributesList
(
unsigned
int
orbit
)
const
{
return
h_attribs
[
orbit
];
}
template
<
typename
T
,
unsigned
int
ORBIT
>
inline
void
notifyAttributeModification
(
const
AttributeHandler
<
T
,
ORBIT
>&
attr
)
{
h_
attrib
s
[
ORBIT
].
insert
(
QString
::
fromStdString
(
a
h
.
name
()),
QString
::
fromStdString
(
nameOfType
(
T
())));
emit
(
attrib
uteModified
(
ORBIT
,
QString
::
fromStdString
(
a
ttr
.
name
())));
}
QString
getAttributeTypeName
(
unsigned
int
orbit
,
const
QString
&
nameAttr
)
const
inline
void
notifyConnectivityModification
()
{
if
(
h_attribs
[
orbit
].
contains
(
nameAttr
))
return
h_attribs
[
orbit
][
nameAttr
];
else
return
""
;
emit
(
connectivityModified
());
}
const
AttributeHash
&
getAttributesList
(
unsigned
int
orbit
)
const
{
return
h_attribs
[
orbit
];
}
/*********************************************************
* MANAGE VBOs
*********************************************************/
template
<
typename
ATTR_HANDLER
>
Utils
::
VBO
*
createVBO
(
const
ATTR_HANDLER
&
attr
)
{
QString
name
=
QString
::
fromStdString
(
attr
.
name
());
Utils
::
VBO
*
vbo
=
getVBO
(
name
);
if
(
!
vbo
)
{
vbo
=
new
Utils
::
VBO
();
h_vbo
.
insert
(
name
,
vbo
);
}
vbo
->
updateData
(
attr
);
emit
(
vboAdded
(
vbo
));
return
vbo
;
}
Utils
::
VBO
*
createVBO
(
const
ATTR_HANDLER
&
attr
);
template
<
typename
ATTR_HANDLER
>
void
updateVBO
(
const
ATTR_HANDLER
&
attr
)
{
Utils
::
VBO
*
vbo
=
getVBO
(
QString
::
fromStdString
(
attr
.
name
()));
if
(
vbo
)
vbo
->
updateData
(
attr
);
}
void
updateVBO
(
const
ATTR_HANDLER
&
attr
);
Utils
::
VBO
*
getVBO
(
const
QString
&
name
)
const
;
QList
<
Utils
::
VBO
*>
getVBOList
()
const
{
return
h_vbo
.
values
();
}
QList
<
Utils
::
VBO
*>
getVBOList
(
const
std
::
string
&
typeName
)
const
;
inline
QList
<
Utils
::
VBO
*>
getVBOList
()
const
{
return
h_vbo
.
values
();
}
void
deleteVBO
(
const
QString
&
name
);
/*********************************************************
...
...
@@ -138,8 +99,8 @@ public:
void
linkView
(
View
*
view
);
void
unlinkView
(
View
*
view
);
const
QList
<
View
*>&
getLinkedViews
()
const
{
return
l_views
;
}
bool
isLinkedToView
(
View
*
view
)
const
{
return
l_views
.
contains
(
view
);
}
inline
const
QList
<
View
*>&
getLinkedViews
()
const
{
return
l_views
;
}
inline
bool
isLinkedToView
(
View
*
view
)
const
{
return
l_views
.
contains
(
view
);
}
protected:
QString
m_name
;
...
...
@@ -158,7 +119,11 @@ protected:
AttributeHash
h_attribs
[
NB_ORBITS
];
signals:
void
attributeAdded
(
unsigned
int
orbit
,
const
QString
&
name
);
void
connectivityModified
();
void
attributeAdded
(
unsigned
int
orbit
,
const
QString
&
nameAttr
);
void
attributeModified
(
unsigned
int
orbit
,
QString
nameAttr
);
void
vboAdded
(
Utils
::
VBO
*
vbo
);
void
vboRemoved
(
Utils
::
VBO
*
vbo
);
};
...
...
@@ -177,26 +142,17 @@ public:
delete
m_map
;
}
virtual
void
draw
(
Utils
::
GLSLShader
*
shader
,
int
primitive
)
{
if
(
!
m_render
->
isPrimitiveUpToDate
(
primitive
))
m_render
->
initPrimitives
<
PFP
>
(
*
(
static_cast
<
typename
PFP
::
MAP
*>
(
m_map
)),
allDarts
,
primitive
)
;
m_render
->
draw
(
shader
,
primitive
);
}
void
draw
(
Utils
::
GLSLShader
*
shader
,
int
primitive
);
typename
PFP
::
MAP
*
getMap
()
{
return
static_cast
<
typename
PFP
::
MAP
*>
(
m_map
);
}
inline
typename
PFP
::
MAP
*
getMap
()
{
return
static_cast
<
typename
PFP
::
MAP
*>
(
m_map
);
}
void
updateBB
(
const
VertexAttribute
<
typename
PFP
::
VEC3
>&
position
)
{
CGoGN
::
Geom
::
BoundingBox
<
typename
PFP
::
VEC3
>
bb
=
CGoGN
::
Algo
::
Geometry
::
computeBoundingBox
<
PFP
>
(
*
(
static_cast
<
typename
PFP
::
MAP
*>
(
m_map
)),
position
);
m_bbMin
=
qglviewer
::
Vec
(
bb
.
min
()[
0
],
bb
.
min
()[
1
],
bb
.
min
()[
2
]);
m_bbMax
=
qglviewer
::
Vec
(
bb
.
max
()[
0
],
bb
.
max
()[
1
],
bb
.
max
()[
2
]);
m_bbDiagSize
=
(
m_bbMax
-
m_bbMin
).
norm
();
}
void
updateBB
(
const
VertexAttribute
<
typename
PFP
::
VEC3
>&
position
);
};
}
// namespace SCHNApps
}
// namespace CGoGN
#include "mapHandler.hpp"
#endif
SCHNApps/src/dialogs/cameraViewDialog.cpp
View file @
9da47178
...
...
@@ -19,8 +19,8 @@ CameraViewDialog::CameraViewDialog(Window* window, View* view) :
m_view
(
view
),
b_refreshingUI
(
false
)
{
this
->
setupUi
(
this
);
this
->
setWindowTitle
(
m_view
->
getName
()
+
QString
(
" : camera"
));
setupUi
(
this
);
setWindowTitle
(
m_view
->
getName
()
+
QString
(
" : camera"
));
connect
(
cameraList
,
SIGNAL
(
itemSelectionChanged
()),
this
,
SLOT
(
selectedCameraChanged
()));
...
...
SCHNApps/src/dialogs/camerasDialog.cpp
View file @
9da47178
...
...
@@ -16,8 +16,8 @@ CamerasDialog::CamerasDialog(Window* window) :
QDialog
(
window
),
m_window
(
window
)
{
this
->
setupUi
(
this
);
this
->
setModal
(
false
);
setupUi
(
this
);
setModal
(
false
);
connect
(
addCameraButton
,
SIGNAL
(
clicked
()),
this
,
SLOT
(
cb_addCamera
()));
connect
(
removeCamerasButton
,
SIGNAL
(
clicked
()),
this
,
SLOT
(
cb_removeCameras
()));
...
...
SCHNApps/src/dialogs/mapsDialog.cpp
View file @
9da47178
...
...
@@ -16,8 +16,8 @@ MapsDialog::MapsDialog(Window* window) :
QDialog
(
window
),
m_window
(
window
)
{
this
->
setupUi
(
this
);
this
->
setModal
(
false
);
setupUi
(
this
);
setModal
(
false
);
connect
(
button_removeMap
,
SIGNAL
(
clicked
()),
this
,
SLOT
(
cb_removeMap
()));
connect
(
button_refreshMapInfo
,
SIGNAL
(
clicked
()),
this
,
SLOT
(
cb_selectedMapChanged
()));
...
...
SCHNApps/src/dialogs/mapsViewDialog.cpp
View file @
9da47178
...
...
@@ -20,8 +20,8 @@ MapsViewDialog::MapsViewDialog(Window* window, View* view) :
m_view
(
view
),
b_refreshingUI
(
false
)
{
this
->
setupUi
(
this
);
this
->
setWindowTitle
(
m_view
->
getName
()
+
QString
(
" : maps"
));
setupUi
(
this
);
setWindowTitle
(
m_view
->
getName
()
+
QString
(
" : maps"
));
connect
(
mapList
,
SIGNAL
(
itemSelectionChanged
()),
this
,
SLOT
(
selectedMapsChanged
()));
...
...
SCHNApps/src/dialogs/pluginsDialog.cpp
View file @
9da47178
...
...
@@ -17,7 +17,8 @@ PluginsDialog::PluginsDialog(Window* window) :
m_window
(
window
),
b_refreshingUI
(
false
)
{
this
->
setupUi
(
this
);
setupUi
(
this
);
setModal
(
false
);
connect
(
button_registerDirectory
,
SIGNAL
(
pressed
()),
this
,
SLOT
(
registerPluginsDirectory
()));
connect
(
list_plugins
,
SIGNAL
(
itemChanged
(
QListWidgetItem
*
)),
this
,
SLOT
(
togglePlugin
(
QListWidgetItem
*
)));
...
...
SCHNApps/src/dialogs/pluginsViewDialog.cpp
View file @
9da47178
...
...
@@ -19,8 +19,8 @@ PluginsViewDialog::PluginsViewDialog(Window* window, View* view) :
m_view
(
view
),
b_refreshingUI
(
false
)
{
this
->
setupUi
(
this
);
this
->
setWindowTitle
(
m_view
->
getName
()
+
QString
(
" : plugins"
));
setupUi
(
this
);
setWindowTitle
(
m_view
->
getName
()
+
QString
(
" : plugins"
));
connect
(
pluginList
,
SIGNAL
(
itemSelectionChanged
()),
this
,
SLOT
(
selectedPluginsChanged
()));
...
...
SCHNApps/src/mapHandler.cpp
View file @
9da47178
...
...
@@ -32,19 +32,6 @@ Utils::VBO* MapHandlerGen::getVBO(const QString& name) const
return
NULL
;
}
QList
<
Utils
::
VBO
*>
MapHandlerGen
::
getVBOList
(
const
std
::
string
&
typeName
)
const
{
QList
<
Utils
::
VBO
*>
res
;
VBOHash
::
const_iterator
i
=
h_vbo
.
begin
();
while
(
i
!=
h_vbo
.
end
())
{
if
(
i
.
value
()
->
typeName
()
==
typeName
)
res
.
append
(
i
.
value
());
++
i
;
}
return
res
;
}
void
MapHandlerGen
::
deleteVBO
(
const
QString
&
name
)
{
if
(
h_vbo
.
contains
(
name
))
...
...
include/Algo/Geometry/area.h
View file @
9da47178
...
...
@@ -69,7 +69,7 @@ void computeVoronoiAreaVertices(typename PFP::MAP& map, const VertexAttribute<ty
}
// namespace Geometry
}
}
// namespace Surface
}
// namespace Algo
...
...
include/Utils/drawer.h
View file @
9da47178
...
...
@@ -85,7 +85,7 @@ public:
/**
* init the data structure
* @param com say if compile only, or compile and execute (GL_COMPILE/ GL_COMPILE_AND_EXECUTE)
* @param com
p
say if compile only, or compile and execute (GL_COMPILE
/ GL_COMPILE_AND_EXECUTE)
*/
void
newList
(
GLenum
comp
=
GL_COMPILE
);
...
...
@@ -163,7 +163,7 @@ public:
/**
* update position of VBO of drawer
* @param first index of vertex to update
* @param nb number of vert
ex
t
p
update
* @param nb number of vert
ices
t
o
update
* @param P ptr to table of vertices
*/
void
updatePositions
(
unsigned
int
first
,
unsigned
int
nb
,
const
Geom
::
Vec3f
*
P
);
...
...
@@ -171,7 +171,7 @@ public:
/**
* update position of VBO of drawer
* @param first index of vertex to update
* @param nb number of vert
ex
t
p
update
* @param nb number of vert
ices
t
o
update
* @param P ptr to table of vertices
*/
void
updatePositions
(
unsigned
int
first
,
unsigned
int
nb
,
const
float
*
P
);
...
...
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