mirror of
https://github.com/meteoinfo/MeteoInfo.git
synced 2025-12-08 20:36:05 +00:00
57 lines
1.6 KiB
Python
57 lines
1.6 KiB
Python
# coding=utf-8
|
|
#-----------------------------------------------------
|
|
# Author: Yaqiang Wang
|
|
# Date: 2019-9-7
|
|
# Purpose: MeteoInfoLab glfigure module
|
|
# Note: Jython
|
|
#-----------------------------------------------------
|
|
|
|
from com.jogamp.opengl import GLProfile, GLCapabilities
|
|
|
|
from org.meteoinfo.chart.jogl import GLChartPanel
|
|
|
|
__all__ = ['GLFigure']
|
|
|
|
class GLFigure(GLChartPanel):
|
|
|
|
def __init__(self, ax=None, **kwargs):
|
|
'''
|
|
Constructor
|
|
|
|
:param ax: (*Axes3DGL*) 3D axes with JOGL
|
|
'''
|
|
self.axes = ax
|
|
double_buffered = kwargs.pop('double_buffered', None)
|
|
sample_buffers = kwargs.pop('sample_buffers', True)
|
|
profile = GLProfile.get(GLProfile.GL2)
|
|
cap = GLCapabilities(profile)
|
|
if not double_buffered is None:
|
|
cap.setDoubleBuffered(double_buffered)
|
|
if not sample_buffers is None:
|
|
cap.setSampleBuffers(sample_buffers)
|
|
if sample_buffers:
|
|
nsamples = kwargs.pop('nsamples', 4)
|
|
cap.setNumSamples(nsamples)
|
|
|
|
super(GLFigure, self).__init__(cap)
|
|
|
|
def set_axes(self, ax):
|
|
'''
|
|
Set axes.
|
|
|
|
:param ax: (*Axes*) The axes.
|
|
'''
|
|
ax.figure = self
|
|
self.axes = ax
|
|
self.setPlot(ax.axes)
|
|
|
|
def set_antialias(self, b=None, symbol=None):
|
|
"""
|
|
Set figure antialias or not.
|
|
|
|
:param b: (*boolean*) Antialias or not.
|
|
:param symbol: (*boolean*) Set symbol antialias or not.
|
|
"""
|
|
if b is None:
|
|
b = not self.axes.get_antialias()
|
|
self.axes.set_antialias(b) |