def draw_very_custom_shape(self, ctx, custom_shape, select_id=None):
        # similar to draw_custom_shape
        shape, batch, shader = custom_shape

        shader.bind()

        if select_id is not None:
            gpu.select.load_id(select_id)
        else:
            if self.is_highlight:
                color = (*self.color_highlight, self.alpha_highlight)
            else:
                color = (*self.color, self.alpha)
            shader.uniform_float("color", color)
            shape.glenable()

        shape.uniform_region(ctx)
        # shader.uniform_float('modelMatrix', self.matrix_world)
        with gpu.matrix.push_pop():
            gpu.matrix.multiply_matrix(self.matrix_world)
            batch.draw()

        bgl.glDisable(bgl.GL_BLEND)