oli_d
05/03/2008, 18h19
Bonjour à tous,
Je suis entrain d'écrire un plug pour pouvoir importer des données depuis des fichiers .shp (fichiers de ArcInfo logiciel de SIG de la maison ESRI).
Le but de ce plug est de pouvoir créer automatiquement des maquettes 3D de territoire, en générant automatiquement les volumes bâtis et la végétation à la bonne hauteur en se basant sur des modèles numériques de surface et de terrain.
Je butte sur un tout petit problème pour les bâtiments, j'ai parfois besoin de créer d'après les données du fichier shp des Splines comprenant plusieurs segments.
En lisant la doc il faut théoriquement procéder de la même manière que l'ajout de points, c'est à dire en utilisant la classe VariableChanged .
main(doc,op)
{
if(!instanceof(op,SplineObject))return;//si l'objet n'est pas une Spline on quitte
var nbSeg = op->GetSegmentCount();//on récupère le nombre de segments initial
var nbPt = op->GetPointCount();
var nbSegNew=2;
var tbl =new(array,nbSegNew); //on crée un tableau de la taille du nombre de segments
tbl[0]=2; // dans chaque case on donne le nombre de points par segments
tbl[1]=nbPt-tbl[0]; // le total des cases doit correspondre au nombre total de point de la spline
var vc = new(VariableChanged);// on crée une instance de VC
if(!vc) return FALSE;
vc->Init(nbSeg,nbSegNew);//on initialise avec le nbre de nouveaux segments
var ok = op->MultiMessage(MSG_SEGMENTS_CHANGED,vc);//on envoie le changement à l'objet et aux tags
ok= op->SetSegments(tbl);//on initialise les segments d'après notre tableau
op->Message(MSG_UPDATE);
}
Ce code ne fonctionne pas, le premier "ok" indique vrai mais pas le second .... :coup:
Si j'essaie de prendre le même principe pour ajouter des points à la spline, cela fonctionne.
Est-ce que l'un des rares adeptes du COFFEE du forum (Yann si tu m'écoutes :lol:) aurait déjà eu ce problème et aurait une solution ?
D'avance merci
PS: si cela intéresse quelqu'un j'ai déjà développé un plug qui à l'air de fonctionner et qui permet de générer des modèles de terrain d'après des données ASCII.
Je suis entrain d'écrire un plug pour pouvoir importer des données depuis des fichiers .shp (fichiers de ArcInfo logiciel de SIG de la maison ESRI).
Le but de ce plug est de pouvoir créer automatiquement des maquettes 3D de territoire, en générant automatiquement les volumes bâtis et la végétation à la bonne hauteur en se basant sur des modèles numériques de surface et de terrain.
Je butte sur un tout petit problème pour les bâtiments, j'ai parfois besoin de créer d'après les données du fichier shp des Splines comprenant plusieurs segments.
En lisant la doc il faut théoriquement procéder de la même manière que l'ajout de points, c'est à dire en utilisant la classe VariableChanged .
main(doc,op)
{
if(!instanceof(op,SplineObject))return;//si l'objet n'est pas une Spline on quitte
var nbSeg = op->GetSegmentCount();//on récupère le nombre de segments initial
var nbPt = op->GetPointCount();
var nbSegNew=2;
var tbl =new(array,nbSegNew); //on crée un tableau de la taille du nombre de segments
tbl[0]=2; // dans chaque case on donne le nombre de points par segments
tbl[1]=nbPt-tbl[0]; // le total des cases doit correspondre au nombre total de point de la spline
var vc = new(VariableChanged);// on crée une instance de VC
if(!vc) return FALSE;
vc->Init(nbSeg,nbSegNew);//on initialise avec le nbre de nouveaux segments
var ok = op->MultiMessage(MSG_SEGMENTS_CHANGED,vc);//on envoie le changement à l'objet et aux tags
ok= op->SetSegments(tbl);//on initialise les segments d'après notre tableau
op->Message(MSG_UPDATE);
}
Ce code ne fonctionne pas, le premier "ok" indique vrai mais pas le second .... :coup:
Si j'essaie de prendre le même principe pour ajouter des points à la spline, cela fonctionne.
Est-ce que l'un des rares adeptes du COFFEE du forum (Yann si tu m'écoutes :lol:) aurait déjà eu ce problème et aurait une solution ?
D'avance merci
PS: si cela intéresse quelqu'un j'ai déjà développé un plug qui à l'air de fonctionner et qui permet de générer des modèles de terrain d'après des données ASCII.