public void drawCylinder(ResourceLocation texture) { Cylinder cylinder = new Cylinder(); cylinder.setDrawStyle(GLU.GLU_FILL); cylinder.setNormals(GLU.GLU_SMOOTH); cylinder.setOrientation(GLU.GLU_OUTSIDE); cylinderId = GL11.glGenLists(1); GL11.glNewList(cylinderId, GL11.GL_COMPILE); Minecraft.getMinecraft().getTextureManager().bindTexture(texture); cylinder.draw(0.5F, 0.5F, 10, 10, 2); GL11.glEndList(); cylinder.setDrawStyle(GLU.GLU_FILL); cylinder.setNormals(GLU.GLU_SMOOTH); cylinder.setOrientation(GLU.GLU_INSIDE); secondcylinderId = GL11.glGenLists(2); GL11.glNewList(secondcylinderId, GL11.GL_COMPILE); Minecraft.getMinecraft().getTextureManager().bindTexture(texture); cylinder.draw(0.49F, 0.49F, 10, 10, 2); GL11.glEndList(); }
@Override public void renderSelf( GLOptions options ) { super.renderSelf( options ); glColorMaterial( GL_FRONT, GL_DIFFUSE ); LWJGLUtils.color4f( color ); // since this cylinder draws from z=0 to z=length, we have to handle translation here glTranslatef( 0, 0, -length / 2 ); new Cylinder().draw( bondRadius, bondRadius, length, MoleculeShapesProperties.cylinderSamples.get(), 1 ); glTranslatef( 0, 0, length / 2 ); }
private void renderPoint() { GL11.glPushMatrix(); RenderUtils.setup3DLightlessModel(); GL11.glBegin(1); GL11.glVertex3d(-0.5D, 0.0D, 0.0D); GL11.glVertex3d(0.0D, 0.0D, 0.0D); GL11.glVertex3d(0.0D, 0.0D, -0.5D); GL11.glVertex3d(0.0D, 0.0D, 0.0D); GL11.glVertex3d(0.5D, 0.0D, 0.0D); GL11.glVertex3d(0.0D, 0.0D, 0.0D); GL11.glVertex3d(0.0D, 0.0D, 0.5D); GL11.glVertex3d(0.0D, 0.0D, 0.0D); GL11.glEnd(); Cylinder c = new Cylinder(); GL11.glRotatef(-90.0F, 1.0F, 0.0F, 0.0F); GL11.glLineWidth(0.5F); GL11.glEnable(GL11.GL_LINE_SMOOTH); c.setDrawStyle(GLU.GLU_SILHOUETTE); c.setNormals(GLU.GLU_SMOOTH); c.draw(0.5F, 0.5F, 0.1F, 400, 1); Cylinder c2 = new Cylinder(); GL11.glLineWidth(0.5F); GL11.glEnable(GL11.GL_LINE_SMOOTH); c2.setDrawStyle(GLU.GLU_SILHOUETTE); c2.setNormals(GLU.GLU_SMOOTH); c2.draw(0.3F, 0.3F, 0.1F, 200, 1); Cylinder c3 = new Cylinder(); GL11.glLineWidth(0.5F); GL11.glEnable(GL11.GL_LINE_SMOOTH); c3.setDrawStyle(GLU.GLU_SILHOUETTE); c3.setNormals(GLU.GLU_SMOOTH); c3.draw(0.1F, 0.1F, 0.1F, 100, 1); RenderUtils.shutdown3DLightlessModel(); GL11.glPopMatrix(); }
public static void renderBeam(double x, double y, double z, double desierdx, double desierdy, double desierdz, double red, double green, double blue, double alpha, float radius){ GL11.glPushMatrix(); FMLClientHandler.instance().getClient().renderEngine.bindTexture("/mods/weapons/textures/models/dynamiclyColor.png"); double lenght = Math.sqrt(Math.pow(x - desierdx, 2) + Math.pow(y - desierdy, 2) + Math.pow(z - desierdz, 2)); double a = x - desierdx; double b = z - desierdz; double c = Math.sqrt(Math.pow(a, 2) + Math.pow(b, 2)); double secondb = y - desierdy; double secondc = Math.sqrt(Math.pow(c, 2) + Math.pow(secondb, 2)); double yaw = Math.asin(b/c); double pitch = Math.asin(secondb/secondc); RenderUtils.color(red, green, blue, alpha); GL11.glTranslated(x, y, z); if((x - desierdx) > 0 && (z - desierdz) > 0){ GL11.glRotatef(-180, 0, 1, 0); GL11.glRotatef((float)Math.toDegrees(yaw), 0, 1, 0); } else if((x - desierdx) < 0 && (z - desierdz) > 0){ GL11.glRotatef((float)Math.toDegrees(yaw) + 90, 0, 1, 0); } else if((x - desierdx) > 0 && (z - desierdz) < 0){ GL11.glRotatef(-(float)Math.toDegrees(yaw) - 90, 0, 1, 0); } else{ GL11.glRotatef(-(float)Math.toDegrees(yaw), 0, 1, 0); } if((y - desierdy) > 0){ GL11.glRotatef(-90, 1, 0, 0); } GL11.glRotatef((float)Math.toDegrees(pitch), 1, 0, 0); Cylinder cyl = new Cylinder(); cyl.draw(radius, radius, (float)lenght, 16, 1); GL11.glPopMatrix(); }
/** Initializes the canvas by setting the viewport, lighting, etc. */ public void init() { glShadeModel(GL_SMOOTH); glMatrixMode(GL_MODELVIEW); glLoadIdentity(); sphere=new Sphere(); cylinder=new Cylinder(); disk=new Disk(); //GL_LIGHT0 is a very dim backlight; with it I can only see silhouetted spheres against oblique walls. //GL_LIGHT0 is enabled only in 3D mode. floatBuffer = toBuffer(new float[] {0.3f, 0.3f, 0.3f, 1.0f}); floatBuffer.flip(); //glLight(GL_LIGHT0, GL_AMBIENT_AND_DIFFUSE, floatBuffer); // RGBA values glLight(GL_LIGHT0, GL_AMBIENT, floatBuffer); // RGBA values glLight(GL_LIGHT0, GL_DIFFUSE, floatBuffer); // RGBA values floatBuffer = toBuffer(new float[] {0.6f, 0.6f, 0.6f, 0.3f}); floatBuffer.flip(); glLight(GL_LIGHT0, GL_SPECULAR, floatBuffer); floatBuffer = toBuffer(new float[] {0.0f, 0.0f, -1.0f, 0.0f}); floatBuffer.flip(); glLight(GL_LIGHT0, GL_POSITION, floatBuffer); // position (directional if last coord is 0) //GL_LIGHT1 is enabled only in 3D mode, and its position is set elsewhere floatBuffer = toBuffer(new float[] {0.3f, 0.3f, 0.3f, 1.0f}); floatBuffer.flip(); glLight(GL_LIGHT1, GL_AMBIENT, floatBuffer); // very dim gray walls; spheres invisible floatBuffer = toBuffer(new float[] {0.8f, 0.8f, 0.8f, 1.0f}); floatBuffer.flip(); glLight(GL_LIGHT1, GL_DIFFUSE, floatBuffer); // this is most of what we see floatBuffer = toBuffer(new float[] {1.0f, 1.0f, 1.0f, 1.0f}); floatBuffer.flip(); glLight(GL_LIGHT1, GL_SPECULAR, floatBuffer); // no noticeable contribution - it looks black! floatBuffer = toBuffer(new float[] {0.0f, 0.0f, -1.0f, 1.0f}); floatBuffer.flip(); glLight(GL_LIGHT1, GL_SPOT_DIRECTION, floatBuffer); glLightf(GL_LIGHT1, GL_SPOT_CUTOFF, 180); glLightf(GL_LIGHT1, GL_LINEAR_ATTENUATION, 0.5E-5f); glLightf(GL_LIGHT1, GL_SPOT_EXPONENT, 64); //GL_LIGHT2 is only enabled in 1D and 2D modes. floatBuffer = toBuffer(new float[] {0.1f, 0.1f, 0.1f, 1.0f}); floatBuffer.flip(); glLight(GL_LIGHT2, GL_AMBIENT, floatBuffer); floatBuffer = toBuffer(new float[] {1.0f, 1.0f, 1.0f, 1.0f}); floatBuffer.flip(); glLight(GL_LIGHT2, GL_DIFFUSE, floatBuffer); floatBuffer = toBuffer(new float[] {0.0f, 0.0f, 0.0f, 1.0f}); floatBuffer.flip(); glLight(GL_LIGHT2, GL_SPECULAR, floatBuffer); floatBuffer = toBuffer(new float[] {0.0f, 0.0f, 1.0f, 0.0f}); floatBuffer.flip(); glLight(GL_LIGHT2, GL_POSITION, floatBuffer); glEnable(GL_LIGHTING); glColorMaterial(GL_FRONT, GL_DIFFUSE); glEnable(GL_COLOR_MATERIAL); glEnable(GL_DEPTH_TEST); glEnable(GL_NORMALIZE); glCullFace(GL_BACK); glEnable(GL_CULL_FACE); glEnable(GL_POLYGON_SMOOTH); glEnable(GL_LINE_SMOOTH); glEnable(GL_POINT_SMOOTH); glEnable(GL_BLEND); glEnable(GL_DITHER); glPointSize(tracePointSize); curPointSize=tracePointSize; //Print valuable OpenGL driver info to the console for debugging. System.out.println(glGetString(GL_VENDOR)); System.out.println(glGetString(GL_RENDERER)); System.out.println(glGetString(GL_VERSION)); makeCube(); }
static public void drawCylinder(float baseRadius, float topRadius, float height, int slices, int stacks, Cylinder data) { //Cylinder c = new Cylinder(); data.draw(baseRadius, topRadius, height, slices, stacks); //System.out.println(baseRadius + " " + topRadius + " " + height + " " + slices + " " + stacks); }
static public void drawCylinder(float baseRadius, float topRadius, float height, int slices, int stacks) { Cylinder c = new Cylinder(); c.draw(baseRadius, topRadius, height, slices, stacks); //System.out.println(baseRadius + " " + topRadius + " " + height + " " + slices + " " + stacks); }