Cleanup: use doxy sections for object_dupli.c

This commit is contained in:
Campbell Barton 2020-08-10 18:29:17 +10:00
parent bc5d144855
commit fc5ff99770
1 changed files with 74 additions and 21 deletions

View File

@ -61,7 +61,9 @@
#include "BLI_hash.h"
#include "BLI_strict_flags.h"
/* Dupli-Geometry */
/* -------------------------------------------------------------------- */
/** \name Internal Duplicate Context
* \{ */
typedef struct DupliContext {
Depsgraph *depsgraph;
@ -91,7 +93,9 @@ typedef struct DupliGenerator {
static const DupliGenerator *get_dupli_generator(const DupliContext *ctx);
/* create initial context for root object */
/**
* Create initial context for root object.
*/
static void init_context(DupliContext *r_ctx,
Depsgraph *depsgraph,
Scene *scene,
@ -118,7 +122,9 @@ static void init_context(DupliContext *r_ctx,
r_ctx->duplilist = NULL;
}
/* create sub-context for recursive duplis */
/**
* Create sub-context for recursive duplis.
*/
static void copy_dupli_context(
DupliContext *r_ctx, const DupliContext *ctx, Object *ob, const float mat[4][4], int index)
{
@ -140,10 +146,15 @@ static void copy_dupli_context(
r_ctx->gen = get_dupli_generator(r_ctx);
}
/* generate a dupli instance
* mat is transform of the object relative to current context (including object obmat)
/**
* Generate a dupli instance.
*
* \param mat: is transform of the object relative to current context (including #Object.obmat).
*/
static DupliObject *make_dupli(const DupliContext *ctx, Object *ob, float mat[4][4], int index)
static DupliObject *make_dupli(const DupliContext *ctx,
Object *ob,
const float mat[4][4],
int index)
{
DupliObject *dob;
int i;
@ -201,8 +212,10 @@ static DupliObject *make_dupli(const DupliContext *ctx, Object *ob, float mat[4]
return dob;
}
/* recursive dupli objects
* space_mat is the local dupli space (excluding dupli object obmat!)
/**
* Recursive dupli objects.
*
* \param space_mat: is the local dupli space (excluding dupli #Object.obmat).
*/
static void make_recursive_duplis(const DupliContext *ctx,
Object *ob,
@ -219,7 +232,11 @@ static void make_recursive_duplis(const DupliContext *ctx,
}
}
/* ---- Child Duplis ---- */
/** \} */
/* -------------------------------------------------------------------- */
/** \name Internal Child Duplicates (Used by Other Functions)
* \{ */
typedef void (*MakeChildDuplisFunc)(const DupliContext *ctx, void *userdata, Object *child);
@ -235,7 +252,9 @@ static bool is_child(const Object *ob, const Object *parent)
return false;
}
/* create duplis from every child in scene or collection */
/**
* Create duplis from every child in scene or collection.
*/
static void make_child_duplis(const DupliContext *ctx,
void *userdata,
MakeChildDuplisFunc make_child_duplis_cb)
@ -278,9 +297,12 @@ static void make_child_duplis(const DupliContext *ctx,
}
}
/*---- Implementations ----*/
/** \} */
/* -------------------------------------------------------------------- */
/** \name Dupli-Collection Implementation (#OB_DUPLICOLLECTION)
* \{ */
/* OB_DUPLICOLLECTION */
static void make_duplis_collection(const DupliContext *ctx)
{
Object *ob = ctx->object;
@ -320,7 +342,12 @@ static const DupliGenerator gen_dupli_collection = {
make_duplis_collection /* make_duplis */
};
/* OB_DUPLIVERTS */
/** \} */
/* -------------------------------------------------------------------- */
/** \name Dupli-Vertices Implementation (#OB_DUPLIVERTS for Geometry)
* \{ */
typedef struct VertexDupliData {
Mesh *me_eval;
BMEditMesh *edit_mesh;
@ -446,7 +473,12 @@ static const DupliGenerator gen_dupli_verts = {
make_duplis_verts /* make_duplis */
};
/* OB_DUPLIVERTS - FONT */
/** \} */
/* -------------------------------------------------------------------- */
/** \name Dupli-Vertices Implementation (#OB_DUPLIVERTS for 3D Text)
* \{ */
static Object *find_family_object(
Main *bmain, const char *family, size_t family_len, unsigned int ch, GHash *family_gh)
{
@ -523,7 +555,7 @@ static void make_duplis_font(const DupliContext *ctx)
/* Safety check even if it might fail badly when called for original object. */
const bool is_eval_curve = DEG_is_evaluated_id(&cu->id);
/* advance matching BLI_strncpy_wchar_from_utf8 */
/* Advance matching BLI_str_utf8_as_utf32. */
for (a = 0; a < text_len; a++, ct++) {
/* XXX That G.main is *really* ugly, but not sure what to do here...
@ -573,7 +605,12 @@ static const DupliGenerator gen_dupli_verts_font = {
make_duplis_font /* make_duplis */
};
/* OB_DUPLIFACES */
/** \} */
/* -------------------------------------------------------------------- */
/** \name Dupli-Faces Implementation (#OB_DUPLIFACES)
* \{ */
typedef struct FaceDupliData {
Mesh *me_eval;
int totface;
@ -728,7 +765,12 @@ static const DupliGenerator gen_dupli_faces = {
make_duplis_faces /* make_duplis */
};
/* OB_DUPLIPARTS */
/** \} */
/* -------------------------------------------------------------------- */
/** \name Dupli-Particles Implementation (#OB_DUPLIPARTS)
* \{ */
static void make_duplis_particle_system(const DupliContext *ctx, ParticleSystem *psys)
{
Scene *scene = ctx->scene;
@ -1077,9 +1119,12 @@ static const DupliGenerator gen_dupli_particles = {
make_duplis_particles /* make_duplis */
};
/* ------------- */
/** \} */
/* -------------------------------------------------------------------- */
/** \name Dupli-Generator Selector For The Given Context
* \{ */
/* select dupli generator from given context */
static const DupliGenerator *get_dupli_generator(const DupliContext *ctx)
{
int transflag = ctx->object->transflag;
@ -1118,9 +1163,15 @@ static const DupliGenerator *get_dupli_generator(const DupliContext *ctx)
return NULL;
}
/* ---- ListBase dupli container implementation ---- */
/** \} */
/* Returns a list of DupliObject */
/* -------------------------------------------------------------------- */
/** \name Dupli-Container Implementation
* \{ */
/**
* \return a #ListBase of #DupliObject.
*/
ListBase *object_duplilist(Depsgraph *depsgraph, Scene *sce, Object *ob)
{
ListBase *duplilist = MEM_callocN(sizeof(ListBase), "duplilist");
@ -1139,3 +1190,5 @@ void free_object_duplilist(ListBase *lb)
BLI_freelistN(lb);
MEM_freeN(lb);
}
/** \} */