LEvel editor/WorldBuilder

Whats a good level editor/WorldBuilder to use with Panda3d?

when you talk about the level or world editor , the purpose and the need for it is the transforms and the positions of the (Model ,Actor ,Lights , Fixed Cams,…) , will while panda doesn’t have an exclusive editor leaving the runtime world editor witch is less practicle , i prefer to use any 3d studio application (3D Studio Max, Maya, Soft Image, Blender)
my choise or work is under 3DS Max .

now if you had made the static models for thelevel or the world and (sky cube if needed ), time comes for you to add Nodes Point For your Dynamic Models (Actor , lights , cames,…) , The best way to accomplish that is by creating a single vertix witch has the pivet point set to vertix position ,and the i adgest the Rotation Value of that node as i need it mostly that for the lights and the cameras or flying models, and give every and each vertix a spesific and a reachable label or name so you can reffer to it when you are about to make the Construct the world or the level class or during the runtime in events,

now how make the placment during the code is just by you will search forthe required node for your dynamic model in the level egg file
by the following syntax
NodePath.find(string const &path)
look at the manual formore details of that function

now the reason behind for You to add the single vertix in the level file instead of and helper witch many studios provide that
1- the single vertix won’t be visible or even collidable .
2- it will cost a very small amount of memory
3- even asingle vertix will be reffered as node witchis enough for you to use it as a guider

the best practicle way for you to understand that from samples file is in the Roaming-ralph Sample file in line 76
[color=green]ralphStartPos = self.environ.find("**/start_point").getPos()
then in the line 82 comes the placment
where the Start_point is the design Name of the Vertix node in the model file .
now lets consider if that was a camera or light cast we even need to set The Rotation Values Or SetHpr()
by adding

[color=green][b]map = loader.loadModel('a pre-made egg file path ')
CameHpr = self.map.find("**/Cam1_point").getHpr()
CamePos = self.map.find("**/Cam1_point").getPos()
#the egg file has a vertix node named Cam1_point

hope i was in help

you were, thanks for the help.