You can download this code by clicking the button below.
This code is now available for download.
This code creates a randomly colored cube and adds it to the Panda3D scene. It uses techniques such as geometric object creation, color setting, and scene node operations in Panda3D.
Technology Stack : Panda3D, ShowBase, Geom, GeomVertexFormat, GeomVertexWriter, makeNodePath, Vec4
Code Type : The type of code
Code Difficulty :
def create_random_cube(color, size):
from direct.showbase.ShowBase import ShowBase
from panda3d.core import Geom, GeomVertexFormat, GeomVertexWriter, makeNodePath
from panda3d.core import Vec4
class CubeApp(ShowBase):
def __init__(self):
ShowBase.__init__(self)
self.create_cube(color, size)
def create_cube(self, color, size):
format = GeomVertexFormat.getV3c4()
vertices = [
(-size, -size, -size), (size, -size, -size), (size, size, -size), (-size, size, -size),
(-size, -size, -size), (-size, size, -size), (size, size, -size), (size, -size, -size),
(-size, -size, size), (size, -size, size), (size, size, size), (-size, size, size),
(-size, -size, size), (-size, size, size), (size, size, size), (size, -size, size),
(-size, -size, -size), (-size, -size, size), (-size, size, size), (-size, size, -size),
(-size, -size, size), (-size, size, size), (size, size, size), (size, -size, size),
(size, -size, -size), (size, -size, size), (size, size, size), (size, size, -size),
(-size, -size, -size), (size, -size, -size), (size, size, -size), (-size, size, -size)
]
colors = [
color, color, color, color, color, color, color, color,
color, color, color, color, color, color, color, color,
color, color, color, color, color, color, color, color,
color, color, color, color, color, color, color, color
]
geom = Geom(format)
vertex_writer = geom.add_vertex_writer(format.get_vertex_size())
for i in range(0, len(vertices), 4):
vertex_writer.add_data(vertices[i])
vertex_writer.add_data(vertices[i+1])
vertex_writer.add_data(vertices[i+2])
vertex_writer.add_data(vertices[i+3])
geom.add_color(0, color)
geom.add_color(1, color)
geom.add_color(2, color)
geom.add_color(3, color)
geom.add_color(4, color)
geom.add_color(5, color)
geom.add_color(6, color)
geom.add_color(7, color)
geom.add_color(8, color)
geom.add_color(9, color)
geom.add_color(10, color)
geom.add_color(11, color)
geom.add_color(12, color)
geom.add_color(13, color)
geom.add_color(14, color)
geom.add_color(15, color)
geom.add_color(16, color)
geom.add_color(17, color)
geom.add_color(18, color)
geom.add_color(19, color)
geom.add_color(20, color)
geom.add_color(21, color)
geom.add_color(22, color)
geom.add_color(23, color)
mesh = geom.generate_mesh()
self.scene_node.attach_new_node(makeNodePath(mesh, "cube"))
app = CubeApp()
app.run()