Help with Point Primitives

Hi guys, I’m having some trouble getting my point to show. I’m probably missing something. Can you help me out? Thanks!

import direct.directbase.DirectStart
from pandac.PandaModules import * 

class test:
	def __init__(self):
		
		self.array = GeomVertexArrayFormat()
		self.array.addColumn(InternalName.make('vertex'), 1,  Geom.NTFloat32, Geom.CPoint)
		self.format = GeomVertexFormat()
		self.format.addArray(self.array)
		self.format = GeomVertexFormat.registerFormat(self.format)
		
		self.vdata = GeomVertexData('origin', self.format, Geom.UHStatic)
		
		self.vertex = GeomVertexWriter(self.vdata, 'vertex')
		self.vertex.addData3f(0,0,0)
		
		self.prim = GeomPoints(Geom.UHStatic)

		self.prim.addVertex(0)
		self.prim.closePrimitive()
		
		self.geom = Geom(self.vdata)
		self.geom.addPrimitive(self.prim)

		self.node = GeomNode('gnode')
		self.node.addGeom(self.geom)
		
		self.nodePath = render.attachNewNode(self.node)
		self.nodePath.setRenderModeThickness(1)

a = test()	

if __name__ == '__main__':
	run()

Your vertex column doesn’t have enough space to store x, y, z. You need three components, not just 1. Try this instead:

self.array.addColumn(InternalName.make('vertex'), 3,  Geom.NTFloat32, Geom.CPoint)

Other that, it looks fine to me. This points a single point at (0, 0, 0). Since this is also the same position as your camera, you’ll need to pull back with the mouse in order to see it. Or, just put the point somewhere in front of the camera instead, for instance at (0, 10, 0).

David