Files
test2/source/blender/bmesh/intern/bmesh_private.h
Sergey Sharybin a12a8a71bb Remove "All Rights Reserved" from Blender Foundation copyright code
The goal is to solve confusion of the "All rights reserved" for licensing
code under an open-source license.

The phrase "All rights reserved" comes from a historical convention that
required this phrase for the copyright protection to apply. This convention
is no longer relevant.

However, even though the phrase has no meaning in establishing the copyright
it has not lost meaning in terms of licensing.

This change makes it so code under the Blender Foundation copyright does
not use "all rights reserved". This is also how the GPL license itself
states how to apply it to the source code:

    <one line to give the program's name and a brief idea of what it does.>
    Copyright (C) <year>  <name of author>

    This program is free software ...

This change does not change copyright notice in cases when the copyright
is dual (BF and an author), or just an author of the code. It also does
mot change copyright which is inherited from NaN Holding BV as it needs
some further investigation about what is the proper way to handle it.
2023-03-30 10:51:59 +02:00

97 lines
2.5 KiB
C

/* SPDX-License-Identifier: GPL-2.0-or-later
* Copyright 2004 Blender Foundation */
#pragma once
/** \file
* \ingroup bmesh
*
* Private function prototypes for bmesh public API.
* This file is a grab-bag of functions from various
* parts of the bmesh internals.
*/
#ifdef __cplusplus
extern "C" {
#endif
/* returns positive nonzero on error */
#ifdef NDEBUG
/* No error checking for release,
* it can take most of the CPU time when running some tools. */
# define BM_CHECK_ELEMENT(el) (void)(el)
#else
/**
* Check the element is valid.
*
* BMESH_TODO, when this raises an error the output is incredibly confusing.
* need to have some nice way to print/debug what the heck's going on.
*/
int bmesh_elem_check(void *element, char htype);
# define BM_CHECK_ELEMENT(el) \
{ \
if (bmesh_elem_check(el, ((BMHeader *)el)->htype)) { \
printf( \
"check_element failure, with code %i on line %i in file\n" \
" \"%s\"\n\n", \
bmesh_elem_check(el, ((BMHeader *)el)->htype), \
__LINE__, \
__FILE__); \
} \
} \
((void)0)
#endif
int bmesh_radial_length(const BMLoop *l);
int bmesh_disk_count_at_most(const BMVert *v, int count_max);
int bmesh_disk_count(const BMVert *v);
/**
* Internal BMHeader.api_flag
* \note Ensure different parts of the API do not conflict
* on using these internal flags!
*/
enum {
_FLAG_JF = (1 << 0), /* Join faces. */
_FLAG_MF = (1 << 1), /* Make face. */
_FLAG_MV = (1 << 1), /* Make face, vertex. */
_FLAG_OVERLAP = (1 << 2), /* General overlap flag. */
_FLAG_WALK = (1 << 3), /* General walk flag (keep clean). */
_FLAG_WALK_ALT = (1 << 4), /* Same as #_FLAG_WALK, for when a second tag is needed. */
_FLAG_ELEM_CHECK = (1 << 7), /* Reserved for bmesh_elem_check. */
};
#define BM_ELEM_API_FLAG_ENABLE(element, f) \
{ \
((element)->head.api_flag |= (f)); \
} \
(void)0
#define BM_ELEM_API_FLAG_DISABLE(element, f) \
{ \
((element)->head.api_flag &= (uchar) ~(f)); \
} \
(void)0
#define BM_ELEM_API_FLAG_TEST(element, f) ((element)->head.api_flag & (f))
#define BM_ELEM_API_FLAG_CLEAR(element) \
{ \
((element)->head.api_flag = 0); \
} \
(void)0
/**
* \brief POLY ROTATE PLANE
*
* Rotates a polygon so that its
* normal is pointing towards the mesh Z axis
*/
void poly_rotate_plane(const float normal[3], float (*verts)[3], uint nverts);
/* include the rest of our private declarations */
#include "bmesh_structure.h"
#ifdef __cplusplus
}
#endif