Skip to content

Commit ff4eb33

Browse files
committed
Render default Surface
1 parent 67cb418 commit ff4eb33

File tree

5 files changed

+47
-5
lines changed

5 files changed

+47
-5
lines changed

manim/mobject/opengl_mobject.py

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -24,12 +24,14 @@
2424
from ..utils.iterables import resize_with_interpolation
2525
from ..utils.iterables import make_even
2626
from ..utils.iterables import listify
27+
from ..utils.iterables import batch_by_property
2728
from ..utils.bezier import interpolate
2829
from ..utils.paths import straight_path
2930
from ..utils.simple_functions import get_parameters
3031
from ..utils.space_ops import angle_of_vector
3132
from ..utils.space_ops import get_norm
3233
from ..utils.space_ops import rotation_matrix_transpose
34+
from ..renderer.shader_wrapper import ShaderWrapper
3335

3436

3537
class OpenGLMobject:
@@ -1397,10 +1399,14 @@ def refresh_shader_wrapper_id(self):
13971399
return self
13981400

13991401
def get_shader_wrapper(self):
1400-
self.shader_wrapper.vert_data = self.get_shader_data()
1401-
self.shader_wrapper.vert_indices = self.get_shader_vert_indices()
1402-
self.shader_wrapper.uniforms = self.get_shader_uniforms()
1403-
self.shader_wrapper.depth_test = self.depth_test
1402+
self.shader_wrapper = ShaderWrapper(
1403+
vert_data=self.get_shader_data(),
1404+
vert_indices=self.get_shader_vert_indices(),
1405+
uniforms = self.get_shader_uniforms(),
1406+
depth_test = self.depth_test,
1407+
render_primitive=self.render_primitive,
1408+
shader_folder=self.shader_folder,
1409+
)
14041410
return self.shader_wrapper
14051411

14061412
def get_shader_wrapper_list(self):

manim/opengl/__init__.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
11
from ..mobject.opengl_mobject import *
22
from ..mobject.types.opengl_vectorized_mobject import *
33
from ..mobject.opengl_geometry import *
4+
from ..mobject.types.opengl_surface import *

manim/renderer/shader_wrapper.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ def find_file(file_name, directories=None):
2929
if os.path.exists(path):
3030
return path
3131
else:
32-
logger.info(f"{path} does not exist.")
32+
logger.debug(f"{path} does not exist.")
3333
raise IOError(f"{file_name} not Found")
3434

3535

manim/utils/iterables.py

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -97,6 +97,33 @@ def tuplify(obj):
9797
return (obj,)
9898

9999

100+
def batch_by_property(items, property_func):
101+
"""
102+
Takes in a list, and returns a list of tuples, (batch, prop)
103+
such that all items in a batch have the same output when
104+
put into property_func, and such that chaining all these
105+
batches together would give the original list (i.e. order is
106+
preserved)
107+
"""
108+
batch_prop_pairs = []
109+
curr_batch = []
110+
curr_prop = None
111+
for item in items:
112+
prop = property_func(item)
113+
if prop != curr_prop:
114+
# Add current batch
115+
if len(curr_batch) > 0:
116+
batch_prop_pairs.append((curr_batch, curr_prop))
117+
# Redefine curr
118+
curr_prop = prop
119+
curr_batch = [item]
120+
else:
121+
curr_batch.append(item)
122+
if len(curr_batch) > 0:
123+
batch_prop_pairs.append((curr_batch, curr_prop))
124+
return batch_prop_pairs
125+
126+
100127
def listify(obj):
101128
if isinstance(obj, str):
102129
return [obj]

manim/utils/space_ops.py

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -243,6 +243,14 @@ def normalize(vect, fall_back=None):
243243
return np.zeros(len(vect))
244244

245245

246+
def normalize_along_axis(array, axis, fall_back=None):
247+
norms = np.sqrt((array * array).sum(axis))
248+
norms[norms == 0] = 1
249+
buffed_norms = np.repeat(norms, array.shape[axis]).reshape(array.shape)
250+
array /= buffed_norms
251+
return array
252+
253+
246254
def cross(v1, v2):
247255
return np.array(
248256
[

0 commit comments

Comments
 (0)